Autor
|
Tema: Crackme in batch (Leído 27,110 veces)
|
Crazy.sx
Desconectado
Mensajes: 447
|
mmm, no se como lo has hecho.. El crackme es en batch o otro lengaje?? --------------------------------------------------------------------------------- PD: Estaba repasando el post, y le encontre una inyeccion al primer code de smartgenius, probad este pass: Es otro lenguaje . Muy buen crackme carlitos.dll, solo que no es lo que todos creen que es. Pero muy bueno. Y eso que no esta "empaquetado" de ninguna manera Mmm, aunque todavia sigo intentando leer el codigo, si es que vos decis que se puede... Saludos che
|
|
|
En línea
|
Destruir K. LOL
|
|
|
carlitos.dll
Desconectado
Mensajes: 266
|
Agradezcan que no les reemplaze las lineas que decían gcc con un editor hexadecimal. Si no estarían con la gran duda.
|
|
« Última modificación: 1 Agosto 2008, 21:28 pm por carlitos.dll »
|
En línea
|
|
|
|
kraszic
Desconectado
Mensajes: 277
|
xDD Yo cuando vi el archivo empece a buscar un monton de infomacion de como lo podias haber hecho y al final llegue a la conclusion de q no podia ser batch.
Bueno, a ver si alguien se anima y postea un "crackme" nuevo. Por cierto, el mio de momento solo se q lo ha resolvido carlitos, a ver si puede mas gente.
Vi en otro foro un code de crackme de smartgenius q me encanto, a ver si lo postea tambien.
saludos
|
|
|
En línea
|
|
|
|
carlitos.dll
Desconectado
Mensajes: 266
|
Listo, este crackme va dedicado a quienes les gusta mirar el código fuente. Es más fácil que el anterior, pues pueden mirar el código fuente ::Crackme 04 CarlitoS.dll ::no importa que miren el fuente :D
@echo off setlocal enabledelayedexpansion title Error de teclado... presione F1 para continuar :D
:Login set pass= set /p pass=Enter password: if not defined pass (goto Login)
for %%a in ("|" "&" "^" ">" "<" "'" "`" "." ";" "," " " "/" "\" "+" "-" "~" "!" ")" "(" "]" "[" "{" "}") do ( set pass|find %%a >NUL && goto warning) for %%a in ("if" "else" "goto" "echo" "rem" "start" "set" "doskey" "pause" "cmd" "command") do ( set pass|find %%a >NUL && goto warning) set pass=%pass:"=_% ::echo off
if not [{98974876}]==[{%pass:~-8%}] (call :job) 2>NUL if "%errorlevel%"=="9009" (goto warning) call :job if not [{98974876}]==[{%pass%}] (goto mal) 2>NUL
echo Muy bien. echo Pronto, mas y mejor. echo Codeado por CarlitoS.dll echo Visita http://carlitosdll.blogspot.com pause>NUL exit goto :eof
:job set dic=0123456789abcdefghijklmn@opqrstuvwxyz for /l %%a in (0,1,37) do ( set /a d%%a="%%a << 7" set /a d%%a+="365%325" ) set /a res=0 set pass=%pass:98974876=% call :contar %pass% set limit= set limit=![%pass%.length]! for /l %%b in (0,1,%limit%) do (for /l %%c in (0,1,37) do (call :res %%b %%c)) set pass= set pass=%res% goto :eof
:warning echo echo Posible intento de batch injection echo. goto Login
:contar set palabra=%1 if defined palabra (call :length %palabra: =_%) goto :eof
:length set arg=%* if not defined arg (goto :eof) set word=%arg% set /a cont=0 :loop if not defined word (goto end) set word=%word:~1% set /a cont +=1 goto loop :end set [%arg: =_%.length]=%cont% goto :eof
:res set par1=%1 set par2=%2 set x=!pass:~%par1%,1%! set z=!dic:~%par2%,1! if "%x%"=="%z%" (call :res1 %par1% %par2%) goto :eof :res1 set /a sum="%2 + 3" set num=!d%1%! set /a mult="%num% * %sum%" set /a res +=%mult%" set /a res="%res%<<1" goto :eof
:mal echo Autentificacion incorrecta. echo. goto Login
|
|
« Última modificación: 2 Agosto 2008, 13:46 pm por carlitos.dll »
|
En línea
|
|
|
|
carlitos.dll
Desconectado
Mensajes: 266
|
Modifiqué el post del reto 4, pues tenía un bug. Debí haber utilizado en un comienzo setlocal enabledelayedexpansion, pero ya lo corregí en el post original, y corregí todos los call set. Espero que no se desanimen por esto, y que lo resuelvan como la gente el bug estaba aquí: call set limit=%%[%pass%.length]%% for /l %%b in (0,1,%limit%) do (for /l %%c in (0,1,37) do (call :res %%b %%c)) set pass= set pass=%res% goto :eof
call set se confundía Si tenía mi archivo crackme04.bat en el escritorio, y creaba un archivo llamado set.bat en el escritorio con el siguiente contenido: set res=98974876 set limit=1) do rem (
el cmd.exe hacía esto: call set set res=98974876 set limit=1) do rem ( for /l %%b in (0,1,1) do rem () do (for /l %%c in (0,1,37) do (call :res %%b %%c)) set pass= set pass=98974876 goto :eof
|
|
« Última modificación: 5 Agosto 2008, 07:48 am por carlitos.dll »
|
En línea
|
|
|
|
kraszic
Desconectado
Mensajes: 277
|
Estoy mirando tu code y muy dificil de momento.. xD A ver si me puedes explicar q son estas lineas o sino por mp, te lo agradeceria. for /l %%a in (0,1,37) do ( set /a d%%a="%%a << 7" set /a d%%a+="365%325" ) Esta parte no la entiendo muy bien. Y esta otra tampoco me queda clara: saludos y buen code pa pensar un rato
|
|
|
En línea
|
|
|
|
Crazy.sx
Desconectado
Mensajes: 447
|
xDD Yo cuando vi el archivo empece a buscar un monton de infomacion de como lo podias haber hecho y al final llegue a la conclusion de q no podia ser batch.
Bueno, a ver si alguien se anima y postea un "crackme" nuevo. Por cierto, el mio de momento solo se q lo ha resolvido carlitos, a ver si puede mas gente.
Vi en otro foro un code de crackme de smartgenius q me encanto, a ver si lo postea tambien.
saludos
Yo simplemente me fije en la lista de procesos y vi que no estaba cmd.exe, ahi empecé a "Sospechar". Listo, este crackme va dedicado a quienes les gusta mirar el código fuente. Es más fácil que el anterior, pues pueden mirar el código fuente ¿Como yo por ejemplo? . Pero es mas divertido hacerlo sin "trampas". Me divirto con estos jueguitos je
|
|
|
En línea
|
Destruir K. LOL
|
|
|
carlitos.dll
Desconectado
Mensajes: 266
|
Estoy mirando tu code y muy dificil de momento.. xD A ver si me puedes explicar q son estas lineas o sino por mp, te lo agradeceria. for /l %%a in (0,1,37) do ( set /a d%%a="%%a << 7" set /a d%%a+="365%325" ) Esta parte no la entiendo muy bien. Y esta otra tampoco me queda clara: saludos y buen code pa pensar un rato ese código te crea variables d0 d1 ... hasta d37. con cierto contenido. http://www.ss64.com/nt/set.htmlset num=!d%1%! eso asigna el contenido de una variable a num, ! es debido a setlocal enabledelayed expansion. antes estaba así: call set num=%%d%1%% res1 recibe un parametro (%1), y segun ese numero, por ejemplo si recibe 10, asigna a la variable num el contenido de la variable d10 set num=!d%1%! es lo mismo que: set num=!d%1! Es demoroso resolver este crackme, si te haces un generador de palabras puedes estar más de un día, ya lo resolví por fuerza bruta, y se demora
|
|
« Última modificación: 2 Agosto 2008, 22:19 pm por carlitos.dll »
|
En línea
|
|
|
|
karmany
|
Lo he analizado desde el punto de vista de Ingeniería Inversa, y has sido un poco malévolo. Si no me equivoco lo has programado en Dev-C++ 4.9.9.2 (tal vez) y lo has hecho en consola simulando que lo habías programado en Batch. He visto que llamas a la función time y seguidamente haces unas pequeñas operaciones y te sale un número. Ese es el número de contraseña. Por eso difiere en cada ejecución. Me ha parecido muy interesante. Un saludo
|
|
|
En línea
|
|
|
|
kraszic
Desconectado
Mensajes: 277
|
esta bastante dificil tu code, estuve un dia probando y no hubo manera, a ver si me pongo otra vez y consigo resolverlo. Se me ocurrio tambien lo de la fuerza bruta pero no era un numero bajo y no era una buena idea.
saludos
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Os dejo un crackme, mi primer crackme ^^
« 1 2 »
Ingeniería Inversa
|
frankener1986
|
14
|
12,896
|
14 Agosto 2006, 00:59 am
por sircid
|
|
|
Crackme Noob 1.0 [batch]
Scripting
|
Binary_Death
|
3
|
2,711
|
16 Febrero 2010, 16:21 pm
por ---saster---
|
|
|
[Batch] Crackme v8 - by xassiz
Scripting
|
xassiz_
|
2
|
2,688
|
22 Abril 2010, 15:17 pm
por xassiz_
|
|
|
Crackme en batch
Scripting
|
jmetin2
|
0
|
1,596
|
10 Junio 2011, 02:58 am
por jmetin2
|
|
|
Crackme BATCH - Reto
Ingeniería Inversa
|
Puntoinfinito
|
9
|
4,628
|
19 Agosto 2012, 02:13 am
por r@mbyte
|
|