View Single Post
  #40  
Old 07-07-2004, 05:53
mtw mtw is offline
Friend
 
Join Date: Feb 2003
Posts: 73
Rept. Given: 0
Rept. Rcvd 2 Times in 1 Post
Thanks Given: 0
Thanks Rcvd at 0 Times in 0 Posts
mtw Reputation: 2
@Crk: LOL. I am relaxed all the time, if you get frustrated just by a thread, then there is no point in going through miles of code in a debugger, as this is more frustrating.

@BetaMaster: No I dont have feelings to get hurt, and no Im not hiding anything, I just told you how to get past the protection check.

Now for dumping the Demo version:
Get rid of S-ice and fire up olly.
You know the drill, hide the debugger, and at all times dont use F9 use Shift+F9 to run the app.

Now when its loaded goto MemoryMap and Press F2 on the Resources section and Press "Shift+F9"
When it breaks set goto options a set Break On new DLL load. Press Shift+F9 and watch the DLL's second Shift+F9 you will see it loads the VB runtime DLL.
Now select the runtime DLL and select "View Names". Find the ThunRTMain, and double click it, you will be back in the CPU window. Select the PUSH EBP and press F2. Remove the "Break on new DLL load". Then Shift+F9.

When you break your in the veryfirst call from this app, the initialization of the VB "Native Code" app, which is the ThunRTMain.

Before you go on look at the second line in your stack window. "Picture include so you know what Im talking about".You'll see a line like this
0012FFC0 00401A68 ASCII "VB5!6&*"
that 401A68 (or whatever yours is) is the push 00401A68 before the call to ThunRTMain. This is the first line from the stolen bytes (all those NOPS "90h" at the OEP. The second line (of the NOPS) is the call to ThunRTMain (second line of stolen bytes). Now in the CPU window Press CTRL-G and put in 401364 for the address to jmp to. you'll be looking at an NOP. Press Ctrl+A.

Now you will see all the MSVBVM60 calls, where that first 90 is, is your OEP, now that address I said to look at in the stack window (mine 00401A68) starts here so highlight that first 90h and press space bar enter

Push (your address) (like I said mine was 00401A68), and then
Call (the address for the first JMP before the NOP's) (mine is 40135E)
That is the call to ThunRTMain.
Now you can fire up LordPE, CorrectImageSize and dump it.
Fire up ImpRec and put your OEP here (mine is 00001364),
select IAT AutoSearch then GetImports.

You will notice it gets them all except for 1 which is DLLFunctionCall.
Make this one DLLFunctionCall then fix your dump.

Now you can do traces etc with that dll, now memory might change from machine to machine, like all apps do. I run XP SP1 so you know.

Now load the dumped.exe into olly and set a bp on the DLLFunctionCall, you'll see the veryfirst call is to the special.dll, but if its not there it makes an exception. So from here you can see what the protection does (not the registration code) but the checks for the modified.exe
Attached Images
File Type: jpg Clipboard01.jpg (21.2 KB, 25 views)

Last edited by mtw; 07-07-2004 at 05:56.
Reply With Quote