La Red de Conocimientos Pedagógicos - Currículum vitae - marca de clave

marca de clave

Paso 1 Detectar el shell

El concepto de shell:

El llamado "shell" es una herramienta de compresión especializada.

La compresión aquí no es la compresión de herramientas como RAR y ZIP que usamos habitualmente. La compresión del shell se refiere a la compresión de archivos de programa como exe, com y dll. para el programa es como protección. Esta capa de código hace que el código del archivo del programa original pierda su apariencia original, protegiendo así al programa de modificaciones ilegales y descompilaciones. Este código, que es como una capa protectora, tiene muchas similitudes funcionales con los shells de. animales y plantas en la naturaleza, por eso llamamos en sentido figurado el caparazón del programa.

Las funciones del shell:

1. Proteger el programa de modificaciones ilegales y descompilaciones.

2. El programa está especialmente comprimido para reducir el tamaño del archivo y facilitar su difusión y almacenamiento.

La diferencia entre el shell y el software de compresión es que

el software de compresión solo puede comprimir programas

y archivos de programa como exe, com y dll comprimidos por shell. Puede ejecutarse como un programa normal

El siguiente es un software para detectar shells

PEID v0.92

Este software puede detectar 450 tipos de shells

p>

La nueva versión agrega una función de escaneo de virus, que es la más poderosa entre varias herramientas de verificación de shell actualmente.

Además, también puede identificar el idioma en el que está escrito el archivo EXE: VC++, Delphi, VB o Delphi, etc.

Escaneo por lotes de carpetas de soporte

Usamos PEID para escanear easymail.exe

Se encontró el tipo de shell

UPX 0.89. - 1.02 / 1.05 - 1.24 -> Markus & Laszlo

Es un shell UPX

Continúe a continuación

Paso 2 Desembalaje

Para un programa empaquetado, eliminar la información irrelevante que interfiere y las restricciones de protección, quitarle el caparazón, quitarle el disfraz y restaurar la apariencia original del software. Este proceso se llama bombardeo.

Signos de un descomprimido exitoso

El archivo descomprimido se ejecuta normalmente sin pérdida de funcionalidad.

Además, generalmente la longitud del archivo descomprimido será mayor que la longitud del archivo original.

Incluso si el mismo archivo se descomprime usando diferentes programas de descompresión, debido al mecanismo irrazonable del software de descompresión, el tamaño de los archivos extraídos será diferente.

Acerca del descascarado, hay descascarado manual y descascarado automático

El descascarado automático consiste en utilizar una máquina descascaradora especial para descascarar, es fácil presionar unas cuantas veces y está bien

El bombardeo manual requiere un contenido técnico ligeramente mayor que el bombardeo automático. No entraré en detalles aquí

UPX es un shell muy antiguo y potente, pero su máquina de bombardeo se puede encontrar en todas partes

p>

El programa UPX se puede descomprimir a través de

Nombre de archivo UPX -d

Pero ingrese estos caracteres de comando requeridos

Ventajas, conveniencia y velocidad Desventajas de la interfaz DOS

Para ahorrarles a todos operaciones problemáticas, se creó un software de shell llamado UPX SHELL

UPX SHELL v3.09

¡Programa de shell UPX!

El propósito es hacer que el desempaquetado y reempaquetado de UPX sea infalible.

Nota: si el programa no está empaquetado, podemos guardar el segundo paso de desempaquetar y analizar el software directamente. .

Después de despegar, procedemos

Paso 3

Ejecutar el programa

Intenta registrarte

Obtener información relacionada con el registro

Al intentar registrarnos encontramos una cadena clave

"Error de entrada del número de serie"

Paso 4

Desmontaje

p>

El software que generalmente se usa para el desmontaje es W32Dasm

W32dasm es fácil de usar para principiantes y simple de operar

W32Dasm tiene muchas versiones. Recomiendo usar W32Dasm. Promise Edition

Ahora desmontamos el archivo de programa WebEasyMail easymail.exe

Luego vemos si podemos encontrar la cadena ahora mismo

Paso 5

A través de eXeScope Este software para ver información de cadenas que no se muestra correctamente en w32dasm

eXeScope v6.50

