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
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
Código (vb) [Seleccionar]
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