zitterbe
July 24th, 2001, 17:32
If anyone's got some time I need some help with this program.
Program - A-book v.2.2.1
Company - Duality Software
Download site - h*tp://www.dualitysoft.com/abook/index.html
Install File - abk221.exe
Size - 1.1 Mb
It's pretty basic cracking but I need somebody else to help get me out of my mental block. The program takes a Name and Reg Code. It also requires a key file called abook.key which they send along with a valid Reg Code. It places the Name and RegCode in the registry at:
HKEY_USERS\.Default\Software\PIM+\A-book\Settings\UserName
HKEY_USERS\.Default\Software\PIM+\A-book\Settings\RegCode
Quiller said "The RegCode appears to be in the format:
WIN-xxxxxxxxxx-xxxxxxxxxxxxxxx with x's being letters (small and capital) and numbers."
I believe this is true. In fact for some strange reason there are 7 UserNames and RegCodes in the exe - see CS:0046A1F8. Don't know what that's all about but I used one of them.
Quiller went on to say "It can be patched in one location by moving a 1 into the memory flag that is used. In that case, the proggie is registered and it does not even look at the file abook.key..."
I just can't find any way that this is so. I can't find any flag test that bypasses checking the key file - especially when you first start the program.
Here's what I did:
[#1]I made a bogus abook.key with the numbers 6666111155552222 and saved it to the same folder as abook.exe.
[#2]I ran the proggie and chose to register it.
[#3]I used a Name and RegCode from the disassembly:
Name: Mark Riddle
RegCode: WIN-e805dR7dhA-t7jFfydjf5j3guS
That got me past the "incorrect user name" and "incorrect code" message boxes. Then I started tracing by loading it with symbol loader and trapping the registry queries. To make a long story short, the code starting at 401355 thru 40143B gets the UserName and RegCode registry info when first starting the program. That gets passed into a call at 40143D (Call 401CC0). The first Call in that function (Call 469DCO) reads abook.key into memory. If there was any error in reading the file or the UserName and RegCode were wrong it returns an error code and the calling function posts the particular message in a message box. Otherwise it gets to 469F05 which calls 4AE8A0. This is the function that tests the key file data that was previously read into memory. The actual algorithm is the code between 4AE8AE and 4AE910. I started to reverse this but I keep thinking about what Quiller said about there being a memory flag check that could bypass all this. Anyway, it appears that this Test Key function should return a valid address - maybe the memory location of the key. It definitely should NOT return 0.
Well - that's as far as I got. If anyone could give me some insights on this I'd appreciate it. I'm probably making an easy crack into a nightmare :-)
zitterb
Program - A-book v.2.2.1
Company - Duality Software
Download site - h*tp://www.dualitysoft.com/abook/index.html
Install File - abk221.exe
Size - 1.1 Mb
It's pretty basic cracking but I need somebody else to help get me out of my mental block. The program takes a Name and Reg Code. It also requires a key file called abook.key which they send along with a valid Reg Code. It places the Name and RegCode in the registry at:
HKEY_USERS\.Default\Software\PIM+\A-book\Settings\UserName
HKEY_USERS\.Default\Software\PIM+\A-book\Settings\RegCode
Quiller said "The RegCode appears to be in the format:
WIN-xxxxxxxxxx-xxxxxxxxxxxxxxx with x's being letters (small and capital) and numbers."
I believe this is true. In fact for some strange reason there are 7 UserNames and RegCodes in the exe - see CS:0046A1F8. Don't know what that's all about but I used one of them.
Quiller went on to say "It can be patched in one location by moving a 1 into the memory flag that is used. In that case, the proggie is registered and it does not even look at the file abook.key..."
I just can't find any way that this is so. I can't find any flag test that bypasses checking the key file - especially when you first start the program.
Here's what I did:
[#1]I made a bogus abook.key with the numbers 6666111155552222 and saved it to the same folder as abook.exe.
[#2]I ran the proggie and chose to register it.
[#3]I used a Name and RegCode from the disassembly:
Name: Mark Riddle
RegCode: WIN-e805dR7dhA-t7jFfydjf5j3guS
That got me past the "incorrect user name" and "incorrect code" message boxes. Then I started tracing by loading it with symbol loader and trapping the registry queries. To make a long story short, the code starting at 401355 thru 40143B gets the UserName and RegCode registry info when first starting the program. That gets passed into a call at 40143D (Call 401CC0). The first Call in that function (Call 469DCO) reads abook.key into memory. If there was any error in reading the file or the UserName and RegCode were wrong it returns an error code and the calling function posts the particular message in a message box. Otherwise it gets to 469F05 which calls 4AE8A0. This is the function that tests the key file data that was previously read into memory. The actual algorithm is the code between 4AE8AE and 4AE910. I started to reverse this but I keep thinking about what Quiller said about there being a memory flag check that could bypass all this. Anyway, it appears that this Test Key function should return a valid address - maybe the memory location of the key. It definitely should NOT return 0.
Well - that's as far as I got. If anyone could give me some insights on this I'd appreciate it. I'm probably making an easy crack into a nightmare :-)
zitterb