Cambiar fuentes, cambiar menús, cambiar la disposición de los cuadros de diálogo, reescribir archivos ejecutables archivos Recursos, incluidos (EXE, DLL, OCX), etc. Es una herramienta conveniente y poderosa en idioma chino que puede modificar directamente los recursos de programas compilados con VC++ y DELPHI, incluidos menús, cuadros de diálogo, tablas de cadenas, etc.

La nueva versión puede ver directamente los recursos de archivos empaquetados

Abrimos eXeScope

Buscamos la siguiente cadena de caracteres

122, "Error de entrada del número de serie"

123, " Felicitaciones por convertirse en usuario oficial de WebEasyMail. Miembro de "

124, registro exitoso

125, fallido

El enfoque es 122

Paso 6

Regrese a w32dasm nuevamente

* Posible referencia al recurso de cadena ID=00122: "?鲹e?"

Pero después de hacer doble clic,

surge que no se puede encontrar este carácter de cadena

¿No es porque "?鲹e?" es un código confuso. w32dasm no es muy bueno para mostrar caracteres chinos

p>

Después de todo, no es un software doméstico

Antes que nada déjame explicarte las instrucciones básicas de ensamblaje que usaremos hoy

mov a,b; asigna el valor de b a a, de modo que a=b

llamar: llamar a una subrutina, subrutina El programa termina con ret

ret: regresar al programa principal

je o jz: salta si son iguales

jne o jnz: salta si no son iguales

push xx: xx empuja la pila

pop xx: xx pop la pila

El compilador asigna la pila cuando es necesaria y cuando no es necesaria. El área de almacenamiento de la variable se borra automáticamente en este momento. Las variables internas suelen ser variables locales, parámetros de función, etc.

Buscamos

Posible referencia al recurso de cadena ID=00122

Porque admite muy bien el texto electrónico

Estamos aquí

p>

* Referenciado por un salto (U)condicional o (C)condicional en la dirección:

|:00406F17(C) //Salto desde 406F17

|

* Posible referencia al ID del recurso de cadena=00125: "1%"

|

:004070DD 6A7D push 0000007D

:004070DF 8D4C2410 lea ecx, dword ptr [esp+10]

:004070E3 E8F75A1200 call 0052CBDF

* Posible referencia al recurso de cadena ID=00122: "?鲲e?"

|

:004070E8 6A7A push 0000007A

:004070EA 8D4C2408 lea ecx, dword ptr [esp+08]

:004070EE E8EC5A1200 llame al 0052CBDF

Estamos aquí

:00406F01 8B876C080000 mov eax, dword ptr [edi+0000086C]Aquí está el par

:00406F07 8B4C2408 mov ecx, dword ptr [esp+08]

:00406F0B 50 push eax//El empuje de estos dos eax y ecx en la pila nos hace sospechar más

:00406F0C 51 push ecx//Generar código de registro

:00406F0D E8AE381100 call 0051A7C0//Debe haber configuraciones para el bit de registro en esta LLAMADA

:00406F12 83C40C add esp, 0000000C

:00406F15 85C0 test eax, eax//Bit de registro de detección

:00406F17 0F85C0010000 jne 004070DD //Si el bit de registro no existe, saltará a 4070DD y aparecerá un carácter de cadena incorrecto

Recordamos la dirección 406F01

Luego procedemos al siguiente paso

Paso 7

En este paso estamos depurando

El software usado es ollydbg

Bien, encontramos el código de registro 0012AF04 00FD4A10 ASCII "04893e058f9c1c9fb16764c3b86f78e6"

Pero este no es nuestro propósito principal

También necesitamos hacer nuestro propia máquina de registro

Creo que esto es con lo que mucha gente sueña

Paso 8

Crear una máquina de registro

Qué necesitamos para la máquina de registro es el software KEYMAKE

p>

Porque 2.0 es una versión demo y ha dejado de actualizarse

Así que usamos la versión 1.73

Para hacer una máquina de registro de memoria , necesita la siguiente información

Dirección de interrupción: 406F0C

Número de interrupciones: 1

Primer byte: 51

Longitud de la instrucción: 1

Máquina de registro perfecta

Sucedió

Date prisa y envíaselo a tus amigos para que lo presuman

Garantizado que lo confundirá y te admirará hasta la muerte

De hecho, todavía hay unos pocos pasos al final

Es solo escribir un artículo roto

Pero como todos somos novatos, sigamos este paso

