VBox v4.3
WeiJunLi please don't cry
Written by McCodEMaN


Introduction


Greetings and welcome to the noble art of reverse engineering!

Some time ago when writing on my C-lesson five I started to read Crackers's notes during a pause (January edition 2000).
While reading I stumled upon two VBox essays by PLUMe and alpine that was new to me. So I started to read them and at the same time catch some flashbacks from the time when I danced with Vbox 4.20!
When done reading I tried to find my old notes so that I too could write an essay, but then it hit me...Why should I?... PLUMe and alpine had already done such a good job!
I went back to my C-lesson, this time with a cup of tea by my side. I was just about to start write again when a new thing hit me......
The cd's began to fly in- and out of my cd-rom....I found it...VBox Builder 4.3!!



This is what previewsoftware wants you to belive!

An important concern when developing an application for electronic is security.
You are providing a full function version of your product, and want to be confident that the locking mechanisms are adequate to safeguard your software from unauthorized use.
In addition, you must ensure that an unauthorized user does not use Vbox Builder to modify your application. Preview Systems has implemented a number of different security options to protect your software.

Vbox Builder uses RSA public key encryption to ensure that each step of the Vbox process from development to implementation is protected from outside tampering. Preview handles all encryption keys.
Developers do not need to understand how these security mechanisms are implemented in order to use Preview’s Vbox products.



Finally!

If you're not already familiar to VBox you should start by reading the work of Marigold and Xoanon, even if you've beaten it before you should read these essays. 'Opening Vbox PreviewParadise lost' by Marigold is one that's missing in CN.

If you can't beat the previous versions don't bother to read this essay, it won't do you any good!



Tools required


Numega SoftIce
SoftIce Backdoor Keeper
ProcDump 1.6

Target's URL

http://www.previewsystems.com/



Essay



First of all you've got to get by the anti Softice protection. If you would like info. about how to do this I belive that alpine wrote about this in his vbox 4.2 essay.
I'll use Softice backdoor keeper to save time!



Run the Vbox protected target and bpx getprocaddress before pressing [TRY], then F11 and you'll end up here:


0187:0700BB39   FF15C8210407         CALL        [KERNEL32!GetProcAddress]
0187:0700BB3F   8BF8                 MOV         EDI, EAX <---landing spot!
0187:0700BB41   3BFB                 CMP         EDI, EBX
0187:0700BB43   0F849D010000          JZ         0700BCE6
0187:0700BB49   8B7616               MOV         ESI, [ESI+16]
0187:0700BB4C   037508               ADD         ESI, [EBP+08]
0187:0700BB4F   395DDC               CMP         [EBP-24], EBX <---but WeiJunLi...really?
0187:0700BB52   7435                  JZ         0700BB89 <--should say JMP!
 

Ok, lets change :0700BB52   7435      JZ    0700BB89 to:       JMP    0700BB89

Type in:

                 a 0700bb52 and press [ENTER]

                 jmp 0700bb89 [ENTER] and [Esc]!




This will take you to....


0187:0700BB85   8906                 MOV         [ESI], EAX
0187:0700BB87   EB02                 JMP         0700BB8B
0187:0700BB89   893E                 MOV         [ESI], EDI <---jumps here!



Now F11 twice and clear your breakpoint, then do p ret five times so that you'll end up here....


                                     CALL        EDI <-----bpx here!
                                     MOV         [EBX+ ], EAX <--you'll
                                     POP         EBX             land here!
                                     MOV         EBX, [EBP+ ]
                                     PUSH        EDI
                                     PUSH        EBX
 


Bpx on that CALL EDI and press F11! When softice breaks hit F8 and move yourself through the code until you reach the first CALL and when you do, step into it.

In this call you'll be moving through lots of code, but after a while you should see this......



                                     RET         000C
                                     LEA         EDX, [ESP+48]
                                     PUSH        EDX
                                     PUSH        EBX
                                     CALL        008D0456 <---step in here!


This code is located shortly after a call to eax, so look for that and you won't miss the call above!
Ok, if you've entered the first call after 'call eax' you can start to look for a JMP EBX.

EBX = Program Entry Point



                                     MOV         EDX, [EBP-08]
                                     MOV         EAX, [EDX+14]
                                     MOV         [EBP-10], EAX
                                     MOV         EBX, [EBP-10]
                                     JMP         EBX <---change to JMP EIP!
                                     MOV         ECX, [EBP-08]
                                     MOV         EDX, [ECX+14]
                                     MOV         [EBP-0C], EDX
                                     MOV         EAX, [EBP-0C]


Get the entry point from EBX and don't forget to subtract imagebase, then create a infinite loop like this:


                a eip [ENTER]   and   jmp eip [ENTER]



Start up ProcDump and under options check all structure boxes, we are also going to rebuild a new import table.
Select your program from Task and make a full dump, then open it with the PE Editor and type in the entry point you calculated before....remember?....no imagebase!!!



-THE CASE IS OPEN-



Final Notes



I would like to thank:

attiTude, tKC, Razzia, MrX, members of TRES2000 and my beloved Jen!




When ever there is a door,
there is an entrance.
And behind an entrance can no secret hide,
when a cracker takes his knowledge for a ride



ObDuh

The information in this essay is for educational purpose only!
You are only allow to crack, reverse engineer, modify code and debugg programs that you legaly bought and then for personal use only!!
To ignore this warning is a criminell act and can result in lawful actions!

So please note!
I take no responebility for how you use the information in this essay, i take NO responebility for what might happen to you or your computer!
You use this information on your own risk!!

What i mean is: Please buy the software!








Essay written by McCodEMaN ©TRES2000. All Rights Reserved.