elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Ingeniería Inversa (Moderadores: karmany, .:UND3R:., MCKSys Argentina)
| | |-+  Duda con Tutorial concurso 97 UnPackMe_TPPpack.exe
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Duda con Tutorial concurso 97 UnPackMe_TPPpack.exe  (Leído 6,514 veces)
.:UND3R:.
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.118


Ingeniería inversa / MASM


Ver Perfil WWW
Duda con Tutorial concurso 97 UnPackMe_TPPpack.exe
« en: 23 Julio 2011, 06:18 am »

Hola a todos bueno leyendo un poco me encontré con algunas dudas que se me originaron después de leer el tutorial

UnPackMe_TPPpack.exe:
http://ricardonarvaja.info/WEB/CONCURSOS%20VIEJOS/CONCURSOS%202004-2006/CONCURSO%2097/CONCURSO%2097.rar

Tutorial en doc:
http://ricardonarvaja.info/WEB/CONCURSOS%20VIEJOS/CONCURSOS%202004-2006/CONCURSO%2097/C97-N4%20-%20Desempacado%20de%20TPPpack%20-%20por%20marciano.rar

Mis dudas son más que nadas algo teóricas el unpackme anterior tenía las siguientes características:
-stolen byte
-iat destruida
-algunos trucos para evitar ser debuggeado

1)En ese tutorial se llega a los stolen byte directamente, marciano comenta que se copien en un .txt los stolen bytes pero mi duda es al tener todo reparado cuando cuando inserta los stolen bytes, este los inserta en la dirección en donde se detiene
el ollydbg cuando se carga el unpackme (6B010) mi duda es ¿como se logra que al colocarlo ahí los stolen bytes sin anteponerlo al falso OEP (metodo común en donde se cuentan los stolen bytes y se les resta al falso OEP)pese a eso funciona bien?


2)Cuando se termina de colocar los stolen bytes por qué algunos call están alterados y marciano pide reemplazarlos por los call que habíamos anotado en el documento de texto?

Si me aclararan eso se los agradecería demasiado

Saludos
En línea


Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)
_Enko


Desconectado Desconectado

Mensajes: 538



Ver Perfil WWW
Re: Duda con Tutorial concurso 97 UnPackMe_TPPpack.exe
« Respuesta #1 en: 23 Julio 2011, 07:53 am »

1)No he depurado el programa, pero por un vistazo rapido del tutorial creo que:
Como en este caso son "stolen kilobytes", es decir, una buena parte del codigo ha sido movida, para el caso, la rutina de inicio.
Entonces, en vez de redirigir el programa a la verdadera rutina de inicio (cambiando EP, por el OEP) que es lo que normalmente se hace, y se colocan los stolen bytes, en este caso, como los stolenbytes no estan "escondidos" sino simplemente movidos a otro lado sin saltos inecesarios, el autor del articulo decidio  mover esos stolen bytes al EP del programa.

Es decir, en vez de buscar el OEP y remplazar alli los stolen bytes, mueve  la rutina inicial (stolen kilobytes) al EP de la ejecutable, es decir, EntryPoint ejecutable empaquetada que ahora fue desempaquetada.


Creo que lo que permitio hacer esto fue que el programador del unpackme, remplazo la rutina inicial de la oep por otra rutina.  Y escondió toda la rutina inicial.
Entonces, marciano colocó la rutina completa en el EP del programa y de seguro que esta rutina inicializa la ejecutable, y luego hacen un salto far o un call far a una direccion de memoria absoluta, por eso el codigo se pudo seguir ejecutando.