Ya lo he dicho. Muchas tonterías sin darme cuenta, espero que pueda ser de alguna utilidad para todos.

Si hay algo que no entiendes, por favor contáctame o publicalo en el foro

QQ. :9595859

MSN:kcarhc@163.com

p>

¡Eso es todo por el curso de hoy! ¡Vamos a practicarlo ahora~!

------------------------------------------- -- -------------------------------------

-- Autor: admin

-- Hora de publicación: 2005-10-11 11:13:00

-- El tutorial más detallado sobre cómo bombardear, bombardear y descifrar la máquina keygen real

Hola a todos, soy kcarhc

Hoy es 1 de agosto y acabo de regresar del hospital en las primeras horas de la mañana

Me gustaría pedir disculpas a todos. por llegar tarde a este curso

Si no recuerdo mal, el 1 de agosto

es el Día del Ejército

Como es el Día del Ejército, también deberíamos recibir algo simbólico

Para esta edición del Día del Ejército, elegí luchar contra las fuerzas oscuras: el inframundo

Entonces el tema de hoy es

--------- ---

Día de la bienvenida al Día del Ejército y erradica el inframundo

------------

Primero presenta el software

Underworld 2.0

[Introducción de funciones]:

1 Cinco funciones esenciales

Pantalla remota; transferencia de archivos Telnet; /p>

2 Proporciona función de posicionamiento de rebote de IP

Puede rebotar la IP de notificación a través de IP estática, nombre de dominio dinámico y archivos de página web.

3 Cliente vidc integrado.

p>

Los amigos en la intranet quieren usar la función en línea automática.

4 Este software integra herramientas de ataque comunes (como OpenTelnet OpenTftp, etc.)

Copiar a través de IPC, y tiene un progreso de copia estándar, que es la primera vez en el mundo

No presentaré opentelnet, creo que todos lo saben

opentftp es exclusivo; este software y puede abrir remotamente el servicio tftp

5 Este software integra un escáner de puertos extremadamente rápido (líder mundial en velocidad de escaneo)

El escáner que utilicé al principio fue el famoso SuperScan3; .0, que parecía ser muy lento;

Más tarde cambié a SSPort1.0 Velocidad de escaneo. Ha habido una mejora significativa

Después de la comparación de velocidad, la velocidad de escaneo de este software. es 1/3 más rápido que SSPort y N veces más rápido que SuperScan.

Mi máquina tiene una memoria Celeron 700 +256M, la velocidad de escaneo general es de 180 unidades/segundo. Algunos escáneres que afirman ser capaces de alcanzar 1000 unidades/segundo solo han probado 120 unidades/segundo en esta máquina

- ------------------. -- -----------------

Paso 1 Comprobar el shell

Peid v0.92

ASPack 2.12 -> Alexey Solodovnikov ,

-------------------

Paso 2 Bombardeo

Descascarado manual

Cómo eliminar rápidamente todas las versiones de ASPACK

Los puntos clave de OEP son los siguientes

0048D3AF 61 POPAD

0048D3B0 75 08 JNZ SHORT Triad.0048D3BA

0048D3B2 B8 01000000 MOV EAX,1

0048D3B7 C2 0C00 RETN 0C//402c4a

0048D3BA 68 00000000 PUSH 0

402ca4 es el OEP que buscamos

Desembalaje automático

AspackDie v1. 41

Este es un pequeño descompresor de archivos PE (EXE, DLL, ...) que puede descomprimir

Cualquier versión de Aspack desde Aspack 2000. Incluyendo:

- Aspack 2000

- Aspack 2001

- Aspack 2.1

- Aspack 2.11

- Aspack 2.11 c/d

- Aspack 2.12

- Aspack 2.12a/b

- Algunas versiones desconocidas

———— --------- -----

Paso 3: Pruebe ejecutar el programa y encuentre el punto de avance

Vea la cadena de claves

"¡Error de código de registro!

p>

----------------------

Paso 4 W32DASM Encuentre el punto de avance

Utilice w32dasm para cargar el programa descomprimido

Inspección de cadenas

No se encontró ninguna cadena, pero sí un montón de caracteres confusos

Todos deben haber pensado en el primer método de Sección

Utilizar EXESCOPE

--------------------

Paso 4: Buscar cadena de caracteres

