Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - apuromafo CLS

#721
será que he desempacado tantos programas, que aveces uno intenta varias soluciones antes de confirmar si corre
actualmente nisiquiera confio en los oep(debido al thinisthall y otros que emulan como stolen)..pero este se nota normal..asi que ta bn :D

que bueno que te sirvio para orientarte
saludos Apuromafo
#722
jiji, te pasa porque hay 2 packer y no 1
el primero es asprotect y ademas la la version esta mal
Version Info:
[Project64K7E], [1.3.0],
protegido con  [2.56 build 03.17], registrado a nombre de [Juan].
luego llegamos a este oep

00401000 > $ B8 00DF4E00    MOV EAX,Project6.004EDF00
00401005   . 50             PUSH EAX
00401006   . 64:FF35 000000>PUSH DWORD PTR FS:[0]
0040100D   . 64:8925 000000>MOV DWORD PTR FS:[0],ESP
00401014   . 33C0           XOR EAX,EAX
00401016   . 8908           MOV DWORD PTR DS:[EAX],ECX
00401018   . 50             PUSH EAX

osea esto es PECOMPACT

luego para seguir con el unpacking el oep es este
004EDFBF   5B               POP EBX
004EDFC0   5D               POP EBP
004EDFC1   FFE0             JMP EAX->EAX=00459716 (Project6.00459716)

osea el OEP de los 2 packeds es:
00459716   55               PUSH EBP
00459717   8BEC             MOV EBP,ESP
00459719   6A FF            PUSH -1
0045971B   68 10164600      PUSH Project6.00461610
00459720   68 A4864500      PUSH Project6.004586A4
00459725   64:A1 00000000   MOV EAX,DWORD PTR FS:[0]
0045972B   50               PUSH EAX
0045972C   64:8925 00000000 MOV DWORD PTR FS:[0],ESP
00459733   83EC 58          SUB ESP,58
00459736   53               PUSH EBX
00459737   56               PUSH ESI
00459738   57               PUSH EDI
00459739   8965 E8          MOV DWORD PTR SS:[EBP-18],ESP
0045973C   FF15 40014600    CALL DWORD PTR DS:[460140]               ; kernel32.GetVersion
00459742   33D2             XOR EDX,EDX



la estrategia más rapida es colocar un Bp en ejecución en 00459716 y ejecutar y luego remover el bp en ejecucion (hwbp) hasta que llegues al codigo
dumpear y reparar supongo que lo sabes..es como si fuera upx esto luego

respecto a la dll es la misma cosa asprotect mas el packed..

el entrypoint es este
10012BB4     8BFF           MOV EDI,EDI
10012BB6  /. 55             PUSH EBP
10012BB7  |. 8BEC           MOV EBP,ESP
10012BB9  |. 837D 0C 01     CMP DWORD PTR SS:[EBP+C],1
10012BBD  |. 75 05          JNZ SHORT kaillera.10012BC4
10012BBF  |. E8 22050000    CALL kaillera.100130E6
10012BC4  |> FF75 08        PUSH DWORD PTR SS:[EBP+8]
10012BC7  |. 8B4D 10        MOV ECX,DWORD PTR SS:[EBP+10]
10012BCA  |. 8B55 0C        MOV EDX,DWORD PTR SS:[EBP+C]
10012BCD  |. E8 CCFEFFFF    CALL kaillera.10012A9E
10012BD2  |. 59             POP ECX
10012BD3  |. 5D             POP EBP
10012BD4  \. C2 0C00        RETN 0C



adjunto por ejemplo que se puede desempacar manual:
henryxs87
http://www.mediafire.com/?2hq8dm8457ytmar

saludos Apuromafo



#723
@punto infinito
aqui te lo adjunto
http://www.mediafire.com/?gt3h10g8aj9i6ok

aqui los pasos:

como verás, no es nada diferente de lo que te comentaba

1)entrypoint

0040F1E0 > $ 60             PUSHAD
0040F1E1   . BE 15E04000    MOV ESI,Recover_.0040E015
0040F1E6   . 8DBE EB2FFFFF  LEA EDI,DWORD PTR DS:[ESI+FFFF2FEB]

