foxthree
March 6th, 2002, 19:52
Hi Folks:
I'm literally at my wits end with Reg. Organizer. It all started with me reading +spl/\j guru's post of ASProtect 1.4!!! ;-). I wanted to try out Reg. Organizer which has two weirdo Asprotect functionality.
(1) As +spl/\j mentions, we no longer have our GetWhatWeWantAPIs in one convenient place. The IAT is full of holes (Thanks to sv and +spl/\j for an earlier post for clearing my doubts about this)
(2) Asprotect does double dipping! (Still not clear about this one)
See I've managed to work out part 1 perfectly. But whenever I attempt to understand Part 2 of the trick, I hit a empty wall.
Moreover the problem is compounded by the fact that this particular target is updated weekly (the week before last was Beta 2, last week Beta 3 and now Beta 4) hence I'm unable to get reference values for understanding Part 2.
So, with all my frustration growing inside me, I finally dled 1.3 B4.
I've managed to find the following:
1. ASPR dips into code at 00412A7C
2. Back to OEiP at 00401000
Now the problem I'm having is: Where to dump? Should I do it at 00412A7C or at OEiP (like we do always). +spl/\j mentions to dump earlier and patch the jmp 00401000. But my question is How this is done? In my disassembly (after dumping at 00412A7C) such an instruction is not present.
SV mentions the same thing about RegOrg 1.2Beta 3 ("There is a call (412d34) to do before OEP (401000). "
. I also have a similar situation (412A7C before 00401000).
Again, how is this done? Should I dump it at 412A7C? After that what, because again after doing some init at 412A7C, we go back to aspr. So if we dump here, we still have some unpacked code, right?
To add to all this, there is a good tut by nchantA where in he explains how to unpack EBook Processor 2.2. I'm having the exactly similar code layout when I break at 00401000: I have a jmp 00401012. Now in this tut, he says that to look down until the first jmp occurs. In our case it occurs at 00526C88. So according to his tut, OEiP RVA = 126C88 and he does a /pedump in icedump.
I did the exact same thing but when I run my rebuilded app, it crashes at 00526C94 (Invalid Page Fault :-<
What am I doing? Please please please clear my doubt. I'm going crazy with this!
Signed,
-- FoxThree
PS: Sorry for this lengthy post but I needed to get this one off my chest ;-). Thanks once again to sv and +spl/\j for helping me out with the earlier "IAT hole theory"
I'm literally at my wits end with Reg. Organizer. It all started with me reading +spl/\j guru's post of ASProtect 1.4!!! ;-). I wanted to try out Reg. Organizer which has two weirdo Asprotect functionality.
(1) As +spl/\j mentions, we no longer have our GetWhatWeWantAPIs in one convenient place. The IAT is full of holes (Thanks to sv and +spl/\j for an earlier post for clearing my doubts about this)
(2) Asprotect does double dipping! (Still not clear about this one)
See I've managed to work out part 1 perfectly. But whenever I attempt to understand Part 2 of the trick, I hit a empty wall.
Moreover the problem is compounded by the fact that this particular target is updated weekly (the week before last was Beta 2, last week Beta 3 and now Beta 4) hence I'm unable to get reference values for understanding Part 2.
So, with all my frustration growing inside me, I finally dled 1.3 B4.
I've managed to find the following:
1. ASPR dips into code at 00412A7C
2. Back to OEiP at 00401000
Now the problem I'm having is: Where to dump? Should I do it at 00412A7C or at OEiP (like we do always). +spl/\j mentions to dump earlier and patch the jmp 00401000. But my question is How this is done? In my disassembly (after dumping at 00412A7C) such an instruction is not present.
SV mentions the same thing about RegOrg 1.2Beta 3 ("There is a call (412d34) to do before OEP (401000). "

Again, how is this done? Should I dump it at 412A7C? After that what, because again after doing some init at 412A7C, we go back to aspr. So if we dump here, we still have some unpacked code, right?
To add to all this, there is a good tut by nchantA where in he explains how to unpack EBook Processor 2.2. I'm having the exactly similar code layout when I break at 00401000: I have a jmp 00401012. Now in this tut, he says that to look down until the first jmp occurs. In our case it occurs at 00526C88. So according to his tut, OEiP RVA = 126C88 and he does a /pedump in icedump.
I did the exact same thing but when I run my rebuilded app, it crashes at 00526C94 (Invalid Page Fault :-<

What am I doing? Please please please clear my doubt. I'm going crazy with this!
Signed,
-- FoxThree
PS: Sorry for this lengthy post but I needed to get this one off my chest ;-). Thanks once again to sv and +spl/\j for helping me out with the earlier "IAT hole theory"