Como creo un crackeame

Iniciado por panpecito, 18 Julio 2012, 20:40 PM

0 Miembros y 3 Visitantes están viendo este tema.

Puntoinfinito

Cita de: Tinkipinki en 19 Julio 2012, 19:49 PM
ver el codigo en memoria aun que lo compiles.

¿Asi? ¿Cómo? o.O
AHORA EN SOFTONIC || CLICK HERE!!
Base64: QWNhYmFzIGRlIHBlcmRlciAxIG1pbnV0byBkZSB0dSB2aWRhLiBPbOkh



HACK AND 1337 : http://hackandleet.blogspot.com
WEBSITE: http://www.infiniterware.

apuromafo CLS

antes que ejecute el bat, se saca de memoria.. dame un ejemplo y te dire que es lo que sigue
(createfileA, openFileA)

Puntoinfinito

AHORA EN SOFTONIC || CLICK HERE!!
Base64: QWNhYmFzIGRlIHBlcmRlciAxIG1pbnV0byBkZSB0dSB2aWRhLiBPbOkh



HACK AND 1337 : http://hackandleet.blogspot.com
WEBSITE: http://www.infiniterware.

Tinkipinki

Hola puntoinfinito:
Muchos programas que compilan bat's para pasarlos a .exe, cuando los ejecutas lo que hacen es meter en memoria todo el codigo del bat y ejecutarlo en modo interpretado.
Te dejo este ejemplo de un crackme que hice hace tiempo usando este sistema:

http://www.mediafire.com/?u98sfh4hol92o1f

Te dejo el bat sin compilar para que puedas seguir el codigo.
Como veras el serial correcto es TSK3R
Carga el crackme en el Olly i entra un serial cualquiera. Veras que aparece el mensaje de error. Toma nota del mensaje.
En el Olly haces ALT+M para entrar en la ventana de memoria y haces Search -> la cadena del mensaje.
Veras que para y si te vas fijando en el codigo iras descubriendo todo el codigo del .bat

Saludos

karmany

Cita de: puntoinfinito en 21 Julio 2012, 11:04 AM
Dame el código de este; http://www.editado.html

Es muy sencillo extraerlo, porque como te ha dicho apuromafo se suelen usar distintas API, el tuyo usa CreateFileA.
Yo, si no quieres que te lo extraigan, no preguntaría eso en el foro de ingeniería inversa y borraría el mensaje. Tu bat es muy sencillo de extraer, aunque uses dos exe.

dac

Recuerdo un "compilador" de batch que convertía el programa batch a C para luego compilarlo

<batchtoexe>

apuromafo CLS

@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





Puntoinfinito

Esto del cracking parece molón. xD
No sabia que se pudieran hacer estas cosas...

Probando lo que me habéis pasado*
AHORA EN SOFTONIC || CLICK HERE!!
Base64: QWNhYmFzIGRlIHBlcmRlciAxIG1pbnV0byBkZSB0dSB2aWRhLiBPbOkh



HACK AND 1337 : http://hackandleet.blogspot.com
WEBSITE: http://www.infiniterware.