2)hablando de saltos absolutos, cambiamos a CALL NEAR. Son saltos a rutinas que se encuentran dentro del mismo segmento del codigo, por ende, su direccion es relativa a la posicion actual. Una call near repetido dos veces nunca tiene el mismo opcode.
ej:
Citar
0040102A     E8 1E000000    call    KeyMeNoD.0040104D
0040102F     E8 19000000    call    KeyMeNoD.0040104D
00401034     E8 14000000    call    KeyMeNoD.0040104D
00401039     E8 0F000000    call    KeyMeNoD.0040104D
0040103E     E8 0A000000    call    KeyMeNoD.0040104D
00401043     E8 05000000    call    KeyMeNoD.0040104D
00401048     E8 00000000    call    KeyMeNoD.0040104D ;call inutil, llama instruccion siguiente
0040104D     E8 FBFFFFFF    call    KeyMeNoD.0040104D ;call imposible, se llama a si mismo generando stackoverflow
00401052     E8 F6FFFFFF    call    KeyMeNoD.0040104D
00401057     E8 F1FFFFFF    call    KeyMeNoD.0040104D
0040105C     E8 ECFFFFFF    call    KeyMeNoD.0040104D
00401061     E8 E7FFFFFF    call    KeyMeNoD.0040104D
00401066     E8 E2FFFFFF    call    KeyMeNoD.0040104D
0040106B     E8 DDFFFFFF    call    KeyMeNoD.0040104D
00401070     E8 D8FFFFFF    call    KeyMeNoD.0040104D
00401075     E8 D3FFFFFF    call    KeyMeNoD.0040104D
0040107A     E8 CEFFFFFF    call    KeyMeNoD.0040104D




Son todos llamados contiguos.
Cada llamado ocupa 5 bytes.
Casualidad que cada vez que  se genera el opcode E8 VVXXYYZZ,  VV disminuye en 5 (cada vez se acerca en 5 bytes a donde se hace el salto)

Al hacer copy past de los stolen bytes, en el lugar donde NO corresponden, las direcciones relativas de los OPCODES en los CALL NEAR no sirven, son distintas.
Es decir, CALL    miprograma._mifuncionX sigue siendo la misma intruccion (texto) pero los opcode son diferentes (binary past no sirve)



0)Del primer punto no estoy seguro, no me he puesto a desempaquetar programas, no tengo experiencia en el area,  pero por lo que pude ver, tendria que ser eso. Es la única

saludos.
« Última modificación: 23 Julio 2011, 08:13 am por _Enko » En línea

.:UND3R:.
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.118


Ingeniería inversa / MASM


Ver Perfil WWW
Re: Duda con Tutorial concurso 97 UnPackMe_TPPpack.exe
« Respuesta #2 en: 23 Julio 2011, 10:03 am »

Me ha quedado claro, Muchas gracias por la aclaración

Saludos  ;-) _enko
En línea


Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)
.:UND3R:.
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.118


Ingeniería inversa / MASM


Ver Perfil WWW
Re: Duda con Tutorial concurso 97 UnPackMe_TPPpack.exe
« Respuesta #3 en: 23 Julio 2011, 10:08 am »

hablando de saltos absolutos, cambiamos a CALL NEAR. Son saltos a rutinas que se encuentran dentro del mismo segmento del codigo, por ende, su direccion es relativa a la posicion actual. Una call near repetido dos veces nunca tiene el mismo opcode.

y como se asigna el opcode? como se establece el valor que tomará?

Saludos
En línea


Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)
_Enko


Desconectado Desconectado

Mensajes: 538



Ver Perfil WWW
Re: Duda con Tutorial concurso 97 UnPackMe_TPPpack.exe
« Respuesta #4 en: 23 Julio 2011, 14:51 pm »

la respuesta estaba en el ejemplo
Acordate que en la arquitectura x86 los bytes estan invertidos en las palabas y dobles palabras.

Citar
0040102F     E8 19000000    call    KeyMeNoD.0040104D saltar 25 bytes adelante
00401034     E8 14000000    call    KeyMeNoD.0040104D saltar 20 byts adelante
00401039     E8 0F000000    call    KeyMeNoD.0040104D saltar 15 bytes adelante
0040103E     E8 0A000000    call    KeyMeNoD.0040104D saltar 10 bytes adelante
00401043     E8 05000000    call    KeyMeNoD.0040104D; saltar 5b adelante
00401052     E8 F6FFFFFF    call    KeyMeNoD.0040104D ;saltar5 b atras
00401057     E8 F1FFFFFF    call    KeyMeNoD.0040104D ;saltar 10bytes atras
0040105C     E8 ECFFFFFF    call    KeyMeNoD.0040104D ;saltar 15 bytes atras
0040107A     E8 CEFFFFFF    call    KeyMeNoD.0040104D

