Título: Un Simple Crackme En VBScript
Publicado por: Flamer en 22 Mayo 2016, 20:45 pm
hola amigos aquí les traigo un crackme hecho en vbscript ya que muchos usuarios no saben usar el ollydbg pues se me ocurrió hacerlo en vbscript aqui el codigo option explicit Randomize dim shell,pin,cn,un,x,z,a,b,c,pass,y,r,contra Set shell=createobject("wscript.shell") pin = cstr(cint((9999-1000+1)*rnd+1000)) msgbox "Su Numero PIN Es: " & pin,,"PIN" cn = Shell.ExpandEnvironmentStrings("%ComputerName%") un = Shell.ExpandEnvironmentStrings("%UserName%") if len(cn)>len(un) then z=len(cn) for x=z to len(un) un=un & chr(x) next end if if len(cn)<len(un) then z=len(un) for x=z to len(cn) cn=cn & chr(x) next else z=len(un) end if for x=1 to z a = asc(mid(cn,x,1)) b = asc(mid(un,x,1)) c = c & "-" & (a xor b) next contra=inputbox("Ingresa La Contraseña","Password") y=1 pass=split(contra,"-") for x=0 to ubound(pass) a = pass(x) b = asc(mid(pin,y,1)) if y=len(pin) then y=1 else y=y+1 end if r = r & "-" & (a xor b) next if r=c then msgbox ":::EN HORA BUENA::: Felisidades Contraseña Correcta, Espero Que Te haya Gustado El Reto...",,"Reto Superado Saludos Flamer" else msgbox "Si no sabes crackear esta porqueria de crackme, no presumas que eres un hacker mas bien eres un lamberucho...esto es para hackers principiantes QUE QUIEREN APRENDER",,"Medas lastima :(" end if
Reglas 1- Solo para novatos ya que es muy simple 2- Solo vale el keygen ya que no esta en un lenguaje compilado 3-No vale parchar modificando un if 4-Solo keygen por privado para que el reto dure y pondre lista::::::LISTA DE GANADORES::::::::: 1-******** 2-******** 3-******** Saludos Flamer y codigo modificado ahora si llase puede crackear
Título: Re: Un Simple Crackme En VBScript
Publicado por: tincopasan en 5 Julio 2016, 04:43 am
bueno, ha pasado mucho tiempo y no han posteado dudas o soluciones, y aunque puedo considerarme un novato (siempre aprendiendo) no voy a dar pistas de solución, pero te diré Flamer que has abusado de xor, lo cual lleva a que aveces no tenga solución real, ya que no hay forma de hacer valores no imprimibles y hasta nulos.Por ejemplo dos caracteres con valores 58 y 57 hasta dos con valores 56. Está bien para ver vbs y como reversear xor, pero... no es la mejor forma de realizarlo. Saludos.
Título: Re: Un Simple Crackme En VBScript
Publicado por: Flamer en 14 Agosto 2016, 23:38 pm
bueno, ha pasado mucho tiempo y no han posteado dudas o soluciones, y aunque puedo considerarme un novato (siempre aprendiendo) no voy a dar pistas de solución, pero te diré Flamer que has abusado de xor, lo cual lleva a que aveces no tenga solución real, ya que no hay forma de hacer valores no imprimibles y hasta nulos.Por ejemplo dos caracteres con valores 58 y 57 hasta dos con valores 56. Está bien para ver vbs y como reversear xor, pero... no es la mejor forma de realizarlo. Saludos.
Hola tinco modificado el código ahora si ya se puede crackear saludos Flamer y gracias por tu interés, ahora si lo puedes intentar
Título: Re: Un Simple Crackme En VBScript
Publicado por: sadfud en 15 Agosto 2016, 02:56 am
Buenas lo primero gracias por el reto llevo dando vueltas a este crackme ya bastante tiempo, mas de un mes, ahora que lo has modificado me animo a comentarte una cosa. se que debo estar cerca de resolverlo, pero a la conclusion que he llegado es que no es posible crear un keygen, dejo un codigo modificado y comentado a ver si me estoy equivocando al interpretar alguna instruccion option explicit Randomize dim shell,pin,cn,un,x,z,a,b,c,pass,y,r,contra Set shell=createobject("wscript.shell") pin = 9999 ' pin = cstr(cint((9999-1000+1)*rnd+1000)) msgbox "Su Numero PIN Es: " & pin,,"PIN" cn = "w" un = "t" 'cn = Shell.ExpandEnvironmentStrings("%ComputerName%") 'un = Shell.ExpandEnvironmentStrings("%UserName%") if len(cn)>len(un) then ' si el nombre del pc es mas largo que el del usuario z=len(cn) ' la z seria igual a la longitud del nombre del pc for x=z to len(un) ' para x = z hasta la longitud del nombre de usuario en mi caso 5 (david) un=un & chr(x) ' username = username concatenado a next msgbox(z) end if if len(cn)<len(un) then z=len(un) for x=z to len(cn) cn=cn & chr(x) next else z=len(un) end if for x=1 to z a = asc(mid(cn,x,1)) 'a es 116 b = asc(mid(un,x,1)) 'b es 119 c = c & "-" & (a xor b) 'a xor b es 3 luego C = -3 msgbox(a) msgbox(b) msgbox((a xor b)) msgbox(c) next contra=inputbox("Ingresa La Contraseña","Password") 'suponiendo una pass: 1234 y=1 pass=split(contra,"-") ' para que se culpa que r = c los nuevos a y b deberan ser iguales a los anteriores, asi que la contraseña deberia ser wt, pero si es wt da error, solo acepta numeros for x=0 to ubound(pass) a = pass(x) 'le asigna a la a el valor de la contraseña que metas. ej 1234 b = asc(mid(pin,y,1)) ' devuelve el codigo ansi del primer caracter Y = 1 de la cadena pin 4444. ej 57 msgbox(a) msgbox(b) if y=len(pin) then ' basura? para ser util deberia ir antes del for y=1 'basura? else ' basura? y=y+1 'basura? end if ' basura? r = r & "-" & (a xor b) ' r es igual a r menos a xor b, a xor b es 1234 xor 57 = 1259 luego r es -1259. ' aqui esta el problema si r es -1259 osea, el opuesto de a xor b, como es posible que en algun caso r sea igual a c? si c depende de un numero random. 'como c cambia en ccada equipo, como haces posible que R=C y mas cuando B (linea 49) que participa en el proceso depende de un pin aleatorio. no veo la forma de hacer R=C msgbox((a xor b)) msgbox(r) next if r=c then msgbox ":::EN HORA BUENA::: Felisidades Contraseña Correcta, Espero Que Te haya Gustado El Reto...",,"Reto Superado Saludos Flamer" else msgbox "Si no sabes crackear esta porqueria de crackme, no presumas que eres un hacker mas bien eres un lamberucho...esto es para hackers principiantes QUE QUIEREN APRENDER",,"Medas lastima :(" end if
Título: Re: Un Simple Crackme En VBScript
Publicado por: tincopasan en 15 Agosto 2016, 03:33 am
@ sadfud estás cometiendo un error inmenso! r = r & "-" & (a xor b) ' r es igual a r menos a xor b, a xor b es 1234 xor 57 = 1259 luego r es -1259. ' aqui esta el problema si r es -1259 osea, el opuesto de a xor b, como es posible que en algun caso r sea igual a c? si c depende de un numero random. 'como c cambia en ccada equipo, como haces posible que R=C y mas cuando B (linea 49) que participa en el proceso depende de un pin aleatorio. no veo la forma de hacer R=C r & "-" & (a xor b)
no es una operación de resta! lo que hace es concatenar el caracter - o sea: -23 -16 -etc. igual el código tiene errores para mi gusto. pero es fácil obtener el serial
Título: Re: Un Simple Crackme En VBScript
Publicado por: Flamer en 15 Agosto 2016, 05:49 am
Buenas lo primero gracias por el reto llevo dando vueltas a este crackme ya bastante tiempo, mas de un mes, ahora que lo has modificado me animo a comentarte una cosa. se que debo estar cerca de resolverlo, pero a la conclusion que he llegado es que no es posible crear un keygen, dejo un codigo modificado y comentado a ver si me estoy equivocando al interpretar alguna instruccion option explicit Randomize dim shell,pin,cn,un,x,z,a,b,c,pass,y,r,contra Set shell=createobject("wscript.shell") pin = 9999 ' pin = cstr(cint((9999-1000+1)*rnd+1000)) msgbox "Su Numero PIN Es: " & pin,,"PIN" cn = "w" un = "t" 'cn = Shell.ExpandEnvironmentStrings("%ComputerName%") 'un = Shell.ExpandEnvironmentStrings("%UserName%") if len(cn)>len(un) then ' si el nombre del pc es mas largo que el del usuario z=len(cn) ' la z seria igual a la longitud del nombre del pc for x=z to len(un) ' para x = z hasta la longitud del nombre de usuario en mi caso 5 (david) un=un & chr(x) ' username = username concatenado a next msgbox(z) end if if len(cn)<len(un) then z=len(un) for x=z to len(cn) cn=cn & chr(x) next else z=len(un) end if for x=1 to z a = asc(mid(cn,x,1)) 'a es 116 b = asc(mid(un,x,1)) 'b es 119 c = c & "-" & (a xor b) 'a xor b es 3 luego C = -3 msgbox(a) msgbox(b) msgbox((a xor b)) msgbox(c) next contra=inputbox("Ingresa La Contraseña","Password") 'suponiendo una pass: 1234 y=1 pass=split(contra,"-") ' para que se culpa que r = c los nuevos a y b deberan ser iguales a los anteriores, asi que la contraseña deberia ser wt, pero si es wt da error, solo acepta numeros for x=0 to ubound(pass) a = pass(x) 'le asigna a la a el valor de la contraseña que metas. ej 1234 b = asc(mid(pin,y,1)) ' devuelve el codigo ansi del primer caracter Y = 1 de la cadena pin 4444. ej 57 msgbox(a) msgbox(b) if y=len(pin) then ' basura? para ser util deberia ir antes del for y=1 'basura? else ' basura? y=y+1 'basura? end if ' basura? r = r & "-" & (a xor b) ' r es igual a r menos a xor b, a xor b es 1234 xor 57 = 1259 luego r es -1259. ' aqui esta el problema si r es -1259 osea, el opuesto de a xor b, como es posible que en algun caso r sea igual a c? si c depende de un numero random. 'como c cambia en ccada equipo, como haces posible que R=C y mas cuando B (linea 49) que participa en el proceso depende de un pin aleatorio. no veo la forma de hacer R=C msgbox((a xor b)) msgbox(r) next if r=c then msgbox ":::EN HORA BUENA::: Felisidades Contraseña Correcta, Espero Que Te haya Gustado El Reto...",,"Reto Superado Saludos Flamer" else msgbox "Si no sabes crackear esta porqueria de crackme, no presumas que eres un hacker mas bien eres un lamberucho...esto es para hackers principiantes QUE QUIEREN APRENDER",,"Medas lastima :(" end if
hola sadfud gracias por el interés, el anterior no se podía por que había unos conflictos al intentar convertir los caracteres con el comando CHR de vbs y no daban los valores que deberian de aver dado así que ahora lo modifico y la clave correcta lleva este formato xx-xx-xx-xx-xx-xx las xx representan dígitos numéricos concatenados
|