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 - Muahahahahaha

#1
Bueno, empecemos.

NO, no es un crack de msdos, yo por lo menos le veo la cabecera PE al archivo, cosa que nos indica que es un ejecutable de 32 bits, los ejecutables de msdos son de 16, otra cosa es que sea de consola, cosa que no discuto, pero si no sabes, pregunta, o no hables.


Offset      0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F

00000000   4D 5A 90 00 03 00 00 00  04 00 00 00 FF FF 00 00   MZ.........ÿÿ..
00000010   B8 00 00 00 00 00 00 00  40 00 00 00 00 00 00 00   ¸.......@.......
00000020   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
00000030   00 00 00 00 00 00 00 00  00 00 00 00 80 00 00 00   ............€...
00000040   0E 1F BA 0E 00 B4 09 CD  21 B8 01 4C CD 21 54 68   ..º..´.Í!¸.LÍ!Th
00000050   69 73 20 70 72 6F 67 72  61 6D 20 63 61 6E 6E 6F   is program canno
00000060   74 20 62 65 20 72 75 6E  20 69 6E 20 44 4F 53 20   t be run in DOS
00000070   6D 6F 64 65 2E 0D 0D 0A  24 00 00 00 00 00 00 00   mode....$.......
00000080   50 45 00 00 4C 01 05 00  1B 42 E5 3F 00 30 00 00   PE..L....Bå?.0..
00000090   4B 02 00 00 E0 00 07 02  0B 01 02 38 00 22 00 00   K...à......8."..


y lo de que tiene su punto.... en fin, sin comentarios aqui pego algunas partes del olly comentadas y tal

son 3 bucles iguales, lo unico que una "analiza" el serial, otro el pass y otro una cadena constante "wowowowowowowotras"


004015F4  |> 83EC 0C        /SUB ESP,0C
004015F7  |. 8D45 D8        |LEA EAX,DWORD PTR SS:[EBP-28]
004015FA  |. 50             |PUSH EAX                                ; /s
004015FB  |. E8 A0180000    |CALL <JMP.&msvcrt.strlen>               ; \strlen
00401600  |. 83C4 10        |ADD ESP,10
00401603  |. 3985 64FFFFFF  |CMP DWORD PTR SS:[EBP-9C],EAX           ;  compara el valor en EBP-9c con EAX y cuando sea 0x0C saltara
00401609  |. 72 02          |JB SHORT crackme.0040160D
0040160B  |. EB 21          |JMP SHORT crackme.0040162E
0040160D  |> 8D45 F8        |LEA EAX,DWORD PTR SS:[EBP-8]            ;  var1  (contador ?)
00401610  |. 0385 64FFFFFF  |ADD EAX,DWORD PTR SS:[EBP-9C]
00401616  |. 83E8 20        |SUB EAX,20                              ;  resta para posicionar el puntero a la cadena + contador
00401619  |. 0FBE10         |MOVSX EDX,BYTE PTR DS:[EAX]             ;  mete en edx un caracter del serial
0040161C  |. 8D85 5CFFFFFF  |LEA EAX,DWORD PTR SS:[EBP-A4]           ;  var2 (donde se guarda el resultado)
00401622  |. 0110           |ADD DWORD PTR DS:[EAX],EDX              ;  suma el caracter con los anteriores
00401624  |. 8D85 64FFFFFF  |LEA EAX,DWORD PTR SS:[EBP-9C]
0040162A  |. FF00           |INC DWORD PTR DS:[EAX]
0040162C  |.^EB C6          \JMP SHORT crackme.004015F4



y al final lo que hace es unas comparaciones entre las sumas de los resultados


0040168B  |. 89C2           MOV EDX,EAX                              ;  mete la longitud de wowo... 18h (0x12h)
0040168D  |. 0395 58FFFFFF  ADD EDX,DWORD PTR SS:[EBP-A8]            ;  le suma el resultado de la suma de caracteres de wowo...
00401693  |. 8B85 5CFFFFFF  MOV EAX,DWORD PTR SS:[EBP-A4]            ;  mete la suma de caracteres del serial
00401699  |. 0385 60FFFFFF  ADD EAX,DWORD PTR SS:[EBP-A0]            ;  le suma la suma de caracteres del username
0040169F  |. 39C2           CMP EDX,EAX                              ;  mira si (longitud wo+suma wowo) = (suma serial + suma user )
004016A1  |. 74 31          JE SHORT crackme.004016D4                ;  Salta si son iguales las sumas


Un serial comodo seria:

User: wotrss     
Serial: wowowowowowo


pq si EDX siempre valdra 0x816 (0x12 + 0x804) que son los 18 caracteres de la cadena constante y 0x804 es la suma de los caracteres de esta cadena, y EAX es la suma de caracteres de una cadena que podriamos decir que esta compuesta por la union de la del user y la del serial, pues cojemos 12 caracteres de la cadena constante (mas no pq esta limitado y se chequea) y el resto lo metemos como user + 0x12 por eso cambiamos la a por una s ( "a"=0x61 + 0x12 = 0x73  "s" )