la direccion es lo que esta despues del E8.

En línea

.:UND3R:.
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.118


Ingeniería inversa / MASM


Ver Perfil WWW
Re: Duda con Tutorial concurso 97 UnPackMe_TPPpack.exe
« Respuesta #5 en: 23 Julio 2011, 17:39 pm »

Ahora si que está todo aclarado y entendido el porqué cambia el call dependiendo de la ubicación del CALL NEAR

Saludos y muchas gracias :D
En línea


Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)
.:UND3R:.
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.118


Ingeniería inversa / MASM


Ver Perfil WWW
Re: Duda con Tutorial concurso 97 UnPackMe_TPPpack.exe
« Respuesta #6 en: 24 Julio 2011, 04:02 am »

Me ha surgido otra duda de este tutorial haber si me la pueden aclarar cuando dumpea:

Dumpeando

Citar
Como habrán visto, no encontramos el OEP. Sin embargo,  “¡Es un buen momentaaaa!” para dumpear, como diría Mariano Closs. Lo hacemos con el plugin OllyDump, dejando sin marcar la opción “Rebuild Import”. Puesto que no encontramos el OEP, vamos a dejar como EntryPoint el EntryPoint del packer, es decir, 6B010.

....


Citar
Por lo visto hay zonas de memoria a las que no puede acceder y por lo tanto no pueden ser dumpeadas. El problema está en la ImageSize del programa, que es 8570Bh, un tamaño que no es múltiplo del campo SectionAlignment del OptionalHeader, o hablando más concretamente, no es múltiplo de 1000h.
Así que volvemos a dumpear con OllyDump
, dejando sin marcar la opción de “Rebuild Import”, colocando como EntryPoint el EntryPoint del packer (6B010h), y colocando como Size el valor 85000h (hemos redondeado hacia abajo):


No entendí la explicación si alguien pudiera explicármela de manera sencilla y entendible se lo agradecería

Muchas gracias
En línea


Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)
.:UND3R:.
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.118


Ingeniería inversa / MASM


Ver Perfil WWW
Re: Duda con Tutorial concurso 97 UnPackMe_TPPpack.exe
« Respuesta #7 en: 27 Julio 2011, 07:41 am »

Ninguna respuesta?


Gracias

:D
En línea


Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)
MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.518


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Duda con Tutorial concurso 97 UnPackMe_TPPpack.exe
« Respuesta #8 en: 27 Julio 2011, 14:59 pm »

Preguntaste en CLS???? Porque por aca no somos muchos los que hemos hecho el curso.

Aparte, en la lista tenes otros que estan como vos. Incluso, el mismo Ricardo Narvaja lee los post y te puede contestar... (o al menos alguno que haya resuelto el concurso  ;D)

Saludos!
En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

.:UND3R:.
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.118


Ingeniería inversa / MASM


Ver Perfil WWW
Re: Duda con Tutorial concurso 97 UnPackMe_TPPpack.exe
« Respuesta #9 en: 27 Julio 2011, 16:27 pm »

Eso me he estado dando cuenta, creo que llegué al punto de no respuestas  :xD

Entonces nos veremos por allá, Saludos :D
En línea


Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
duda sobre el tutorial KVCD
Multimedia
lucialyj 6 4,257 Último mensaje 30 Marzo 2004, 00:48 am
por Songoku
Duda - Tutorial ASM « 1 2 »
ASM
h0oke 13 8,928 Último mensaje 29 Julio 2009, 17:44 pm
por Yurix
Duda tutorial RicardoNarvaja
Ingeniería Inversa
.:UND3R:. 6 3,936 Último mensaje 10 Junio 2011, 22:28 pm
por apuromafo CLS
Duda con tutorial IDA BIGUNDILLA
Ingeniería Inversa
.:UND3R:. 0 2,662 Último mensaje 24 Julio 2013, 01:44 am
por .:UND3R:.
Tutorial De crackme1 Del Concurso 11 De CracksLatinoS « 1 2 »
Ingeniería Inversa
Flamer 14 8,633 Último mensaje 11 Diciembre 2013, 21:54 pm
por Vaagish
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines