if (form.textbox1.value == "") // if condition no name alert("Please enter your Name!") // true try again else {2. Take a good long hard look at those for loops and the incrementing. It's just like C.
for (offset = 0; offset != namelength; offset ++) { hexnametotal = (0x26+yourName.charCodeAt(offset)) + hexnametotal }3. Good old charCodeAt() which is the hex value of the character.
Target : - Scribe 95 v2.65 - (900k).
Scribe 95 is a 32-bit application designed for use by small clubs and organisations to keep track of membership dues. My evaluation started as per usual with bpx hmemcpy. F5,F5,F5,F12,F12,F12 you know the drill...(if not then get and read more tutorials). It takes about a minute to find several locations for a patch and my valid serial number. Here I present the heart of the protection :-
:0047AD6E MOV EAX, DWORD PTR [EBP+0C] // Move hex value
of serial entered into EAX.
:0047AD72 IDIV [EBP+08] // EAX / (length of name + length of branch).
:0047AD75 IMUL EBX, ECX // (length of name * length of branch).
:0047AD7F ADD EAX, EBX // EAX + (length of name * length of branch).
:0047AD88 CMP EAX, 0006D8FB // EAX = 6D8FBh.
:0047AD8D SETE AL // If not = unregistered.
This is of course a very simple routine :-
6D8FB - (length of name * length of branch) * (length of name + length of branch) = valid serial number.
Now that we understand how, its time to write a key generator, lets use JavaScript. I've got my used copy of the JavaScript Handbook, now we can call the script from within the HTML with a form and were done! no compiler, no linking. Just NotePad and a browser (you should view the source code).
After putting this together I have a new found respect for JavaScript as it has a great deal to offer. In this case we used the string.length property, addition and multiplication, but there is a full range of operators available e.g. :-
Maths Operators :- +, -, *, /, ++, --.
Comparison Operators :- >= greater or equal, == equal, != not
equal.
Bitwise Operators :- & AND, | OR, ^ XOR, << left shift,
>> right shift.
String Handling Properties: string.length, string.toLowerCase(),
string.toUpperCase(), string.charAt().
You can see where many of these could be useful in reversing a target.
My greetings and thanks to eDwarD aLLeN, #crack4newbies, CrackZ's Pages, The Sandman's Tuts, Fravia's pages, and Cruehead CrackMe's.
Ob duh!, I almost forgot, if you want to contact tYruS, his e-mail address is: