Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: panpecito en 18 Julio 2012, 20:40 pm



Título: Como creo un crackeame
Publicado por: panpecito en 18 Julio 2012, 20:40 pm
Hola esque nose crear un crackeame si alguien me dijera como la agredeciria mucho

Saludos  :rolleyes:


Título: Re: Como creo un crackeame
Publicado por: dac en 18 Julio 2012, 21:00 pm
Escribe un programa que pida una contraseña.. si es la correcta te dice "BIEN" y si no lo es te dice "MAL" ... listo.. (basico) pero esa es la idea más o menos


Título: Re: Como creo un crackeame
Publicado por: karmany en 18 Julio 2012, 21:38 pm
Mejor que te acerques a cualquier foro/subforo de programación.
Allí tendrás información de cómo empezar a programar y crear crackeame (CrackMe en inglés)


Título: Re: Como creo un crackeame
Publicado por: Flamer en 18 Julio 2012, 22:45 pm
ase tiempo yo pensaba hacer un tutorial de como crear crackmes en vb6 a razón de que no e visto tutoriales sobre eso en la web ni en este foro que hablen en especifico del tema pero me enfade y lo deje empezado creí que anadien le interesaría

Saludos flamer


Título: Re: Como creo un crackeame
Publicado por: panpecito en 18 Julio 2012, 23:04 pm
a vale gracias


Título: Re: Como creo un crackeame
Publicado por: tincopasan en 19 Julio 2012, 07:16 am
Flamer: no hay forma de saber si le puede o no interesar a alguien, pero (creo) si tenes la oportunidad de enseñar, seguro a alguien le interesa! es más leeré tu tutorial!.
Saludos y éxitos.


Título: Re: Como creo un crackeame
Publicado por: Tinkipinki en 19 Julio 2012, 13:29 pm
Hola Flamer, otro que se apunta...saludos


Título: Re: Como creo un crackeame
Publicado por: Flamer en 19 Julio 2012, 16:55 pm
Bueno gracias por el apoyo ya lo busque y si todavia lo tengo esta en pesado, boy hacer un lado los crackmes pendientes y lo boy a terminar y lo posteo haber que les parece denme un poco de tiempo

saludos y gracias Flamer ;-)


Título: Re: Como creo un crackeame
Publicado por: Puntoinfinito en 19 Julio 2012, 17:12 pm
Mira aquí uno en batch muy básico...
Para que no miren el código compila el .bat a .exe y así no podran mirar el código.

Código
  1. @ECHO OFF
  2. title Crackme basico
  3. color a
  4. echo.Metodos a emplear:
  5. echo.-Brute force
  6. goto :index
  7. :index
  8. echo.Setea la palabra correcta que te llevara a desactivar la bomba
  9. set /p asd=^>^>^>
  10. if %asd%=="elhacker.net" (goto :end) else (goto :a)
  11. :end
  12. echo.BOMBA DESACTIVADA!

Aquí un código (con motivación, que siempre ayuda) que puedes crackear a través de un brute force.


Título: Re: Como creo un crackeame
Publicado por: Tinkipinki en 19 Julio 2012, 19:49 pm
Hola puntoinfinito:
Hace tiempo hice un crackme a partir de un bat compilado y comntarte que si se puede ver el codigo en memoria aun que lo compiles.

Saludos


Título: Re: Como creo un crackeame
Publicado por: Puntoinfinito en 19 Julio 2012, 23:04 pm
ver el codigo en memoria aun que lo compiles.

¿Asi? ¿Cómo? o.O


Título: Re: Como creo un crackeame
Publicado por: apuromafo CLS en 21 Julio 2012, 00:08 am
antes que ejecute el bat, se saca de memoria.. dame un ejemplo y te dire que es lo que sigue
(createfileA, openFileA)


Título: Re: Como creo un crackeame
Publicado por: Puntoinfinito en 21 Julio 2012, 11:04 am
Dame el código de este; http://www.infiniter.vacau.com/recover-gold.html


Título: Re: Como creo un crackeame
Publicado por: Tinkipinki en 21 Julio 2012, 13:25 pm
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 (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


Título: Re: Como creo un crackeame
Publicado por: karmany en 21 Julio 2012, 14:35 pm
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.


Título: Re: Como creo un crackeame
Publicado por: dac en 21 Julio 2012, 16:42 pm
Recuerdo un "compilador" de batch que convertía el programa batch a C para luego compilarlo

<batchtoexe>


Título: Re: Como creo un crackeame
Publicado por: apuromafo CLS en 21 Julio 2012, 23:04 pm
@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






Título: Re: Como creo un crackeame
Publicado por: Puntoinfinito en 22 Julio 2012, 16:28 pm
Esto del cracking parece molón. xD
No sabia que se pudieran hacer estas cosas...

Probando lo que me habéis pasado*