BlackB
February 8th, 2001, 13:30
Hi all ;-)
Few days ago I've downloaded a cool program: AdSubtract Pro. It filters ads and popups while browsing the web.
More particular, it's interesting from reversing perspective, because it uses java to calculate a valid regcode, to display the "wrong regcode" message, etc ... .
The program itself is written in VC++. The .class java files are in a file called classes.zip. These get unzipped when you run the program and used when necessary. When disassembling the .class files (there are a lot of them) in IDA, you can see the "wrong regcode" messages.
When entering your name and regcode, they get stored in the registery, after that they're queried and get processed by the java .class files.
When your regcode is valid, a file "license." gets updated. This is also done by a .class file.
This license file gets validated with some method called MD5 (unknown to me), so it's very hard (maybe impossible?) to create one yourself.
Anyway.....the problem I have is that I haven't got the slightest clue on how to reverse this regcode generation routine. You know.....I tried it the old getwindowtexta (and all those other well-known api's), but when the javacode gets compiled (yea, don't forget, those .class files get compiled at runtime) and the javacode starts executing....you're totally lost.
BPR -ing on your username/regcode is no use.
So, if anyone 's up to a challenge (and thus can help me, give me hints/tips) :
http://www.adsubtract.com/bin/20082404/ad-pro.exe
see what you guys do with this
I provided you some basic info so you don't have to worry about that anymore 
greets
The Blackbird aka BlackB
Few days ago I've downloaded a cool program: AdSubtract Pro. It filters ads and popups while browsing the web.
More particular, it's interesting from reversing perspective, because it uses java to calculate a valid regcode, to display the "wrong regcode" message, etc ... .
The program itself is written in VC++. The .class java files are in a file called classes.zip. These get unzipped when you run the program and used when necessary. When disassembling the .class files (there are a lot of them) in IDA, you can see the "wrong regcode" messages.
When entering your name and regcode, they get stored in the registery, after that they're queried and get processed by the java .class files.
When your regcode is valid, a file "license." gets updated. This is also done by a .class file.
This license file gets validated with some method called MD5 (unknown to me), so it's very hard (maybe impossible?) to create one yourself.
Anyway.....the problem I have is that I haven't got the slightest clue on how to reverse this regcode generation routine. You know.....I tried it the old getwindowtexta (and all those other well-known api's), but when the javacode gets compiled (yea, don't forget, those .class files get compiled at runtime) and the javacode starts executing....you're totally lost.
BPR -ing on your username/regcode is no use.
So, if anyone 's up to a challenge (and thus can help me, give me hints/tips) :
http://www.adsubtract.com/bin/20082404/ad-pro.exe
see what you guys do with this


greets
The Blackbird aka BlackB