salto al oep

0040FD3F   . 39C4           CMP ESP,EAX
0040FD41   .^75 FA          JNZ SHORT Recover_.0040FD3D
0040FD43   . 83EC 80        SUB ESP,-80
0040FD46   .-E9 B592FFFF    JMP Recover_.00409000


despues vemos esto

00409106   68 94CA4000      PUSH Recover_.0040CA94
0040910B   FF15 E2D04000    CALL DWORD PTR DS:[40D0E2]               ; kernel32.CreateFileA
00409111   3B05 C0CE4000    CMP EAX,DWORD PTR DS:[40CEC0]
00409117   A3 C0CE4000      MOV DWORD PTR DS:[40CEC0],EAX
0040911C   6A 00            PUSH 0
0040911E   68 C4CE4000      PUSH Recover_.0040CEC4
00409123   68 96280000      PUSH 2896
00409128   68 00A04000      PUSH Recover_.0040A000
0040912D   FF35 C0CE4000    PUSH DWORD PTR DS:[40CEC0]
00409133   FF15 EED04000    CALL DWORD PTR DS:[40D0EE]               ; kernel32.WriteFile
00409139   813D C4CE4000 96>CMP DWORD PTR DS:[40CEC4],2896


createFileA y writeFile

luego termina ejecutando mediante

00409175   6A 00            PUSH 0
00409177   FF15 1CD24000    CALL DWORD PTR DS:[40D21C]               ; shell32.ShellExecuteA
0040917D   FF35 C4CE4000    PUSH DWORD PTR DS:[40CEC4]
00409183   FF15 EAD04000    CALL DWORD PTR DS:[40D0EA]               ; kernel32.ExitProcess

claramente ejecutará un 2do exe:
C:\DOCUME~1\APUROM~1\CONFIG~1\Temp\1D.tmp\b2e.exe


ahora si lo miro de otra forma: desempaco con upx -d de cff explorer

miro con un editor hexadecimal y veo el codigo
esto es mediante la direccion 0000A800 con un tamaño no mayor a 95bytes



sigamos en shell execute
0006FFA4   00000000  |hWnd = NULL
0006FFA8   00409170  |Operation = "open"
0006FFAC   0040CA94  |FileName = "C:\DOCUME~1\APUROM~1\CONFIG~1\Temp\1D.tmp\b2e.exe"
0006FFB0   0040CD5A  |Parameters = "C:\DOCUME~1\APUROM~1\CONFIG~1\Temp\1D.tmp\b2e.exe "C:\Documents and Settings\Apuromafo\Escritorio" "C:\Documents and Settings\Apuromafo\Escritorio\Recover Gold v1.2.exe""
0006FFB4   0040C896  |DefDir = ""C:\Documents and Settings\Apuromafo\Escritorio""
0006FFB8   00000001  \IsShown = 1


tenemos el directorio..no lo ejecutare..ahora cierro y tengo el exe

luego de la estructura
0040145E  |> 68 00000000    |PUSH 0                                  ; /hTemplateFile = NULL
00401463  |. 68 80000000    |PUSH 80                                 ; |Attributes = NORMAL
00401468  |. 68 02000000    |PUSH 2                                  ; |Mode = CREATE_ALWAYS
0040146D  |. 68 00000000    |PUSH 0                                  ; |pSecurity = NULL
00401472  |. 68 00000000    |PUSH 0                                  ; |ShareMode = 0
00401477  |. 68 00000040    |PUSH 40000000                           ; |Access = GENERIC_WRITE
0040147C  |. FF35 94344000  |PUSH DWORD PTR DS:[403494]              ; |FileName = NULL
00401482  |. E8 030C0000    |CALL <JMP.&KERNEL32.CreateFileA>        ; \CreateFileA
00401487  |. A3 88344000    |MOV DWORD PTR DS:[403488],EAX
0040148C  |. 68 00000000    |PUSH 0                                  ; /pOverlapped = NULL
00401491  |. 68 80344000    |PUSH b2e.00403480                       ; |pBytesWritten = b2e.00403480
00401496  |. FF35 74344000  |PUSH DWORD PTR DS:[403474]              ; |nBytesToWrite = 0
0040149C  |. 8B1D A4344000  |MOV EBX,DWORD PTR DS:[4034A4]           ; |
004014A2  |. 031D 98344000  |ADD EBX,DWORD PTR DS:[403498]           ; |
004014A8  |. 83C3 68        |ADD EBX,68                              ; |
004014AB  |. 53             |PUSH EBX                                ; |Buffer
004014AC  |. FF35 88344000  |PUSH DWORD PTR DS:[403488]              ; |hFile = NULL
004014B2  |. E8 EB0B0000    |CALL <JMP.&KERNEL32.WriteFile>          ; \WriteFile


