Este mes me encargo yo de subir los retos y gestionar la lista de los participantes, así Flamer se puede relajar un poco.
Espero que participéis muchos este mes, recordar que tenéis que enviarme a mí los retos resueltos para que los poste a final de mes.
2 - crackme#1.LightHash.
3 - Crackme5.
4 - InjectMe_#2.
5 - LeeviON__sCrackme.
6 - YourFirst.
Retos:
ultrashare.net/hosting/fl/95d86db57a
Reglas:
http://foro.elhacker.net/ingenieria_inversa/retos_mensuales_de_reversing-t371874.0.html
Debido a que el Crackme cc14 no puede ser resulto lo hemos cambiado por el Simple CrackMe #1-Bloc
Siento las molestias que os haya podido ocasionar el problema con el cc14
Aquí tenéis el enlace de descarga del nuevo Crackme.
Simple CrackMe #1-Bloc: http://ultrashare.net/hosting/fl/69df35b9f4
Lista de Ganadores
-----------------------------------------------------------------
| Usuario | Reto | Logro |
-----------------------------------------------------------------
| FaQuiVer | 2 | serial |
----------------------------------------------------------------
| FaQuiVer | 3 | Tutorial y Keygen |
----------------------------------------------------------------
| FaQuiVer | 6 | Tutorial |
----------------------------------------------------------------
| PeterPunk77 | 1 | Serial |
----------------------------------------------------------------
| PeterPunk77 | 2 | Resuelto |
----------------------------------------------------------------
| PeterPunk77 | 3 | Resuelto |
----------------------------------------------------------------
| PeterPunk77 | 4 | Resuelto |
----------------------------------------------------------------
| PeterPunk77 | 5 | Resuelto |
----------------------------------------------------------------
| PeterPunk77 | 6 | Resuelto |
----------------------------------------------------------------
| CraZy7BiTS | 1 | Serial |
----------------------------------------------------------------
| CraZy7BiTS | 6 | Resuelto |
----------------------------------------------------------------
-----------------------------------------------------------------
| Usuario | Reto | Logro |
-----------------------------------------------------------------
| FaQuiVer | 2 | serial |
----------------------------------------------------------------
| FaQuiVer | 3 | Tutorial y Keygen |
----------------------------------------------------------------
| FaQuiVer | 6 | Tutorial |
----------------------------------------------------------------
| PeterPunk77 | 1 | Serial |
----------------------------------------------------------------
| PeterPunk77 | 2 | Resuelto |
----------------------------------------------------------------
| PeterPunk77 | 3 | Resuelto |
----------------------------------------------------------------
| PeterPunk77 | 4 | Resuelto |
----------------------------------------------------------------
| PeterPunk77 | 5 | Resuelto |
----------------------------------------------------------------
| PeterPunk77 | 6 | Resuelto |
----------------------------------------------------------------
| CraZy7BiTS | 1 | Serial |
----------------------------------------------------------------
| CraZy7BiTS | 6 | Resuelto |
----------------------------------------------------------------
Soluciones FaQuiVer
-----------------------------------------------------------
2 - crackme#1.LightHash
-----------------------------------------------------------
Name: FaQuiVer
Serial: 227378-30-3871
-----------------------------------------------------------
-----------------------------------------------------------
3 - Crackme5.
-----------------------------------------------------------
KeyGen:
-----------------------------------------------------------
6 - YourFirst Crackme
-----------------------------------------------------------
-----------------------------------------------------------
2 - crackme#1.LightHash
-----------------------------------------------------------
Name: FaQuiVer
Serial: 227378-30-3871
-----------------------------------------------------------
-----------------------------------------------------------
3 - Crackme5.
-----------------------------------------------------------
KeyGen:
Código
Private Sub Form_Load() Dim Valor As Integer Dim Nombre As String Dim Serial As String Dim RegCode As String Dim ID As String Nombre = InputBox("Nombre:", "Arkantos Crackme5 *KeyGen*") Serial = vbNullString RegCode = vbNullString ID = vbNullString If Len(Nombre) <= 4 Then MsgBox "Nombre demasiado corto", 16, "": End: Exit Sub Nombre = StrReverse(Nombre) For x = 1 To Len(Nombre) Valor = Asc(Mid(Nombre, x, 1)) Serial = Serial & Hex(Valor) Next x RegCode = "210579ioO-avB-pM" ID = "ua921N" & Serial & "pnqVTm" MsgBox "Nombre: " & StrReverse(Nombre) & vbNewLine & "Serial: " & Serial & vbNewLine & _ "RegCode: " & RegCode & vbNewLine & "ID: " & ID, 64, "Done!" End End Sub
-----------------------------------------------------------
6 - YourFirst Crackme
-----------------------------------------------------------
Citar
vamos por partes, lo que necesitamos es ollydbg 1.10 sin cambios ni plugin
los objetivos son:
- nag
- AntiDebug
- PassCdCheck
Primero la nag!
al abrir el crackme en ollydbg caemos directamente aquí:
No tenemos que esforzarnos mucho verdad? para eliminar la nag aplicamos NOP's en:
Con esto nos libramos de la nag, guardamos cambios y seguimos con el Antidebug
Al correr el crackme nos salta un mensaje con este texto:
---------------------------
YourFirstCrackme
---------------------------
Debugger found!
---------------------------
Aceptar
---------------------------
que hacemos? pues... buscamos todas las referencias de texto, ubicamos "Debugger found!"
ENTER en la cadena para caer en el desensamblado
Caemos directamente aqui
Subimos lineas mas arriba y analizamos el codigo
Observamos IsDebuggerPresent que es una funcion de windows para detectar debugeo
ese call nos devuelve 0 si no hay y 1 si hay un debugger presente
0040111E . 83F8 01 CMP EAX,1 <--- aqui la condición
EAX almacena el resultado ( 0 o 1 ) y compara, si se cumple salta directamente al msgbox de "Debugger found!"
00401121 . 74 4E JE SHORT YourFirs.00401171
Solucion!
NOP's Aqui:
o aqui:
Cualquiera de las dos opciones es valida, guardamos cambios y listo!
------------------------------------------------------------------------------------
Ahora PassCdCheck
Igual para este vemos que nos muestra un mensaje con este texto:
---------------------------
YourFirstCrackme
---------------------------
CD check failed!
---------------------------
Aceptar
---------------------------
Buscamos referencias, ubicamos CD check failed! ENTER para caer en el desensamblado
Lineas mas arriba vemos el código y observamos desde donde salta
Al tracear observo que esta función "GetDriveTypeA" me devuelve un valor de 3 el cual se almacena en EAX y se compara con 5. Obviamente no se cumple asi que salta al mensaje de error
3 Soluciones! aplicar cualquiera da el mismo resultado.
1.
Cambiar por:
--------------------------------------------------------------------------------------
2.
Cambiar por:
--------------------------------------------------------------------------------------
3.
Aplicar NOP's Aqui:
--------------------------------------------------------------------------------------
Guardamos cambios utilizando cualquiera de las 3 soluciones y ya se nos muestra el mensaje bueno! aun que observo un detalle, luego de aceptar el mensaje bueno el Crackme rompe o crashea!
vuelvo al olly y luego del mensaje bueno observo esto:
salta donde no debe asi que Redireccionamos quedando asi:
y listo eso seria todo!
los objetivos son:
- nag
- AntiDebug
- PassCdCheck
Primero la nag!
al abrir el crackme en ollydbg caemos directamente aquí:
Código
00401000 >/$ 6A 00 PUSH 0 ; /Style = MB_OK|MB_APPLMODAL 00401002 |. 68 00304000 PUSH YourFirs.00403000 ; |Title = "YourFirstCrackme" 00401007 |. 68 43304000 PUSH YourFirs.00403043 ; |Text = "I'm an ugly nag screen. REMOVE ME!" 0040100C |. 6A 00 PUSH 0 ; |hOwner = NULL 0040100E |. E8 0D020000 CALL <JMP.&user32.MessageBoxA> ; \MessageBoxA 00401013 |. 6A 00 PUSH 0 ; /pModule = NULL 00401015 |. E8 42020000 CALL <JMP.&kernel32.GetModuleHandleA> ; \GetModuleHandleA
No tenemos que esforzarnos mucho verdad? para eliminar la nag aplicamos NOP's en:
Código
0040100E |. E8 0D020000 CALL <JMP.&user32.MessageBoxA> ; \MessageBoxA
Con esto nos libramos de la nag, guardamos cambios y seguimos con el Antidebug
Al correr el crackme nos salta un mensaje con este texto:
---------------------------
YourFirstCrackme
---------------------------
Debugger found!
---------------------------
Aceptar
---------------------------
que hacemos? pues... buscamos todas las referencias de texto, ubicamos "Debugger found!"
ENTER en la cadena para caer en el desensamblado
Caemos directamente aqui
Código
00401178 . 68 22304000 PUSH YourFirs.00403022 ; |Text = "Debugger found!"
Subimos lineas mas arriba y analizamos el codigo
Código
00401119 . E8 44010000 CALL <JMP.&kernel32.IsDebuggerPresent> ; [IsDebuggerPresent 0040111E . 83F8 01 CMP EAX,1 00401121 . 74 4E JE SHORT YourFirs.00401171 00401123 . 8B45 0C MOV EAX,DWORD PTR SS:[EBP+C] 00401126 . 3D 10010000 CMP EAX,110
Observamos IsDebuggerPresent que es una funcion de windows para detectar debugeo
ese call nos devuelve 0 si no hay y 1 si hay un debugger presente
0040111E . 83F8 01 CMP EAX,1 <--- aqui la condición
EAX almacena el resultado ( 0 o 1 ) y compara, si se cumple salta directamente al msgbox de "Debugger found!"
00401121 . 74 4E JE SHORT YourFirs.00401171
Solucion!
NOP's Aqui:
Código
00401119 E8 44010000 CALL <JMP.&kernel32.IsDebuggerPresent> ; [IsDebuggerPresent
o aqui:
Código
00401121 . 74 4E JE SHORT YourFirs.00401171
Cualquiera de las dos opciones es valida, guardamos cambios y listo!
------------------------------------------------------------------------------------
Ahora PassCdCheck
Igual para este vemos que nos muestra un mensaje con este texto:
---------------------------
YourFirstCrackme
---------------------------
CD check failed!
---------------------------
Aceptar
---------------------------
Buscamos referencias, ubicamos CD check failed! ENTER para caer en el desensamblado
Código
004011A7 > 6A 10 PUSH 10 ; /Style = MB_OK|MB_ICONHAND|MB_APPLMODAL 004011A9 . 68 00304000 PUSH YourFirs.00403000 ; |Title = "YourFirstCrackme" 004011AE . 68 11304000 PUSH YourFirs.00403011 ; |Text = "CD check failed!"
Lineas mas arriba vemos el código y observamos desde donde salta
Código
00401188 E8 C9000000 CALL <JMP.&kernel32.GetDriveTypeA> 0040118D . 83F8 05 CMP EAX,5 00401190 . 75 15 JNZ SHORT YourFirs.004011A7
Al tracear observo que esta función "GetDriveTypeA" me devuelve un valor de 3 el cual se almacena en EAX y se compara con 5. Obviamente no se cumple asi que salta al mensaje de error
3 Soluciones! aplicar cualquiera da el mismo resultado.
1.
Código
00401188 E8 C9000000 CALL <JMP.&kernel32.GetDriveTypeA>
Cambiar por:
Código
00401188 B8 05000000 MOV EAX,5
--------------------------------------------------------------------------------------
2.
Código
0040118D 83F8 05 CMP EAX,5
Cambiar por:
Código
0040118D 3BC0 CMP EAX,EAX 0040118F 90 NOP
--------------------------------------------------------------------------------------
3.
Aplicar NOP's Aqui:
Código
00401190 . 75 15 JNZ SHORT YourFirs.004011A7
--------------------------------------------------------------------------------------
Guardamos cambios utilizando cualquiera de las 3 soluciones y ya se nos muestra el mensaje bueno! aun que observo un detalle, luego de aceptar el mensaje bueno el Crackme rompe o crashea!
vuelvo al olly y luego del mensaje bueno observo esto:
Código
004011A5 . EB 4E JMP SHORT YourFirs.004011F5
salta donde no debe asi que Redireccionamos quedando asi:
Código
004011A5 EB 48 JMP SHORT YourFirs.004011EF
y listo eso seria todo!
Soluciones PeterPunk77
-----------------------------------------------------------
1 - Simple CrackMe #1-Bloc.
-----------------------------------------------------------
User: |Usuario|
Pass: |J5L2C-K4B8L-D2K9S|
-----------------------------------------------------------
-----------------------------------------------------------
2 - crackme#1.LightHash.
3 - Crackme5.
4 - InjectMe_#2.
5 - LeeviON__sCrackme.
6 - YourFirst.
-----------------------------------------------------------
Soluciones: http://ultrashare.net/hosting/fl/a6bdccb84c
pass: "elhackerforum" (sin comillas).
-----------------------------------------------------------
-----------------------------------------------------------
1 - Simple CrackMe #1-Bloc.
-----------------------------------------------------------
User: |Usuario|
Pass: |J5L2C-K4B8L-D2K9S|
-----------------------------------------------------------
-----------------------------------------------------------
2 - crackme#1.LightHash.
3 - Crackme5.
4 - InjectMe_#2.
5 - LeeviON__sCrackme.
6 - YourFirst.
-----------------------------------------------------------
Soluciones: http://ultrashare.net/hosting/fl/a6bdccb84c
pass: "elhackerforum" (sin comillas).
-----------------------------------------------------------
Soluciones CraZy7BiTS
-----------------------------------------------------------
1 - Simple CrackMe #1-Bloc.
-----------------------------------------------------------
User: |Usuario|
Pass: |J5L2C-K4B8L-D2K9S|
-----------------------------------------------------------
-----------------------------------------------------------
1 - Simple CrackMe #1-Bloc.
-----------------------------------------------------------
User: |Usuario|
Pass: |J5L2C-K4B8L-D2K9S|
-----------------------------------------------------------
Un Saludo
Kaltorak.
Kaltorak.