home *** CD-ROM | disk | FTP | other *** search
/ The Elite Hackers Toolkit / TheEliteHackersToolkitVolume1_1998.rar / HACKERS.BIN / appcraks / HSEPS.ZIP / HSEPS386.ASM < prev    next >
Assembly Source File  |  1998-01-15  |  10KB  |  221 lines

  1. INCLUDE         C:\LENGUAJE\ASM'S\CONV.INC
  2. CODE_SEG_A      SEGMENT
  3.                 ASSUME  CS:CODE_SEG_A, DS:CODE_SEG_A
  4.                 ORG     100h
  5.   
  6. PRINCIPIO:
  7.                 CALL    PRESENT                 ;
  8.                 CALL    L_COMANDO               ;
  9.                 CMP     PARAMETROS,1            ;
  10.                 JE      PROC_NOM                ;
  11.                 MOV     DX,OFFSET SIN_PARAMETRO ;
  12.                 CALL    IMP                     ;
  13.                 JMP     TERMINA                 ;
  14. PROC_NOM:
  15.                 CALL    ARMA_AUX                ;
  16. PREPARA:
  17.                 MOV     SI,OFFSET ARCHIN        ;
  18.                 MOV     DI,OFFSET NOMBRE1       ;
  19. PREP_0:
  20.                 LODSB                           ;
  21.                 CMP     AL,'.'                  ;
  22.                 JE      PREP_1                  ;
  23.                 CMP     AL,0                    ;
  24.                 JE      ABRE                    ;
  25.                 JMP     PREP_2                  ;
  26. PREP_1:
  27.                 MOV     AL,'_'                  ;
  28. PREP_2:
  29.                 STOSB                           ;
  30.                 JMP     PREP_0                  ;
  31. ABRE:
  32.                 MOV     AH,3DH                  ; ABRE EL ARCHIVO
  33.                 MOV     AL,0                    ;
  34.                 MOV     DX,OFFSET ARCHIN        ; DE ENTRADA
  35.                 INT     21H                     ;
  36.                 JNC     COPIAHAND               ; NO HUBO ERROR
  37.                 MOV     DH,3                    ; UBICA EL CURSOR
  38.                 MOV     DL,0                    ;
  39.                 CALL    CURPOS                  ;
  40.                 MOV     DX,OFFSET ERROR         ; SI HUBO ERROR
  41.                 CALL    IMP                     ;
  42.                 MOV     DX,OFFSET ARCHIN        ;
  43.                 CALL    IMP                     ;
  44.                 MOV     DX,OFFSET NADA          ;
  45.                 CALL    IMP                     ;
  46.                 JMP     TERMINA                 ; FIN !
  47. COPIAHAND:
  48.                 MOV     HANDLE1,AX              ; GUARGA EL HANDLE
  49. LEE:
  50.                 MOV     AH,3FH                  ; LEER BYTES
  51.                 MOV     CX,22                   ; EN CX CUANTOS
  52.                 MOV     DX,OFFSET CARACTER      ; BUFFER PARA PONERLO
  53.                 MOV     BX,HANDLE1              ; HANDLE DEL ARCHIVO
  54.                 INT     21H                     ;
  55.                 CMP     AX,0                    ;
  56.                 JNE     PROCESA                 ;
  57.                 JMP     CIERRA                  ;
  58. PROCESA:
  59.                 MOV     SI,OFFSET CARACTER      ;
  60.         ADD    SI,20            ;
  61.                 MOV     DI,OFFSET CARACTER1     ;
  62. PROCESA_1:
  63.                 LODSW                           ;
  64.         PUSH      AX            ;
  65.         sub      ax,2D8h        ;
  66.                 BIN_A_HEX AX,ROTULO             ;
  67.         MOV      DX,OFFSET PAR        ;
  68.         CALL      IMP            ;
  69.         POP      AX            ;
  70.         PUSH      AX            ;
  71.         sub      ax,502h        ;
  72.                 BIN_A_HEX AX,ROTULO1            ;
  73.         MOV      DX,OFFSET PAR1    ;
  74.         CALL      IMP            ;
  75.         POP      AX            ;
  76.         sub      ax,380h        ;
  77.                 BIN_A_HEX AX,ROTULO2            ;
  78.         MOV      DX,OFFSET PAR2    ;
  79.         CALL      IMP            ;
  80. CIERRA:
  81.                 MOV     AH,3EH                  ; CIERRA ARCHIVO
  82.                 MOV     BX,HANDLE1              ; DE ENTRADA
  83.                 INT     21H                     ;
  84. TERMINA:
  85.                 MOV     AX,4C00H                ; FIN !!!
  86.                 INT     21H                     ;
  87. ;***********************************************;*******************
  88. PRESENT:
  89.                 CALL    BORRAPAN                ;
  90.                 MOV     DX,OFFSET NOMBRE        ;
  91.                 CALL    IMP                     ;
  92.                 CALL    COPYRIGHT               ;
  93.                 RET                             ;
  94. ;***********************************************;
  95. COPYRIGHT:
  96.                 MOV     AH,13H                  ; PONE PANTALLA ANSI
  97.                 MOV     AL,3                    ;
  98.                 MOV     CX,23                   ;
  99.                 MOV     DL,0                    ;
  100.                 MOV     DH,2                    ;
  101.                 MOV     BP,OFFSET AVENGER       ;
  102.                 INT     10H                     ;
  103.                 MOV     DX,OFFSET BAJA          ;
  104.                 CALL    IMP                     ;
  105.                 RET                             ;
  106. ;***********************************************;
  107. ARMA_AUX:
  108.                 MOV     SI,OFFSET BUF_LCOM      ; EL ORIGEN AL BUFFER
  109.                 MOV     DI,OFFSET ARCHIN        ; DESTINO AL NOMBRE
  110.                 MOV     CX,CONTENIDO            ;
  111.                 REP     MOVSB                   ; COPIA
  112. ARCHAUX:
  113.                 MOV     SI,OFFSET ARCHIN        ; PREPARA PARA COPIAR
  114.                 MOV     DI,OFFSET ARCHOUT       ; AL NOMBRE DE ARCHIVO
  115.                 MOV     CX,CONTENIDO            ;
  116. ARCHAUX1:
  117.                 MOV     AL,[SI]                 ; COPIA DE A UN CARACTER
  118.                 CMP     AL,'.'                  ; HASTA QUE ENCUENTRA
  119.                 JE      ARCHAUX2                ; UN PUNTO
  120.                 MOV     [DI],AL                 ;
  121.                 INC     SI                      ;
  122.                 INC     DI                      ;
  123.                 LOOP    ARCHAUX1                ;
  124. ARCHAUX2:
  125.                 MOV     CX,4                    ; LE COPIA LA EXTENSION
  126.                 MOV     SI,OFFSET EXT           ; NUEVA DEL ARCHIVO DE
  127.                 REP     MOVSB                   ; SALIDA
  128.                 RET                             ;
  129. ;***********************************************;
  130. BORRAPAN:
  131.                 MOV     AH,0FH                  ; RUTINA QUE BORRA
  132.                 INT     10H                     ; LA PANTALLA
  133.                 MOV     AH,0                    ;
  134.                 INT     10H                     ;
  135.                 RET                             ;
  136. ;***********************************************;
  137. IMP:
  138.                 MOV     AH,9                    ; RUTINA DE IMPRESION
  139.                 INT     21H                     ;
  140.                 RET                             ;
  141. ;***********************************************;
  142. CURSOF:
  143.                 MOV     AH,01                   ; SACA EL CURSOR
  144.                 MOV     CH,20H                  ;
  145.                 INT     10H                     ;
  146.                 RET                             ;
  147. ;***********************************************;
  148. CURSON:
  149.                 MOV     AH,01                   ; PONE EL CURSOR
  150.                 MOV     CH,0CH                  ;
  151.                 MOV     CL,0DH                  ;
  152.                 INT     10H                     ;
  153.                 RET                             ;
  154. ;***********************************************;
  155. CURPOS:
  156.                 MOV     AH,2                    ; PONE CURSOR EN UNA
  157.                 INT     10H                     ; DETERMINADA POSISION
  158.                 RET                             ; DE LA PANTALLA
  159. ;***********************************************;
  160. L_COMANDO:
  161.                 MOV     PARAMETROS,0            ;
  162.                 MOV     AH,62H                  ; OBTIENE EL SEGMENTO DEL PSP
  163.                 INT     21H                     ;
  164.                 PUSH    DS                      ;
  165.                 MOV     DS,BX                   ;
  166.                 MOV     SI,80H                  ; LARGO DEL PARAMETRO
  167.                 LODSB                           ; STRING [SI] TO AL
  168.                 XOR     CX,CX                   ; PONE A CX EN 0
  169.                 MOV     CL,AL                   ; EN CX LARGO DEL PARAMETRO
  170.                 CMP     CX,0                    ;
  171.                 JE      L_COMANDO_RET           ; SIN PARAMETROS
  172.                 MOV     CONTENIDO,CX            ;
  173.                 MOV     BX,CX                   ;
  174.                 MOV     BYTE PTR [BX+SI],0      ;
  175.                 MOV     SI,82H                  ; DESPUES DEL ESPACIO
  176.                 MOV     DI,OFFSET BUF_LCOM      ;
  177.                 REP     MOVSB                   ;
  178. L_COMANDO1:
  179.                 MOV     ES:PARAMETROS,1         ;
  180. L_COMANDO_RET:
  181.                 POP     DS                      ;
  182.                 RET                             ;
  183. ;***********************************************;********************
  184. HANDLE1         DW      0
  185. CONTENIDO       DW      0
  186. PARAMETROS      DB      0
  187. ARCHIN          DB      13 DUP (0)
  188.                 DB      13,10,13,10,'$'
  189. ARCHOUT         DB      13 DUP (0),'$'
  190. EXT             DB      '.TA!'
  191. ERROR           DB      13,10,13,10
  192.                 DB      'Error no existe el Archivo ===> $'
  193. TRABAJANDO      DB      13,10,13,10
  194.                 DB      'Se esta procesando el Archivo: $'
  195. NADA            DB      7,13,10,13,10,'$'
  196. CARACTER        DB      22 DUP(0)
  197. NOMBRE1         DB      '                DB      '
  198. CARACTER1       DB      48 DUP(0)
  199. PAR        DB    'The Jump To Unpacked Image is Located at: '
  200. ROTULO          DB      0,0,0,0,13,10,13,10,'$'
  201. PAR1        DB    'The First Patch is Located at: '
  202. ROTULO1         DB      0,0,0,0,13,10,13,10,'$'
  203. PAR2        DB    'The Second Patch is Located at: '
  204. ROTULO2         DB      0,0,0,0
  205. Tito        DB    13,10,13,10,'$'
  206. SIN_PARAMETRO   DB      13,10,13,10
  207.                 DB      'ERROR, no se especificó el nombre del Archivo .....'
  208.         DB    13,10
  209.         DB    "Syntax   'HSEPS386 File.EXE'"
  210.                 DB      7,13,10,13,10,'$'
  211. BUF_LCOM        DB      30 DUP(0)
  212. BAJA            DB      13,10,13,10,13,10,'$'
  213. NOMBRE          DB      13,10,'HS386 1.18b70 Entry Point Searcher',13,10,'$'
  214. AVENGER         DB      '(',14,'c',14,')',14,' ',7
  215.                 DB      '1',14,'9',14,'9',14,'8',14,' ',7,'b',14,'y',14,' ',7
  216.                 DB      'T',11,'H',11,'E',11,' ',7
  217.                 DB      'A',11,'V',11,'E',11,'N',11,'G',11,'E',11,'R',11
  218.  
  219. CODE_SEG_A      ENDS
  220.                 END     PRINCIPIO
  221.