Abre eXeScope y cárgalo pero descubre que no hay ninguna cadena

Este elemento

¿Por qué? Definitivamente todos tendrán preguntas

Generalmente, no se puede encontrar usando eXeScope

Comenzaremos

————————————— ——————————— ---- ----------------

Paso 6: Utilice GetVBRes v0.51 para tratar Programas VB

GetVBRes v0.51 es una muy buena herramienta china de VB

Para los programas VB, usamos GetVBRes v0.51, que se usa especialmente para el idioma chino.

Es posible que algunas personas no entiendan por qué usamos la herramienta china

De hecho, eXeScope también es una herramienta china

GetVBRes carga el inframundo

Descubrí que no hay caracteres confusos

Todo lo que veo son caracteres completos

Encontramos

¡El código de registro es incorrecto!

Esta cadena

Luego para obtener la dirección del punto clave del programa

ponemos "¡El código de registro es incorrecto!" 111111

Por qué cambiar a 111111 porque 111111111

Guardar cambios

—————— -------------- ---

Paso 6: Utilice W32Dasm para cargar el archivo modificado

Descubre 111111 en la cadena

El que modificamos resultó ser "Registro incorrecto código!"

* Referenciado por un (

Salto U)condicional o (C)condicional en la dirección:

|:004792EF(C)

|p>

:00479474 B904000280 mov ecx, 80020004

:00479479 B80A000000 mov eax, 0000000A

:0047947E 894D9C mov dword ptr [ebp-64], ecx

:00479481 894DAC mov dword ptr [ebp-54], ecx

:00479484 894DBC mov dword ptr [ebp-44], ecx

:00479487 8D5584 lea edx, dword ptr [ebp-7C]

:0047948A 8D4DC4 lea ecx, dword ptr [ebp-3C]

:0047948D 894594 mov dword ptr [ebp-6C], eax

:00479490 8945A4 mov dword ptr [ebp-5C], eax

:00479493 8945B4 mov dword ptr [ebp-4C], eax

* Posible referencia de StringData del código Obj ->"1111111" // ¿El registro que acabamos de ver es incorrecto? Oh

|

:00479496 C7458C98194100 mov [ebp-74], 00411998

:0047949D C7458408000000 mov [ebp-7C], 00000008

Se descubrió que el salto provenía de 4792EF

Según la costumbre, llegamos a 4792EF y luego miramos hacia adelante

Vi una dirección que saltaba aquí

Este es 40928C

* Referenciado por un salto (u)condicional o (con)condicional en la dirección:

|:00479278(C)

| p>

:0047928C 8B55E4 mov edx, dword ptr [ebp-1C]

* Referencia T MSVBVM60.__vbaStrMove, Ord:0000h

| :0047928F 8B3578124000 mov esi, dword ptr [00401278]

:00479295 8D4DE0 lea ecx, dword ptr [ebp-20]

:00479298 895DE4 mov dword ptr [ebp-1C] , ebx

:0047929B FFD6 call esi

:0047929D 8B4DE8 mov ecx, dword ptr [ebp-18]

:004792A0 6A01 push 00000001

:004792A2 8D55E0 lea edx, dword ptr [ebp-20]

:004792A5 51 push ecx

:004792A6 52 push edx

:00479

2A7 E8440F0000 llamada 0047A1F0

:004792AC 8BD0 mov edx, eax

:004792AE 8D4DDC lea ecx, dword ptr [ebp-24]

:004792B1 FFD6 llamada esi

:004792B3 50 push eax

:004792B4 53 push ebx

* Referencia T MSVBVM60.__vbaInStr, Ord:0000h

| /p>

:004792B5 FF15E8114000 Llamar dword ptr [004011E8]

:004792BB 8BF0 mov esi, eax

:004792BD 8D45E8 lea eax, dword ptr [ebp-18]

:004792C0 F7DE neg esi

:004792C2 8D4DDC lea ecx, dword ptr [ebp-24]

:004792C5 50 push eax

:004792C6 1BF6 sbb esi, esi

:004792C8 8D55E0 lea edx, dword ptr [ebp-20]

:004792CB 51 push ecx

:004792CC 52 push edx

:004792CD F7DE neg esi

:004792CF 6A03 push 00000003

:004792D1 F7DE neg esi

