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>
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 p>
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 p>
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] p>
: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 p >
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