Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: broly7 en 28 Agosto 2009, 18:32 pm



Título: Algun maestro para desempaquetar UPX[RARO]
Publicado por: broly7 en 28 Agosto 2009, 18:32 pm
Es alguien capaz de desempaquetar este archivo comprimido con "Creo" Upx?
El PEID me dice esto: UPX 0.89.6 - 1.02 / 1.05 - 2.90 -> Markus & Laszlo

Y lo raro es que en vez de tener las cabecera UPX0 y UPX1, tiene UPX1 y UPX1.

Y si ya probé con el "upx -d Drunken.exe"

Necesito hablar con algún tio bueno con el Olly.

Drunken.rar (http://rapidshare.com/files/270308109/Headshot.rar)

Muchas gracias disculpen las molestias.


Título: Re: Algun maestro para desempaquetar UPX[RARO]
Publicado por: MCKSys Argentina en 28 Agosto 2009, 23:17 pm
Pues eso no es UPX. La verdad no se que es, pero UPX no es...

Saludos!



Título: Re: Algun maestro para desempaquetar UPX[RARO]
Publicado por: broly7 en 29 Agosto 2009, 00:05 am
Y alguien pudiera encontrar el método con el que se empaqueto? O simplemente desempaquetarlo poniendo un tuto si quiere.

Gracias.

PD: Tengo una corazonada de armadillo.


Título: Re: Algun maestro para desempaquetar UPX[RARO]
Publicado por: MCKSys Argentina en 29 Agosto 2009, 02:11 am
No,no. Eso tampoco es armadillo.

No estoy seguro, pero puede ser alguna variante del UPX, tipo UPX$hit, o algo parecido...



Título: Re: Algun maestro para desempaquetar UPX[RARO]
Publicado por: tena en 29 Agosto 2009, 04:58 am
le meti un pequeño vistaso, no mucho pero para comenzar esta bien.
Si es medio raro y tiene trucos antidebugs.

Por ejemplo no se ejecuta si tenemos el olly abierto.
Otra es que instala un SEH y ahi controla si tenemos algun HBP

No me queda mas tiempo, es todo lo que vi, otro dia sera

slds


Título: Re: Algun maestro para desempaquetar UPX[RARO]
Publicado por: broly7 en 29 Agosto 2009, 15:32 pm
UPX SHIT? xD ;D

Osea que el cabroncete está bien pensado para el olly, por eso no podía desempaquetarlo con algunos métodos. Igual karmany sabe algo del asunto, a ver si conseguimos encontrarle el OEP.


Título: Re: Algun maestro para desempaquetar UPX[RARO]
Publicado por: tena en 30 Agosto 2009, 18:15 pm
Bueno..

Al iniciar el oly pones el byte de isdebug a cero, D EBX+2 y lo pones a cero, o con algun plugin tilda IsDebuggerPresent.

Das run y Luego de instalar el manejador y caera en el, entonces con esto nos detecta si tenemos algun hbp puesto

004DA5B3    8378 04 00      CMP DWORD PTR DS:[EAX+4],0
004DA5B7    74 11           JE SHORT Drunken.004DA5CA                 ; verifika los HBP
004DA5B9    C740 04 0000000>MOV DWORD PTR DS:[EAX+4],0
004DA5C0    C786 634B0000 0>MOV DWORD PTR DS:[ESI+4B63],1
004DA5CA    8378 08 00      CMP DWORD PTR DS:[EAX+8],0
004DA5CE    74 11           JE SHORT Drunken.004DA5E1
004DA5D0    C740 08 0000000>MOV DWORD PTR DS:[EAX+8],0
004DA5D7    C786 634B0000 0>MOV DWORD PTR DS:[ESI+4B63],1
004DA5E1    8378 0C 00      CMP DWORD PTR DS:[EAX+C],0
004DA5E5    74 11           JE SHORT Drunken.004DA5F8
004DA5E7    C740 0C 0000000>MOV DWORD PTR DS:[EAX+C],0
004DA5EE    C786 634B0000 0>MOV DWORD PTR DS:[ESI+4B63],1
004DA5F8    8378 10 00      CMP DWORD PTR DS:[EAX+10],0
004DA5FC    74 11           JE SHORT Drunken.004DA60F

todos deben saltar, segun llos hbps que tengas, entonces inviertes el flag z.

despues nos quiere detectar con CheckRemoteDebuggerPresent

004DBFF0    50              PUSH EAX                                  ; push offset isdebugged
004DBFF1    6A FF           PUSH -1                                   ; push -1
004DBFF3    FF95 354B0000   CALL DWORD PTR SS:[EBP+4B35]    ; LLAMA a CheckRemoteDebuggerPresent

hace follow in dump en eax, y pasa la llamada, despues cambia el 1 que te pone por un cero.

luego tambien usa FindWindowA  para ver si esta el olly, como estoy usando el parcheado 4, a mi no me lo detecta.

seguimos un poquito mas y usa GetForegroundWindow y GetWindowTextA para obtener el texto del titulo, los xorea y opbtiene un resultado que si es igual nos manda afuera, para evitarlo yo inverti el flag z del salto
004DC08D  JNZ SHORT Drunken.004DC092

con esos tres cambios ya anda, IsdebuggerPresent, CheckRemoteDebuggerPresent y el ultimo.

Ademas se fija si esta instalado el Sice.

Ahora a buscar el oep
Slds




 


Título: Re: Algun maestro para desempaquetar UPX[RARO]
Publicado por: tena en 30 Agosto 2009, 18:34 pm
Aunque no estoy seguro para mi este es el oep
00410579   .>CALL Drunken.004169CA
0041057E   .>JMP Drunken.00410399

luego la iat esta toda destruida

00423000  00A3162C
00423004  00A31642
00423008  00A31658
0042300C  00A3166E
00423010  00A31684
00423014  00A3169A
00423018  00A316B0
0042301C  00A316C6
00423020  00A316DC
00423024  00000000
00423028  00A31382
0042302C  00A31398
00423030  00A313AE
00423034  00A313C4
00423038  00A313DA
0042303C  00A313F0
00423040  00A31406
00423044  00A3141C

hay que arreglarla

slds


Título: Re: Algun maestro para desempaquetar UPX[RARO]
Publicado por: karmany en 30 Agosto 2009, 20:13 pm
Le he echado un vistazo y pienso lo mismo que Tena.
OEP = 00410579
Compilador = Visual C++

La IAT está destruída y está en una sección que ha creado en ejecución. Es muy curioso cómo llama a las funciones... Es muy fácil saber cuál es cada API pero repararla requiere tiempo..

Voy a probar si ImportRe tiene algún plugin o puede trazarlo adecuadamente.

Edit. Para hacerlo todo rápidamente habrá que programar un plugin para ImportRe porque a mano es lento.(son muchas). Las  funciones son llamadas así:
Código:
00A9163E    0000            add byte ptr ds:[eax],al
00A91640    0000            add byte ptr ds:[eax],al
00A91642    50              push eax
00A91643    60              pushad
00A91644    B8 03010000     mov eax,103
00A91649    68 10B24805     push 548B210
00A9164E  - FF25 82CF4D00   jmp near dword ptr ds:[4DCF82]           ; Copia_de.004DB88E


Título: Re: Algun maestro para desempaquetar UPX[RARO]
Publicado por: spandau en 2 Septiembre 2009, 10:54 am
Ojo porque en AVG me reporta que el adjunto tiene el virut.Z Aver si estais desempacando el virus.

Si alguien quiere más info aqui se analiza el bicho:

http://ricardonarvaja.info/WEB/CURSO%20NUEVO/TEORIAS%20NUMERADAS/1101-1200/1120-Jugando%20con%20Virut.NBK.7z (http://ricardonarvaja.info/WEB/CURSO%20NUEVO/TEORIAS%20NUMERADAS/1101-1200/1120-Jugando%20con%20Virut.NBK.7z)


Título: Re: Algun maestro para desempaquetar UPX[RARO]
Publicado por: broly7 en 2 Septiembre 2009, 11:46 am
Gracias por echarle un ojo. Yo probé con el ollydump en ese oep, luego lo fixee pero al ejecutarlo me tiraba un error de que el archivo había sido modificado. ¿Igual hace un CRC check?