* Referencia T MSVBVM60.__vbaFreeStrList , Ord:0000h

|

:004792D3 FF150C124000 Llamar dword ptr [0040120C]

:004792D9 8D45D4 lea eax, dword ptr [ebp-2C]

:004792DC 8D4DD8 lea ecx, dword ptr [ebp-28]

:004792DF 50 push eax

:004792E0 51 push ecx

: 004792E1 6A02 push 00000002

* Referencia T MSVBVM60.__vbaFreeObjList, Ord:0000h

|

:004792E3 FF1548104000 Llamada dword ptr [00401048]

:004792E9 83C41C add esp, 0000001C

:004792EC 663BF3 cmp si, bx

:004792EF 0F847F010000 je 00479474

Estamos

004792AC vio lo siguiente

EAX=0015A47C, (UNICODE "1000464401458371268751252821609291844811465000")

EDX=00000000

Sospechoso de EAX

10004644014 5837126875

1252821609291844811465000

Es el código de registro

------------------------------- -------------------------------------------------- ---------------------------------------

Paso 7: Usa el que no estás seguro de que sea correcto Regístrate e intenta registrarte

Usa

1000464401458371268751252821609291844811465000

Después de este registro

Encontramos que el registro fue exitoso

--- -------

Número de interrupciones: 1

Primer byte: 8B

Extensión de la instrucción: 2

———————————— ------- -------------- -

Paso 10: Descanso

El inframundo finalmente ha sido asesinado

Ahora ve a buscar a tu hombre Amigos o novias

Esposo o esposa

Encuentra un lugar para charlar y relajarte

Cuéntales que acabas de instalarte en el inframundo

Debe ser muy interesante

──── ─────────────

Fin de curso

──── -------------

Si tienes algo que hacer, puedes ir al foro

Pero si estás impaciente

o no te gusta mi respuesta, la velocidad es lenta

p>

Te sugiero que me contactes directamente

Siempre que pueda responderte de inmediato

Si no estás disponible, puedes dejar un mensaje

Mis dos datos de contacto

QQ:9595859

MSN:kcarhc@163.com

Una última cosa que decir

Mi novia He estado enfermo recientemente

Por eso este curso llega tan tarde

Espero que todos puedan entenderme

También espero que todos puedan desearle una pronta recuperación.

De lo contrario

Puede que tengas menos días para verme

Puede que incluso desaparezca ante tus ojos

¿Vale? deténgase aquí hoy

---------- kcarhc

Shenyang en la madrugada del 1 de agosto de 2004

-- --- ----------------------------------------- --- -------------------------

-- Autor: admin

-- Fecha de publicación: 2005 -10-11 16:42:00

--Usa OllyDbg para pagar rápidamente

Autor: KU-Ling

Objetivo: usar ASPACK, empaquetado en UPX NOTEPAD.EXE

Herramientas: OllyDbg 1.09 versión en inglés, complemento DUMP, PEditor

Sistema: Win98SE

Palabras clave: Unpacking, OllyDbg, OD, DUMP, PUSHAD, POPAD

Conocimientos preliminares

La mayoría de las conchas tienen una característica diferente. PUSHAD se ejecuta cuando el shell está listo para iniciar la descompresión y se llama a POPAD cuando se descomprime el shell. ¿Para qué se utilizan PUSHAD y POPAD? De hecho, PUSHAD es una instrucción que se utiliza para insertar todos los registros ordinarios en la pila en secuencia, y POPAD es una instrucción para extraer todos los registros ordinarios de la pila en secuencia. El orden emergente de POPAD es opuesto al de PUSHAD.

Para proteger los registros, el shell empuja todos los registros a la pila para protegerlos antes de la descompresión.

Cuando se completa la descompresión, saca los registros de la pila, restaura su apariencia original y los configura. el IP al OEP del programa original. De esta manera, podemos eliminar rápidamente los shells de varios programas a través de esta función.

ASPACK

Primero use ASPACK para empaquetar NOTAPAD.EXE. Utilice OllyDbg (en lo sucesivo, OD) para cargar. Vea cómo el cursor se detiene en la entrada del

shell.

0040D001 > 60  PUSHAD;La entrada al caparazón. Listo para iniciar la descompresión, proteger registro

0040D002 E8 03000000 CALL NOTEPAD.0040D00A

