http://www.jlc-software.com/unsorted/crackme.exe
Crack me!
- Joakim Christiansen
- Addict

- Posts: 2452
- Joined: Wed Dec 22, 2004 4:12 pm
- Location: Norway
- Contact:
Crack me!
This should be rather easy since this is my first try at making something which is "hard" to crack. It's compiled with PureBasic and I have done nothing more with the exe! The goal is to get the "you entered the right serial message"!
http://www.jlc-software.com/unsorted/crackme.exe

http://www.jlc-software.com/unsorted/crackme.exe
I like logic, hence I dislike humans but love computers.
- Joakim Christiansen
- Addict

- Posts: 2452
- Joined: Wed Dec 22, 2004 4:12 pm
- Location: Norway
- Contact:
- Joakim Christiansen
- Addict

- Posts: 2452
- Joined: Wed Dec 22, 2004 4:12 pm
- Location: Norway
- Contact:
- Joakim Christiansen
- Addict

- Posts: 2452
- Joined: Wed Dec 22, 2004 4:12 pm
- Location: Norway
- Contact:
- Joakim Christiansen
- Addict

- Posts: 2452
- Joined: Wed Dec 22, 2004 4:12 pm
- Location: Norway
- Contact:
I haven't checked this thoroughly but it seems ok to generate the serial for any username:Joakim Christiansen wrote:One more challenge is to try to make it accept any key.
Code: Select all
username.s = InputRequester("Serial generator", "Enter username", "Name")
var.s = ""
For loopy = 1 To Len(username)
var + Str(Asc(Mid(username, loopy, 1)) / 3)
Next
serial.s = MD5Fingerprint(@var, Len(var))
SetClipboardText(serial)
MessageRequester("Serial copied to clipboard", serial)Mat
- Joakim Christiansen
- Addict

- Posts: 2452
- Joined: Wed Dec 22, 2004 4:12 pm
- Location: Norway
- Contact:
That's exactly my code!
But I know /3 was a bad idea, should make it better.
Code: Select all
String$ = "1"
For i=1 To Len(String$)
Result$ + Str(Asc(Mid(String$,i,1))/3)
Next
Debug String$
Debug MD5Fingerprint(@Result$,Len(Result$))I like logic, hence I dislike humans but love computers.
- Joakim Christiansen
- Addict

- Posts: 2452
- Joined: Wed Dec 22, 2004 4:12 pm
- Location: Norway
- Contact:
> Maybe, but you can't find it's string anyway 
That's open to debate.
But you're missing the point: if you didn't tell us the message, and someone
cracked it and told you the message, then you'd know they were right.
That's open to debate.
But you're missing the point: if you didn't tell us the message, and someone
cracked it and told you the message, then you'd know they were right.
I compile using 5.31 (x86) on Win 7 Ultimate (64-bit).
"PureBasic won't be object oriented, period" - Fred.
"PureBasic won't be object oriented, period" - Fred.
Personally i don't like "please restart the program" and then after that either run registered or notPB wrote:> Maybe, but you can't find it's string anyway
That's open to debate.
But you're missing the point: if you didn't tell us the message, and someone
cracked it and told you the message, then you'd know they were right.
But i just got a cruel idea for a crackme:
I protect the procedure that runs yes or no with a key. Self modifying. But if you enter the wrong key, calling the proc will do a huge mess and i will put an exception catcher wich then says "wrong password!". In this case, you wouldn't be able to read the password from the exe as it isnt in. Problem is that it is hard to do with a keygen, but possible. I've made procedures to generate different key's from different names which all end up in the same thing. Problem: you can read how it makes the final string.
Oh well, i'll do the crackme today or this weekend
> Personally i don't like "please restart the program" and then after that
> either run registered or not
That's not what I meant, but doing that is the best method of registering
because it makes the app that little bit harder for the cracker to succeed.
> either run registered or not
That's not what I meant, but doing that is the best method of registering
because it makes the app that little bit harder for the cracker to succeed.
I compile using 5.31 (x86) on Win 7 Ultimate (64-bit).
"PureBasic won't be object oriented, period" - Fred.
"PureBasic won't be object oriented, period" - Fred.


