octapus
November 23rd, 2001, 12:25
I have downloaded a program called " The VR Worx 2.0". It's creator says that save function is disabled in Demo Version. When i click on SAVE or SAVE AS menu it shows a message that "You have a Demonstration Message...." etc.
I disassembeled the program with IDA and found the point where WM_COMMAND message is passed on to the program. Therefore i found what is executed when Save button is pressed.
I found no connection in that point with any Save Dialog from Common Dialogs DLL. Only a call to MessageboxA and then return to normal DlgProc waiting for messages.
So i went for the opposite direction. I found in imports section the Call to GetSaveFileName function of commdlg32.dll. GETSAVEFILENAME ICALL IS BEING USED ONCE IN THE ENTIRE PROGRAM.
In it's parameters pushed I found the Text that Save Dialog should show in it's bar("VR WORKS 2.0 Panorama Save as"
". It's for sure that that function should be called
when pressing Save in the File menu. I wrote all the references to this call (where GetSavefilename is) up to five levels. There were about 12 of them. I breakpointed all of them but when pressing Save it never breakpoints.
I tried to see how getopenfilename is called and it was very straightforward. Right where WM_COMMAND message is executed it calls a function where GetOpenFilename is and it simply works.
So i tried the following things.
1) I pushed the window handle
and called the function where GetSaveFileName is ( that function has one argument of dword size). To tell the truth i couldn't understand what should be pushed and i did it blindly. As a result when i went through the code with Softice it created a GPF and started the program's EXCEPTION HANDLING PROCEDURE before showing Windows Familiar GPF and finally it exited.
2) The part where wm_command executed the code for SAVE menu had a call. Inside it , a function pointer was being used. I edited manually the data memory location where the fuction points to with the mem loc of starting Call where GetSaveFilename is. Still i can't imagine what should be pushed.
3) I tried the two ways above but not with the call which contains the GetSaveFileName but with a call that contains the call i mentioned above( this one had to arguments of dword size). GPF again.
It seems that the programmers have removed some code from the program before compiling it. You think there could be a way to link the Save Menu with it's true code?
Maybe this looks like a crack request but all i want is some clue to continue. If anybody has the time to deal with it you are welcome.
(site where program is : h*tp://www.vrtoolbox.com/downloads.html . It's size is about 1,4 MB) .
Note : After some more searching in the Internet i found that the other demo programs this company gives in it's site have cracks for the current newest version on the Internet.Their limitation is the same.So i had the thought to see how the cracking is being implemented on those and maybe it's the same with this one two.
Maybe this works since the same company made them. I will try it in the meantime while i wait for some answers.
I disassembeled the program with IDA and found the point where WM_COMMAND message is passed on to the program. Therefore i found what is executed when Save button is pressed.
I found no connection in that point with any Save Dialog from Common Dialogs DLL. Only a call to MessageboxA and then return to normal DlgProc waiting for messages.
So i went for the opposite direction. I found in imports section the Call to GetSaveFileName function of commdlg32.dll. GETSAVEFILENAME ICALL IS BEING USED ONCE IN THE ENTIRE PROGRAM.
In it's parameters pushed I found the Text that Save Dialog should show in it's bar("VR WORKS 2.0 Panorama Save as"

when pressing Save in the File menu. I wrote all the references to this call (where GetSavefilename is) up to five levels. There were about 12 of them. I breakpointed all of them but when pressing Save it never breakpoints.
I tried to see how getopenfilename is called and it was very straightforward. Right where WM_COMMAND message is executed it calls a function where GetOpenFilename is and it simply works.
So i tried the following things.
1) I pushed the window handle
and called the function where GetSaveFileName is ( that function has one argument of dword size). To tell the truth i couldn't understand what should be pushed and i did it blindly. As a result when i went through the code with Softice it created a GPF and started the program's EXCEPTION HANDLING PROCEDURE before showing Windows Familiar GPF and finally it exited.
2) The part where wm_command executed the code for SAVE menu had a call. Inside it , a function pointer was being used. I edited manually the data memory location where the fuction points to with the mem loc of starting Call where GetSaveFilename is. Still i can't imagine what should be pushed.
3) I tried the two ways above but not with the call which contains the GetSaveFileName but with a call that contains the call i mentioned above( this one had to arguments of dword size). GPF again.
It seems that the programmers have removed some code from the program before compiling it. You think there could be a way to link the Save Menu with it's true code?
Maybe this looks like a crack request but all i want is some clue to continue. If anybody has the time to deal with it you are welcome.
(site where program is : h*tp://www.vrtoolbox.com/downloads.html . It's size is about 1,4 MB) .
Note : After some more searching in the Internet i found that the other demo programs this company gives in it's site have cracks for the current newest version on the Internet.Their limitation is the same.So i had the thought to see how the cracking is being implemented on those and maybe it's the same with this one two.
Maybe this works since the same company made them. I will try it in the meantime while i wait for some answers.
