Dejo un crackme en batch.
para que se entretengan.
http://wikisend.com/download/490408/crackme.exe
¿haber si alguien se anima y publica más?
jaja era sencillo =) (con la pista* xD)
Me has animado a hacer el mio... pero...
que usas para compilar? =D
Jeje, es fácil. Y si, creo que también pensaré en alguno... haber que me sale.
Che, esto no iría en wargames?. Pero me entretuve un momento ya que estaba aburrido. jeje
Saludos
Cita de: PyXOLo en 6 Julio 2008, 15:20 PM
jaja era sencillo =) (con la pista* xD)
Me has animado a hacer el mio... pero...
que usas para compilar? =D
Compilé con Quick Batch File Compiler 2.1.5.0 con password de descifrado
http://rapidshare.com/files/39553660/Quick_20Batch_20File_20Compiler_20v2.1.5.0.rar
Luego eliminé los iconos y la pestaña "Versión" de propiedades con Resource Hacker
http://www.angusj.com/resourcehacker/
Y finalmente comprimí el ejecutable con Upx
http://upx.sourceforge.net/download/upx303w.zip
Nota: que el code que hice está a prueba de trucos, por ejemplo, al solicitar un ingreso por parte del usuario: colocar cualquierocosa & echo on
lo que muestra los comandos internos del bat.
Sip, esta bueno :D
Al principio no le entendia, pero luego si.
Saludos!
Ya te lo crackie... xD ;D ;D
Ya sabes cual es la solucion, ahora te reto a que hagas el Mio... ya sabes donde ...
Saludos.
EDITO:
Aqui lo dejo...
El reto es encontrar una clave valida, y si hay varias pues hacer un Keygen...
(http://img386.imageshack.us/img386/3983/crackmev2mw2.jpg)
Descargar: http://two.xthost.info/smartgenius/Crackmev2.zip
Cita de: :: SmartGenius :: en 7 Julio 2008, 01:33 AM
Ya te lo crackie... xD ;D ;D
Ya sabes cual es la solucion, ahora te reto a que hagas el Mio... ya sabes donde ...
Saludos.
EDITO:
Aqui lo dejo...
El reto es encontrar una clave valida, y si hay varias pues hacer un Keygen...
(http://img386.imageshack.us/img386/3983/crackmev2mw2.jpg)
Descargar: http://two.xthost.info/smartgenius/Crackmev2.zip
colocas
hola & echo on
enter después del pause
hola & goto be
otra:
hola & echo on
::anotamos este numerito 7vfesh07vay0ky0t3+y
::enter después del pause
hola & set | more
::llegamos al final, y vemos la variable v
hola & set v=7vfesh07vay0ky0t3+y
otra:
hola & set v=not 5
Está bueno el crackme smartgenius, pero debería validar más las entradas.
Listo.
:D
el mio (0.1) se crackea así:
5$"]]==[["$5$"]] (goto ok) else if [["$
Bueno de pasadita :) fueron 2 minutos muy interesantes para ver ambos
passwords :)
carlitos.dll interesante lo de -%UN%+%i%
Y de :: SmartGenius :: son perfectamente claras las muchas variables
que tiene este batch, podrias incrementar o modificar a cada intento el
valor de %y% para hacerlo un poco menos sencillo.
(http://img236.imageshack.us/img236/7796/37423138sp8.jpg)
(http://img337.imageshack.us/img337/9969/96598853ki6.jpg)
El de smart genius me resultó muy facil ^^
Pura batch injection =)
El de carlitoss esta bastante bueno :rolleyes:
Felicitaciones a los dos ;)
SmartGenius: no me pidas que explique como llegué a la inversa, porque no sé, comenzé a partir de dos valores, y saqué las siguientes variantes:
ph46r0m3y
Pr06r4m3r
ph4kr0m3y
Pr0kr4m3r
ph06r4m3y
Pr46r0m3r
ph0kr4m3y
Pr4kr0m3r
ph46h0m3y
Pr06h4m3r
ph4kh0m3y
Pr0kh4m3r
ph06h4m3y
Pr46h0m3r
ph0kh4m3y
Pr4kh0m3r
Cita de: carlitos.dll en 6 Julio 2008, 13:23 PM
Dejo un crackme en batch.
para que se entretengan.
http://wikisend.com/download/490408/crackme.exe
¿haber si alguien se anima y publica más?
Cita de: carlitos.dll en 6 Julio 2008, 22:32 PM
Nota: que el code que hice está a prueba de trucos, por ejemplo, al solicitar un ingreso por parte del usuario: colocar cualquierocosa & echo on
lo que muestra los comandos internos del bat.
¿A prueba de trucos? ¿Seguro?....¡¡¡¡¡¡¡¿Entonces que es esto?!!!!!!!@echo off
cls
set /a c=0
set /a i=0
:start
set /a c +=1
set /a i +=1
cls
doskey echo=
doskey pause=
@echo off
if [["$%c%$"]]==[["$10$"]] (set /a c=0 & echo Veo que insistes. Pista: -usuario+intentos& pause>NUL & goto start)
echo CRACKME 0.1 by CarlitoS.dll
echo.
echo %i%
echo Enter password (case sensitive):
doskey echo=rem
doskey pause=rem
set /p pwl=""
if [["$%pwl%$"]]==[["$$"]] (goto start)
if [["$%pwl%$"]]==[["$-%UserName%+%i%$"]] (goto ok)
goto start
:ok
cls
doskey echo=
doskey pause=
echo Muy bien, has pasado.
pause>NUL
exit
::al menos hubieras hecho esto, que se yo al final del código.
del /f *.ext
::entedes?
Si puedo haré lo mismo con el de SmartGenius.Aunque lo divertido es pensarlo y reventarse el "coco" intentando asi se abre un poquitito la mente...Saludos.
PD.: No diré como lo hice por ahora, ese es mi reto para uds. Se parece a las webs, o quizas no. O nada que ver... (No se dar pistas) :xD Pero sinceramente, no es la gran cosa...
Crackme v 2 by Smart...
@echo off
mode con cols=55
mode con lines=20
title CrackMe v 2.0 by SmartGenius
color 0a
:ini
cls
set var1=s
set var2=c
set var3=e
set r4=t
%var1%e%r4% v1=h
%var1%e%r4% l1=o
%var1%e%r4% l2=B
%var1%e%r4% l3=p
%var1%e%r4% la=%var3%
%var1%e%r4% %r4%=ll
%var3%c%v1%o.
e%var2%%v1%o.
echo %l2%ienv%var3%nid%l1% al S%var3%gundo CrackMe - %l2%atch...
echo.
e%var2%%v1%o Introduce el Password:
%var1%e%r4% /%l3% %l3%ass=">> "
%var2%a%t% :%var2%ri%l3%t %pass%
echo.
if %v%==7vfesh07vay0ky0t3+y (g%l1%t%l1% b%var3%) else (g%l1%t%l1% %l3%n%l1%)
pause
exit
:cript
set v=%1
set v=%v:a=23%
set v=%v:e=ni%
set v=%v:h=r%
set v=%v:r=y%
set v=%v:c=mo%
set v=%v:d=z%
set v=%v:3=+%
set v=%v:6=k%
set v=%v:P=na%
set v=%v:n=lwd%
set v=%v:z=1k5%
set v=%v:m=t3%
set v=%v:o=sm%
set v=%v:s=hd2%
set v=%v:l=7v%
set v=%v:d=x0g%
set v=%v:g=7v%
set v=%v:q=al%
set v=%v:w=fe%
set v=%v:j=u4%
set v=%v:4=0%
set v=%v:i=zm%
set v=%v:x=sh%
g%l1%t%l1% :%var3%of
:be
echo.
echo Muy Bien...
echo.
pause
exit
:pno
echo.
echo Password Incorrecto Vuelve a intentarlo
echo.
pause
g%l1%t%l1% ini
Estos códigos están excelentes, ya pensaré en alguno que esten a este nivel....
Saludos mis amigos.
PD: Disculpen si molesté a alguno... pero si se vuelve a lanzar otro juego como estos, ya no publicaré los códigos... ni siquiera para mí. Es que me divierte resolverlos!!!!
Perdón, no sé si soy el más lento aquí, pero cómo le sacaste el código al batch si estaba como .exe?
Gracias y disculpen
Muy buenos los dos... El primero me costó un poco porque como no lo quería pasar con un número de intentos altos, me salía cuando el contador marcaba 5 y lo volvía a ejecutar...
PD: No había leído la postdata, lukhardy... Buscaré la manera, si no puedo, espero pacientemente a que publiques como...
Cita de: najmuddin en 7 Julio 2008, 07:34 AM
Perdón, no sé si soy el más lento aquí, pero cómo le sacaste el código al batch si estaba como .exe?
Gracias y disculpen
Muy buenos los dos... El primero me costó un poco porque como no lo quería pasar con un número de intentos altos, me salía cuando el contador marcaba 5 y lo volvía a ejecutar...
PD: No había leído la postdata, lukhardy... Buscaré la manera, si no puedo, espero pacientemente a que publiques como...
Jejeje, naaa, todavía no :P ;D, haganlo ustedes, aunque sé de uno que tiene idea de lo que hice... Y cuando lo descubran diran: "¿Esto era? Baaaaa". ;D
Aquí dejo el segundo crackme:
editado
http://wikisend.com/download/560880/crackme02.exe
Najmuddin: no existen compiladores reales de batch, simplemente lo que hacen es tomar el código, y al momento de ejecutarlo, extraerlo a una carpeta temporal y abrirlo.
Este me gusto mas que el otro.
Muy bueno!
Saludos
Cita de: RockoX en 7 Julio 2008, 08:50 AM
Este me gusto mas que el otro.
Muy bueno!
Saludos
Gracias.
He resubido el crackme 0.2 pues tenía un bug que descubrió RockoX sin darse cuenta :D
Nota: las password es sin comillas.
A mi tambien me gustaria q me explicaran eso de los exe XD
Porq es abrirlo y no se q hacer porq no hay codigo ni hay nada xDD
Yo saque el pass del codigo de smartgenius porq publicaron por ahi el code en batch, sino no se como se hace tampoco.
saludos
Es fácil, Configuras las opciones de carpeta, para ver archivos ocultos y protegidos. Luego ejecutas el exe, y vas a la carpeta raíz donde tienes windows y colocas buscar seleccionando en opciones: archivos ocultos y de sistema; y buscas: *.bat;*.cmd y el archivo nuevo con nombre raro que encuentres, probablemente ese sea. Sino funciona, utilizar diskmon.exe de sysinternals que muestra qué archivos se leen, crean y cierran en el sistema de archivos.
crackme02.bat
@echo off
cls
set /a c=0
set /a i=0
:start
set /a c +=1
set /a i +=1
cls
doskey echo=
doskey pause=
@echo off
if [["$%c%$"]]==[["$10$"]] (set /a c=0 & echo Veo que insistes. Pista: usuario@computador & echo Aunque te recomiendo que empieces todo de nuevo & pause>NUL & goto start)
echo CRACKME 0.2 by CarlitoS.dll
if not "%i%"=="3" (echo. & echo %OS%) else (ver)
echo Enter password (CaSe SeNsItIvE):
doskey echo=rem
doskey pause=rem
set pwl=bad
set /p pwl=""
if [["$%pwl%$"]]==[["$$"]] (goto start)
if [["$%pwl%$"]]==[["$%username%@%computername%$"]] (goto ok)
goto start
goto :eof
:ok
cls
doskey echo=
doskey pause=
set var=
set sum=
set /a sum=100-97
set var=
call :crypto %pwl: =%+%sum%
set var1=
set var1=%var%
set var=
call :crypto %username: =%@%computername%+%i%
set var2=
set var2=%var%
set var=
if [["$%var1%$"]]==[["$%var2%$"]] (echo Muy bien & echo Has pasado & pause>NUL & exit) else (echo Cerca. Te sugiero comiences desde cero, pruebes un par de veces y veas lo que cambia en la pantalla. & pause>NUL & exit)
exit
goto :eof
:crypto
set var=%1
set var=%var:A=z%
set var=%var:B=y%
set var=%var:C=x%
set var=%var:D=w%
set var=%var:E=v%
set var=%var:F=u%
set var=%var:G=t%
set var=%var:H=s%
set var=%var:I=r%
set var=%var:J=q%
set var=%var:K=p%
set var=%var:L=o%
set var=%var:M=n%
set var=%var:N=m%
set var=%var:O=l%
set var=%var:P=k%
set var=%var:Q=j%
set var=%var:R=i%
set var=%var:S=h%
set var=%var:T=g%
set var=%var:U=f%
set var=%var:V=e%
set var=%var:W=d%
set var=%var:X=c%
set var=%var:Y=b%
set var=%var:Z=a%
set var=%var:a=Z%
set var=%var:b=Y%
set var=%var:c=X%
set var=%var:d=W%
set var=%var:e=V%
set var=%var:f=U%
set var=%var:g=T%
set var=%var:h=S%
set var=%var:i=R%
set var=%var:j=Q%
set var=%var:k=P%
set var=%var:l=O%
set var=%var:m=N%
set var=%var:n=M%
set var=%var:o=L%
set var=%var:p=K%
set var=%var:q=J%
set var=%var:r=I%
set var=%var:s=H%
set var=%var:t=G%
set var=%var:u=F%
set var=%var:v=E%
set var=%var:w=D%
set var=%var:x=C%
set var=%var:y=B%
set var=%var:z=A%
goto :eof
Gracias, Carlitos, por el segundo... Me resultó más difícil que el primero pero no por eso menos interesante...
Muy bueno... ::)
Saludos...
yo tambien logre sacar el codigo, y me funciono eso q me dijiste de buscar, gracias.
Lo unico q no se para q sirve de tus codigos es lo del comando ((doskey echo=
y doskey pause=))
saludos
PD: A mi, el mas dificil me resulto el de smartgenius, a ver si yo puedo crear alguno XD
Sobre el segundo crackme, tal vez todos digan, ya sé cual es la password, pero no basta con saber la password, falta algo, nadie ha comentado eso, tal vez, porque solo miraron una parte del código.
Lo otro, lo de doskey es para filtrar comandos
doskey echo=rem
significa que cuando escriba echo en realidad escribiré rem que es comentario, y lo hago para que si en el ingreso alguien hace algo como:
cualquiercosa & echo on
ese echo en realidad diga rem on, y el comando pierde su efectividad
Ahora bien, con:
doskey echo=
vuelvo a sue estado normal el comando.
Bueno, sobre lo que dices que no hemos comentado creo que es lo de la versión, me llamó mucho la atención, aunque no me he centrado a examinar el código a ver como lo conseguiste...
Casi que no cojo esa pista, con lo de vuelve a empezar; Inicialmente creí que el contador debería estar en 0 para que funcionara...
Buenos codes, también tuve la duda de doskey cuando la vi, gracias por resolverla...
SmartGenius, la verdad es que era bastante fácil el crackme, al principio me costó si sacarlo como la gente :D . Acepta varias combinaciones, y no distingue mayúsculas de minúsculas.
Esta es la password que saqué por las buenas.
PR06R0M3R
La saqué así:
generaletras.bat
for %%a in (A E H R C D 3 6 P N Z M O S L D G Q W J 4 I X) do call :cript %%a
::no es sensitive case el reemplazo.
:cript
set v=%1
set v=%v:a=23%
set v=%v:e=ni%
set v=%v:h=r%
set v=%v:r=y%
set v=%v:c=mo%
set v=%v:d=z%
set v=%v:3=+%
set v=%v:6=k%
set v=%v:P=na%
set v=%v:n=lwd%
set v=%v:z=1k5%
set v=%v:m=t3%
set v=%v:o=sm%
set v=%v:s=hd2%
set v=%v:l=7v%
set v=%v:d=x0g%
set v=%v:g=7v%
set v=%v:q=al%
set v=%v:w=fe%
set v=%v:j=u4%
set v=%v:4=0%
set v=%v:i=zm%
set v=%v:x=sh%
echo %1 %v%>>hashes.txt
goto :eof
donde hashes.txt contiene:
A 2+
E 7vfesh07vzm
H y
R y
C t3hsh07v2m
D 1k5
3 +
6 k
P 7vfesh07va
N 7vfesh07v
Z 1k5
M t3
O hsh07v2m
S hsh07v2
L 7v
D 1k5
G 7v
Q al
W fe
J u0
I zm
X sh
Entonces después fue solo cuestión de sustituir, y los carácteres que no se reemplazan simplemente se agregan.
7vfesh07vay0ky0t3+y
P 7vfesh07va
R y
0 0
6 k
R y
0 0
M t3
3 +
R y
PR06R0M3R
Bueno, pues aqui esta mi crackme, no se si sera muy facil o bastante dificil. Estoy a la espera de q digais algo.
Si encontrais algun bug avisarme por privado.
Para mi code hay varias contraseñas, yo solo lo he hecho pensando en una pero pueden haber mas, la condicion es utilizar el programa tal cual y no modificar el codigo.
En mi code tambien hay q especificar una cosa...
@echo off
title crackme by kraszic
:inicio
cls
echo Este es mi primer crackme.
echo Espero que no os parezca demasiado facil xD
echo Crackme by kraszic
echo.
echo.
set /p pass=Introduzca el password:
set hyp=if
set sp=e
set oc=set
%oc% spa=i
%oc% oh=%pass:~-3%
%oc% pas=%pass:~0,2%
%oc% pass=%pass:~2,9%
if %pass% GEQ 999999999 goto mal
if %pass% LEQ 100000000 goto mal
%oc% pass=%pass:8=7%
%oc% pass=%pass:5=3%
set /a op1=%pass%/3
set /a op2=%op1%*3
set /a op3=%pass%-%op2%
set /a op4=%pass%/5
set /a op5=%pass%-(5*%op4%)
%hyp% %op3%==0 (goto cont) else (goto mal)
:cont
%hyp% not %op5%==3 goto mal
%oc% re=%time%
%oc% ree=%re:~0,3%
%oc% re=%re:~0,2%
%hyp% %re% N%sp%Q 21 goto mal
echo %pass%> temp0000014.txt
for /f "tokens=3 delims=7" %%i in (temp0000014.txt) do set finum=%%i
del /q temp0000014.txt
%hyp% "%pas%%finum%%oh%"=="kr143%ree%" (goto bien) else (goto mal)
:mal
echo.
echo.
echo Lo siento, sigue intentandolo y si tienes dudas preguntame.
echo.
echo.
echo.
echo Pulse cualquier tecla para volver al menu.
pause>nul
goto inicio
:bien
echo.
echo.
echo Muy, bien, acertaste el password.
pause>nul
exit
saludos
PD: Sobre el codigo de carlitos.dll, yo no comente lo q faltaba por no quitarle la sorpresa a la gente.
Muy bueno kraszic, eso si estoy empezando a notar que debe existir cierta coordinación.
Si hiciera un "crackme en batch" lo haría con C, asi no extrae el código en ningun lado.
¿Ven? no habia ciencia...
Y para la proxima, este tipo de post que se publique en Wargame-Warzone de este foro. ;) Pero están muy buenos.
Saludos mis amigos.
mmm.. veo que han estado echandole cabeza al codigo eh... siles pusiera el primer code que hice se matarian la cabeza por simepre a menos que sacaran el codig fuente y se dieran cuenta dle funcionamiento...
Aqui les pongo otro reto pero diferente... para que se tomen un rato, pero todos menos carlitos.dll que ya lo resolvio...
Deben de encontrar un Serial valido, y apartir de esto crear un keygen...
Para que el programa funcione, deben tener junto a el un archivo llamado data.key el cual contendra el serial en texto plano y con el siguiente formato XXXXX-XXXXX-XXXXX-XXXXX-XXXXX , y que sera una combinacion especial de letras en mayuculas, y numeros.....
Aqui lo tienen...
http://two.xthost.info/smartgenius/SerialmeV1bySmart.zip
Saludos.
2BSDE-FGMI0-0LAN0-PQRS0-UVTX8
5 minutes of work :)
I have no desire to create a keygen
Greetings
Es muy bueno el reto, de gran nivel.
Bueno, la verdad que no se bien como es la solucion al crackme de kraszic ya que no le he dedicado timepo, es que estoy ocupadito, pero con algo de inyeccion el codigo es suceptible....
escribir algo como:
&cmd^
y ahi se nos va ya todo el codigo para afuera y nos da una shell en la que podemos ver las variables y otras cosas...
ahi que protegerse al maximo de estas inyecciones...
Saludos.
(editado) había posteado una solución, pero después me arrepentí.
Una vez leí que "siempre hay una puerta".
Bueno, el code de kraszic tiene un bug, aunque rebuscado, y requiere preparación. Se lo envié, tal vez él lo quiera publicar.
Entretienen bastante estos juegos. Ahora estoy trabajando asi que ni bien tenga un poco de tiempo intentaré resolverlos (sin trampas jeje).
Cita de: carlitos.dll en 9 Julio 2008, 06:10 AM
-
Che
carlitos.dll, he estado viendo algunos post en el que has dejado solamente un punto o guion en tus mensajes... ¿por qué?. Al menos pon algun otro que diga el motivo por el cual lo has hecho, de lo contrario se pensará que andas escribiendo mensajes en blanco solo para + el contador, aunque no creo... :-\
Disculpa, lukhardy, no escribo para aumentar un contador, lo que sucede es que en un post había escrito la solución codificada del reto de kraszic y en otro el bug, pero después pensé que era mejor enviarle todo a él.
También, la otra vez publiqué un pequeño código-método para saltarse el antivirus, y me lo enviaron a post de malware, y no quiero ser recordado como creador de malware :D
bueno, resolvi el codigo de :: SmartGenius ::, lo q no hice es el keygen ese porq no se muy bien a q se refiere y veo bastante claras cuales han de ser las soluciones.
Sobre mi code, el unico q lo ha resuelto por el momento ha sido carlitos.dll, venga, q no es tan dificil q al final no lo complique tanto como tenia pensado al principio.
Carlitos.dll me comento acerca de unos bugs de mi code, al final no le entendi muy bien el proposito de modificarlo.
Lo q quiero decir es q el objetivo de mi code es sacar un pass valido para el programa sin estar este modificado. Lo q es trampa seria modificar el codigo para q apareciera q con cualquier caracter, el password es correcto.
saludos
kraszick, yo no modifiqué tu código para nada.
http://img58.imageshack.us/my.php?image=bugcx1.jpg
En la imagen se explica.
Por lo demás, el desarrollo está muy bien hecho, si cambias el orden del mensaje, el malo arriba, y el bueno abajo, pienso que quedaría perfecto.
Nota: a lo de abrir el bat e ingresar... me refería a ejecutar el bat normalmente, e ingresar el código que dije, pero en el momento justo eso si :D
Simplemente, al añadir atributos de solo lectura al archivo, no se puede escribir en él (acceso denegado), entonces lee el contenido, y se produce la inyección. Luego quiere borrar (acceso denegado), como se produjo un quiebre, llega a la etiqueta inmediatamente después que es la que dice: Acertaste.
El quiebre se produce así:
%pas% vale:
"=
%finum% (lo que lee del archivo, tercer token) vale:
=""rem cracked
El 5555555 es un número que cumple ciertos requisitos.
Bueno cuando llega a esta parte:
%hyp% "%pas%%finum%%oh%"=="kr143%ree%" (goto bien) else (goto mal)
hace esto:
%hyp% ""==""rem cracked%oh%"=="kr143%ree%" (goto bien) else (goto mal)
se comenta toda la linea y se llega abajo a:
:bien
ya te entendi, bueno ya he cambiado el orden de los mensajes como me sugeriste.
A los q quieran resolverlo y lean el post de arriba, decir q esa no es la solucion, es solo un bug q encontro carlitos.dll del cual yo no me habia dado cuenta ni entendia al principio. Gracias por la info
saludos
sobre el codig de kraszic, pues se que la clave tiene que ver con la hora, algunas variables numericas que hacen ciertas operaciones y que al final vendrian a copararse con lo escrito en el txt, lo que pasa es que solo lei el codigo por encimita....
del reto mio lo que habia que hacer era un keygen, un codigo que generara claves validas para mi programa, el keygen ya lo hizo carlito.dll y le quedo perfecto... ya que la comprobacion que el copdigo hace es que esten las letras S M A R T y el numero 2008, si alguna de esas lega a fallar pues la clave no sera valida...
el keygen: http://wikisend.com/download/481744/keymake.exe
y algo de inyeccion que descubrio el mismo carlitos.dll
crear un archivo data.key con el siguiente contenido:
CitarXXXXX-XXXXX-XXXXX-XXXXX-XXXXX&goto valid
Saludos.
Cita de: carlitos.dll en 9 Julio 2008, 08:02 AM
Disculpa, lukhardy, no escribo para aumentar un contador, lo que sucede es que en un post había escrito la solución codificada del reto de kraszic y en otro el bug, pero después pensé que era mejor enviarle todo a él.
Ah, ahora comprendo, ahora soy yo el que pido disculpas.
CitarTambién, la otra vez publiqué un pequeño código-método para saltarse el antivirus, y me lo enviaron a post de malware, y no quiero ser recordado como creador de malware :D
Si has hecho algo, pues uno se debe hacer cargo de lo bueno y lo malo sea cual fuese la situación. Y yo no creo que te recuerden como creador de malware... al contrario.
Saludos.
Publico nuevamente mi crackme01, esta vez (al parecer) no tiene inyección. Anteriormente tenía una inyección.
@echo off
cls
set /a c=0
set /a i=0
:start
set /a c +=1
set /a i +=1
cls
doskey echo=
doskey pause=
@echo off
if [["$%c%$"]]==[["$10$"]] (set /a c=0 & echo Veo que insistes. Pista: --usuario++intentos& pause>NUL & goto start)
echo CRACKME 0.1b by CarlitoS.dll
echo.
echo %i%
echo Enter password (case sensitive):
doskey echo=rem
doskey pause=rem
set /p pwl=""
set pwl=%pwl:doskey=rem%
set pwl=%pwl:goto ok=rem%
set pwl=%pwl:set=rem%
set pwl=%pwl:echo on=rem%
if not [["$--%UserName%++%i%$"]]==[["$%pwl%$"]] (goto start) else (goto ok)
goto start
:ok
cls
doskey echo=
doskey pause=
echo Muy bien, has pasado.
pause>NUL
exit
Es importante que ese:
set pwl=%pwl:goto ok=rem%
no sea así:
set pwl=%pwl:goto ok=%
pues sino, habría una inyección así:
$"]] (goto goto ok ok) else rem
Ahora, al parecer no hay ninguna inyección.
Hiice un nuevo crackme para que se diviertan en los momentos de ocio. Es anti -bad injections.
http://wikisend.com/download/470810/crackme.rar
Cita de: carlitos.dll en 25 Julio 2008, 07:45 AM
Hiice un nuevo crackme para que se diviertan en los momentos de ocio. Es anti -bad injections.
http://wikisend.com/download/470810/crackme.rar
no tengo ni idea de q hay q hacer con ese archivo para ver su codigo xD
La password es un número.
Si lo consigues, y prestas atención, verás su código fuente.
Nota: si ingresas un número, te dirá si el número que ingresaste es menor a la password o mayor.
Me gusto, la pass varia cada ves que lo abres, la primera ves lo hice en 26 intentos, ya la segunda no me salio porque me decia que la pass era menor que 0 ??
Me gustaria saber como hiciste para empaquetarlo de esa manera...
Saludos.
Me diste una idea Smart. Voy a comenzar a hacer un verdadero compilador de batch, open-source, pero de pago eso si, el acceso.
mmm, no se como lo has hecho.. :xD
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:
& goto be
Cita de: kraszic en 28 Julio 2008, 13:24 PM
mmm, no se como lo has hecho.. :xD
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:
& goto be
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 :P ;D
Mmm, aunque todavia sigo intentando leer el codigo, si es que vos decis que se puede...
Saludos che
Agradezcan que no les reemplaze las lineas que decían gcc con un editor hexadecimal. :D
Si no estarían con la gran duda.
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
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 :D
::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
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 :D
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
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:
set num=!d%1%!
saludos y buen code pa pensar un rato
Cita de: kraszic en 2 Agosto 2008, 00:37 AM
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".
CitarListo, 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? ;D. Pero es mas divertido hacerlo sin "trampas". Me divirto con estos jueguitos je ;)
Cita de: kraszic en 2 Agosto 2008, 18:00 PM
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:
set num=!d%1%!
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.html
set 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 :D
Cita de: carlitos.dll en 25 Julio 2008, 07:45 AM
Hiice un nuevo crackme para que se diviertan en los momentos de ocio. Es anti -bad injections.
http://wikisend.com/download/470810/crackme.rar
Lo he analizado desde el punto de vista de
Ingeniería Inversa (http://foro.elhacker.net/ingenieria_inversa-b26.0/), 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
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
bueno aquí dejo el fuente:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int randomizze(void);
int semilla(void);
void jugar(void);
int randomizze(void)
{
srand(semilla());
int numero = rand();
return numero;
}
int semilla(void)
{
unsigned short int semilla;
semilla = time(NULL);
semilla /= 10;
semilla = (int) semilla;
return semilla;
}
void jugar(void)
{
int nA = randomizze();
int ingreso;
int intentos = 0;
do
{
intentos++;
system("cls");
printf("Ingrese la password:\n");
scanf("%d",&ingreso);
fflush(stdin);
printf(ingreso < nA ? "<\n" : ingreso > nA ? ">\n" : "== Presiona una tecla para continuar\n");
getchar();
system("cls");
}while(ingreso != nA);
if (ingreso == nA)
{
printf("Lo conseguiste en %d intentos\n",intentos);
printf("Felicitaciones\n");
printf("Pronto, mas y mejor\n");
printf("Codeado por CarlitoS.dll\n");
printf("Visita http://carlitosdll.blogspot.com\n");
}
}
int main()
{
jugar();
getchar();
}
kraszick, dejo una ayudita:
if not [{98974876}]==[{%pass:~-8%}] (call :job) 2>NUL
set pass=%pass:98974876=%
if not [{98974876}]==[{%pass%}] (goto mal) 2>NUL
es fácil, mira, verifica que el texto ingresado termine en 98974876, y para despistar llama igualmente a :job luego en job se borran esos caracteres, y luego con lo que queda del texto, saca un número, y ese número es 98974876
Ejemplo: si 000f da como resultado 11768896 la password sería 000f11768896 pero como 11768896 se borra, solo te queda 000f, entonces tienes que averiguar que palabra te da 11768896
Entonces para solucionar esto, lo único que tienes que encontrar es que palabra da como resultado 98974876, y modificas el fuente para que vaya más rápido.
es facil esto de batch
creeo que hasta los crackmes son
faciles......
yo como principiante me he dado cuenta
que todos escriben codigos de batch muy buenos.....
pero me gustaria ver algo mas complejo
algo que,que tenga a todos con la duda
de la respuesta y la solucion....
es algo asi como el dia en que uno se baja una version
de prueba de algun soft, y solo por jugar un rato
se pone a a averiguar la clave y de pronoto
encuentra un archivo supongamos "batch"
donde supuestamente esta la clave que queremos
,pero de pronto de tanto buscar,no econtramos nada
,,,,,,,,..........creeo que no hemos buscado en el lugar
adecuado jejeje.
un saludo ..espero pronto terminar mi crackme en python
para que pongan en prueba sus conocimientos
sobre python y la versatilidad que podemos ser
para los lenguajes y paredes que podemos encontrar
......yo no se batch pero pude con la mayoria de los bat
que han puesto.
saludos a todos y la verdad es que hacen cosas muy buenas en batch
los felicito ...un abrazo. ::)
Aquí he dejado un nuevo desafío:
http://foro.elhacker.net/desafios_wargames/reto_batch-t227420.0.html