que es la comentada tenemos denuevo las 2
y tenemos a este nivel
00401544  |. FF35 78344000  PUSH DWORD PTR DS:[403478]
0040154A  |. BA 30304000    MOV EDX,b2e.00403030                     ;  ASCII "batchfile.bat"
0040154F  |. 59             POP ECX
00401550  |. E8 EB2C0000    CALL b2e.00404240
00401555  |. 74 0A          JE SHORT b2e.00401561


la ejecucion de este
osea un bp en 40154f y tenemos en el directorio el "bat"
pero ojo ahora no es la misma ruta sino otra
2D.tmp
y al revisar %tmp% tengo el bat tal igual como el que habia copiado antes




#724
antes que ejecute el bat, se saca de memoria.. dame un ejemplo y te dire que es lo que sigue
(createfileA, openFileA)
#725
Ingeniería Inversa / Re: KeygenMe01 - C++
19 Julio 2012, 18:49 PM
0044B3AF   61               POPAD
0044B3B0   75 08            JNZ SHORT KeygenMe.0044B3BA
0044B3B2   B8 01000000      MOV EAX,1
0044B3B7   C2 0C00          RETN 0C
0044B3BA   68 20124000      PUSH KeygenMe.00401220
0044B3BF   C3               RETN

oep:00401220
iat:0044A1E0  7C8392A3  £'ƒ|  kernel32.AddAtomA
largo 170


  55               PUSH EBP
algoritmo a estudiar:

00401423   837D A0 0A       CMP DWORD PTR SS:[EBP-60],0A
00401427   7E 61            JLE SHORT KeygenMe.0040148A
00401429   C70424 20204400  MOV DWORD PTR SS:[ESP],KeygenMe.00442020 ; ASCII "cls"
00401430   E8 5B0B0100      CALL KeygenMe.00411F90                   ; JMP to msvcrt.system
00401435   C70424 04000000  MOV DWORD PTR SS:[ESP],4
0040143C   E8 EF160000      CALL KeygenMe.00402B30
00401441   C74424 04 020000>MOV DWORD PTR SS:[ESP+4],2
00401449   C70424 02000000  MOV DWORD PTR SS:[ESP],2
00401450   E8 5B140000      CALL KeygenMe.004028B0
00401455   C74424 04 242044>MOV DWORD PTR SS:[ESP+4],KeygenMe.004420>; ASCII "La cantidad de caracteres excede el valor maximo"
0040145D   C70424 F0534400  MOV DWORD PTR SS:[ESP],KeygenMe.004453F0
00401464   E8 DFC50300      CALL KeygenMe.0043DA48


por lo cual no puede ser usuarios o seriales mayores a 0a->10carácteres


0040148A   837D A0 02       CMP DWORD PTR SS:[EBP-60],2
0040148E   7F 61            JG SHORT KeygenMe.004014F1
00401490   C70424 20204400  MOV DWORD PTR SS:[ESP],KeygenMe.00442020 ; ASCII "cls"
00401497   E8 F40A0100      CALL KeygenMe.00411F90                   ; JMP to msvcrt.system
0040149C   C70424 04000000  MOV DWORD PTR SS:[ESP],4
004014A3   E8 88160000      CALL KeygenMe.00402B30
004014A8   C74424 04 020000>MOV DWORD PTR SS:[ESP+4],2
004014B0   C70424 02000000  MOV DWORD PTR SS:[ESP],2
004014B7   E8 F4130000      CALL KeygenMe.004028B0
004014BC   C74424 04 552044>MOV DWORD PTR SS:[ESP+4],KeygenMe.004420>; ASCII "Hay muy pocos caracteres."
004014C4   C70424 F0534400  MOV DWORD PTR SS:[ESP],KeygenMe.004453F0