......

Lo ignoramos y simplemente bajamos la página para encontrar la instrucción POPAD. Encuentre POPAD en 40D3AF

……

0040D3AF 61  POPAD ;Descompresión completada, restaurar registro

0040D3B0 75 08  JNZ  SHORT NOTEPAD.0040D3BA

0040D3B2 B8 01000000 MOV EAX, 1

0040D3B7 C2 0C00 RETN 0C

0040D3BA 68 CC104000 PUSH NOTEPAD.004010CC ; Volver al programa original OEP

0040D3BF C3 RETN

……

Seleccione la línea 40D3AF y ejecute F4 aquí. Esto indica que el caparazón ha completado el trabajo de descompresión. Y volver a la entrada del

programa original. F8 paso único a 4010CC, aquí está el OEP del programa original. Simplemente use el complemento DUMP para DUMP directamente (al realizar el DUMP, asegúrese de cambiar el punto de entrada a 10CC, es decir, 4010CC-400000=10CC, 400000 es la dirección base de la imagen). El tamaño del archivo es 77059 bytes. Simplemente use PEditor para reconstruir el encabezado PE. El tamaño del archivo sin comprimir es de 53248 bytes y el tamaño del archivo descomprimido es de 60930 bytes.

UPX

Utilice UPX para empaquetar NOTAPAD.EXE y luego cárguelo con OD. Deténgase en PUSHAD, use el mismo método para eliminar ASPACK y desplácese hacia abajo para encontrar POPAD.

……

0040E9FE 61   POPAD

0040E9FF -E9 C826FFFF JMP NOTEPAD.004010CC

……

El siguiente JMP es saltar al OEP del programa. F4 a 40E9FF, F8 de un solo paso, llega a OEP, sale DUMP. El tamaño del archivo DUMP es de 65536 bytes y se puede ejecutar directamente. Para lograr la perfección, reconstruya el encabezado PE con PEditor. Entonces el tamaño del archivo después de descomprimirlo es 60293 bytes.

Posdata

Usando el método mencionado anteriormente, muchos tipos de shells se pueden eliminar rápidamente de forma manual. Si no tienes el complemento OD DUMP,

puedes encontrarlo en el área de descargas del nuevo foro. Si no está disponible, también puede detenerse directamente en el OEP y usar PEDump para DUMP. Hace mucho que no escribo nada. Este artículo está escrito para que los principiantes practiquen. De hecho, el caparazón también es un software, por complicado que sea, se puede quitar. Buena suerte.

Además, mantenga este artículo intacto cuando lo reimprima.

------------------------------------------- -- -------------------------------------

-- Autor: admin

-- Hora de lanzamiento: 2005-10-11 17:10:00

-- Utilice Ollydbg para eliminar manualmente la DLL empaquetada por EncryptPE V1.2003.5.18

Un hermano me pidió que echara un vistazo a la DLL empaquetada de EncryptPE. Le dije que la nueva versión no funciona y que no puedo arreglarla. Más tarde resultó que venía con la versión anterior de EncryptPE V1.2003.5.18, y debería ser la versión gratuita lanzada por el profesor Lao Wang. Jaja, así que me lo quité y grabé el proceso.

Puedes usar la versión gratuita EncryptPE V1.2003.5.18 para agregar EdrLib.dll y echar un vistazo.

————————————————————————————————————

1. Evite Activar cifrado IAT

Configure Ollydbg para ignorar todas las opciones de excepción. Utilice el complemento IsDebug 1.4 para eliminar el indicador del depurador Ollydbg.

Agregue la excepción "Ignorar también 0EEDFADE, C0000008, 009B25C, 00953D74".

Código:----------------------------------------- ---------------------------------------

00877000 60 pushad/ /Deténgase aquí después de ingresar OD

00877001 9C pushfd

00877002 64:FF35 00000000 push dword ptr fs:[0]

00877009 E8 79010000 llame a EdrLib 00877187.

------------------------------------------- ----- --------------------------------------------- --

Descargar: BP IsDebuggerPresent Cancelar el punto de interrupción después de romperlo

Ahora presionamos Ctrl+G:711A0000

¿Por qué usar esta dirección? Porque V12003518.EPE es el mismo. Jaja, aproveché una laguna jurídica en la versión anterior.

De hecho, puede BP GetProcAddress y juzgar según la dirección del remitente. Si la dirección del remitente es 711XXXXX, significa que se trata de una llamada a V12003518.EPE y puede cancelar el punto de interrupción Ctrl+F9 y regresar. La situación específica está sujeta a la dirección del remitente de la pila.

Ahora Ctrl+S busca la secuencia de comandos de "sección completa":

Código:-------------------- - -------------------------------------------------- ---------

mov eax,edi

mov edx,dword ptr ss:[ebp-8]

mov dword ptr ds :[eax],edx

xor eax,eax

------------------------ -- ------------------------------------------------ -- ---

Encontrado en 711A339F, configuramos el siguiente punto de interrupción de ejecución de hardware en 711A339F.

Ahora cerramos Ollydbg, recargamos la dll, ejecutamos directamente Shift+F9, interrumpimos en 711A339F

Código:------------- --- ----------------------------------------- --- ---------------

711A339F 8BC7 mov eax,edi

711A33A1 8B55 F8 mov edx,dword ptr ss:[ebp- 8]

//Cambiar a: mov edx,dword ptr ss:[ebp-4] ★ Escritura de función correcta

711A33A4 8910 mov dword ptr ds:[eax],edx

711A33A6 33C0 xor eax,eax

711A33A8 5A pop edx

711A33A9 59 pop ecx

711A33AA 59 pop ecx

711A33AB 64:8910 mov dword ptr fs:[eax],edx

711A33AE EB 0A jmp short V1200351.711A33BA

---------- ---- ---------------------------------------------- ---- --------------

Después de modificar 711A33A1, cancele el punto de interrupción establecido previamente en 711A339F.

Ctrl+S para buscar la secuencia de comandos:

Código:------------------------ ------------------------------------------------- - ----

añadir ebx,4

mov eax,dword ptr ss:[ebp-4C]

añadir eax,4

----------------------------------------------- - --------------------------------

Encontrado en 711A43C2, somos xor eax a continuación, El 711A4401 de eax está desconectado.

Mayús+F9Ejecutar

Código:------------------------------- - --------------------------------------

711A43C2 83C3 04 agregar ebx,4

711A43C5 8B45 B4 mov eax,dword ptr ss:[ebp-4C]

711A43C8 83C0 04 agregar eax,4

711A43CB 8945 B4 mov dword ptr ss:[ebp-4C],eax

711A43CE 8B03 mov eax,dword ptr ds:[ebx]

711A43D0 85C0 prueba eax,eax

711A43D2 0F87 39FDFFFF ja V1200351.711A4111

711A43D8 A1 74C71B71 mov eax,dword ptr ds:[711BC774]

711A43DD 8038 00 cmp byte ptr ds:[ eax] , 0

711A43E0 75 1F jnz short V1200351.711A4401

711A43E2 8B45 C4 mov eax,dword ptr ss:[ebp-3C]

711A43E5 83C0 14 add eax ,14

711A43E8 8945 C4 mov dword ptr ss:[ebp-3C],eax

711A43EB 8B45 C4 mov eax,dword ptr ss:[ebp-3C]

711A43EE 8378 0C 00 cmp dword ptr ds:[eax+C],0

711A43F2 76 0D jbe short V1200351.711A4401

711A43F4 8B45 C4 mov eax,dword ptr ss :[ebp-3C]

711A43F7 8378 10 00 cmp dword ptr ds:[eax+10],0

711A43FB 0F87 38FCFFFF ja V1200351.711A4039//Procesamiento de bucle IAT < / p>

711A4401 33C0 xor eax,eax//¡Romper aquí! ★

------------------------------------------ --- -------------------------------------

Cuando interrumpimos en 711A4401 Cuando se haya procesado el IAT, puede usar ImportREC para obtener la tabla de entrada correcta.

Debido a que hay autoverificación detrás de EncryptPE, volvemos a 711A33A1, hacemos clic derecho -> Deseleccionar y restaurar el código original.

————————————————————————————————————

2. Obtenga información de la tabla de reubicación, obtenga OEP

Secuencia de comando de búsqueda Ctrl+S en "toda la sección":

Código:------------- ------------------------------------------------- - ----------------

mov edx,dword ptr ss:[ebp-24]

sub edx,dword ptr ds: [ eax+34]

mov