y mayores a 2

respecto a usuario y serial aun confirmo.. pero debe ser interesante para los mas nuevos...
#726
Desafíos - Wargames / Re: Invitacion Wargame
19 Julio 2012, 04:47 AM
ejale
ahora estamos pegados en el 24 entonces posiblemente sea esteganografía?



Forget it. There are no clues here to find out the username/password. But it's out there. Somewhere :)

<img src="brain.jpg"><br /><br />
<td align="center">
<font face="verdana" color="white" size="40">
Come on, use it a little :)<br /><br />
                               <form action="24thauth.php" method="post">
                               <input type="text" name="user">
<input type="password" name="pwd">
                               <input type="submit" value="Login">
                               </form>

AHORA EN el encabezado del brain.jpg
ÿØÿà JFIF   d d  ÿì Ducky     d  ÿî Adobe
igual esta raro eso de ducky


lo otro que asusta es que existen
http://www.matiaskatz.com/challenge/25thauth.php
http://www.matiaskatz.com/challenge/26thauth.php
además!!
#727
Desafíos - Wargames / Re: Invitacion Wargame
17 Julio 2012, 22:02 PM
Cita de: kaiserr en 17 Julio 2012, 19:26 PM
Como has descifrado el binario, porque lo prove de binario a ASCII y no me salia nada :S

este es el binario
Citar0011000100110001001101100010000000110001001100010011000100100000001100010011000100110110001000000011000100110000001101000010000000110001001100000011000100100000001100000011010100110000001000000011000000110101001100010010000000110001001100010011010000100000001100010011000000110000
al pegarlo aqui: lo paso a texto
http://nickciske.com/tools/binary.php
obtengo lo siguiente
Citar116 111 116 104 101 050 051 114 100�
si transformo los alt+116=t  alt+111= asi sucesivamente tendremos tothe23rd

ahora bien,  porque la imagen salia "alt"
http://www.matiaskatz.com/challenge/alt.jpg
y abajo dice ese es el nombre del juego
That's the name of the game

esop, no se si realmente es el 23 el que continua o el tothe23 el que deberia ir
#728
Desafíos - Wargames / Re: Invitacion Wargame
17 Julio 2012, 04:24 AM
no se el nombre del juego
despues de estar aqui
http://www.matiaskatz.com/challenge/18thfloor.html
vayan a :
http://www.matiaskatz.com/challenge/21andcounting.html
abajo sale algo en binario
salen numeros desifrados asi
->
http://www.matiaskatz.com/challenge/tothe23rd.html
luego
http://www.matiaskatz.com/challenge/23rdfloor.html
pero ahi dice close but not cigar
"Close But No Cigar" is a song by "Weird Al" Yankovic, released on his album Straight Outta Lynwood


ya no se que seguir de este piso 23!
#729
Ingeniería Inversa / Re: Hacks para Juegos
16 Julio 2012, 03:51 AM
yo entendia que luego de parchar o saber donde parchar, creas un "loader" a modo que el parchado quede en linea, los trainer de juegos normalmente lo que pueden hacer no es solo detectar los lugares de vidas y otros sino congelar su valor a modo de hacerlo infinito

injertar sin inyectar...se puede, es mediante el parcheo pero en vez que parchee el ejecutable en el archivo, lo haga como loader

revisa el DUP (http://diablo2oo2.di.funpic.de/dup.html) y las direcciones, luego la opcion de loader
(es ensayo error) o bien leer tutoriales de usarlo..

los trainer o herramientas como cheatengine y otras permiten escanear la memoria y hacer este proceso un poco mas facil...
#730
cuando el programa es tuyo inclusive aveces puedes agregar el "sourcecode" existe una opción para aquello
saludos Apuromafo
Luego de cargado el exe, view source "source file o bien el lib)}



saludos APuromafo