Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

Program Announcements / dbpro patch tool

Author
Message
the_winch
21
Years of Service
User Offline
Joined: 1st Feb 2003
Location: Oxford, UK
Posted: 31st Jul 2004 14:52 Edited at: 26th Aug 2004 20:49
Basically a patcher for dbpro exes.


builder screenshot


patcher screenshot

Download http://winch.pinkbile.com/patch_tool.php

Self extracting archive with an example game and patch.
http://winch.dbspot.com/temp/example.exe

Different from a traditional patcher as it only has the ability to add/replace or remove files in the exe.
It also only works with exes that where compiled without the "compress media" option.

To create a patch
compile a new version of you game.
Check if the new version uses any dlls the old one didn't.
Extract _virtual.dat from the new exe. Dbpro compiles all your code + some other stuff into _virtual.dat
Start the builder and add _virtual.dat to the files list. Then add any needed dlls. If the new version uses less dlls then you can tell the patch to remove them.
Then build a patch.

When the user runs the patch on your game exe it will create a backup called exename.exe.old then add/replace or remove the required files in the game exe so the user ends up with the latest version of the game.

Since the only variation between versions of a lot of dbpro games is the _virtual.dat file the patcher is often not version dependant. It will update any version of your game to the latest version.

shrink those dbpro exes
Create patches for your dbpro games
walaber
21
Years of Service
User Offline
Joined: 22nd Oct 2003
Location: Los Angeles, CA
Posted: 31st Jul 2004 15:16
you always make the coolest little helper apps! I don't think enough people actually use them! I'll be using your other editor to add the newton.dll to all of my future projects

Go Go Gadget DBPRO!

Athlon XP 2400+ || DDR-SDRAM 1GB || Nvidia GeForce 4 Ti4200 AGP 8x 128MB
Surreal Studio IanG
21
Years of Service
User Offline
Joined: 21st Sep 2003
Location: Cyberspace...I think
Posted: 31st Jul 2004 20:00
how do you see inside the exe - does the program extract the contents of the exe to a temp directory, like dbpro does when you run the exe?

PC Spec- AMD Athlon 2.0Ghz, GeForce FX5200 128mb, 512MB of ram, Win XP Home SP1

Error 0 = no error - how is this an error the???
Shadow Robert
22
Years of Service
User Offline
Joined: 22nd Sep 2002
Location: Hertfordshire, England
Posted: 31st Jul 2004 21:31
This will crash if you use any form of PE Compression either on your EXE or part of your DLLs.
Just a warning...

the_winch
21
Years of Service
User Offline
Joined: 1st Feb 2003
Location: Oxford, UK
Posted: 1st Aug 2004 03:28 Edited at: 1st Aug 2004 03:29
Quote: " This will crash if you use any form of PE Compression either on your EXE or part of your DLLs."


Got a sample exe, I would like to try and fix it.

Quote: "you always make the coolest little helper apps!"


Thanks

Quote: "how do you see inside the exe - does the program extract the contents of the exe to a temp directory, like dbpro does when you run the exe?"


It's fairly easy to see inside an exe.
Dbpro exes are made up of a loader exe which takes up the first 73,728 bytes of the exe. The exact size of the loader exe varies between versions but it is usually safe to assume that a string "PADDINGXXPAD" will be the last data before the appended files.
Know you know where the files are stored and each file is stored in the exe as
long length - the lenght of the filename
filename
long length - the length of the filedata

Here is some dbpro code that will open a dbpro exe and list the files in it. The exe needs to be compiled with the latest version of dbpro.
empty
22
Years of Service
User Offline
Joined: 26th Aug 2002
Location: 3 boats down from the candy
Posted: 1st Aug 2004 03:34
Cool. Very well investigated.
Even without doing something "on ASM level".

Play Nice! Play Basic! Check it out. Now!

nFinity Emulator. Coming soon...
Shadow Robert
22
Years of Service
User Offline
Joined: 22nd Sep 2002
Location: Hertfordshire, England
Posted: 1st Aug 2004 06:49
Alright, I'll upload one later.

Surreal Studio IanG
21
Years of Service
User Offline
Joined: 21st Sep 2003
Location: Cyberspace...I think
Posted: 1st Aug 2004 07:21
the_winch take a bow - that is great work, i'll try that in DBPro tommorrow


Used to be Phoenix Insane : PC Spec- AMD Athlon 2.0Ghz, GeForce FX5200 128mb, 512MB of ram, Win XP Home SP1
the_winch
21
Years of Service
User Offline
Joined: 1st Feb 2003
Location: Oxford, UK
Posted: 2nd Aug 2004 19:01 Edited at: 9th Aug 2004 00:37
New version, the patcher now has a gui instead of a console.



Download
http://winch.pinkbile.com/patch_tool.php

it's cool to hate
Ilya
21
Years of Service
User Offline
Joined: 10th Aug 2003
Location:
Posted: 2nd Aug 2004 22:25
Can anyone who downloads this modify the source code for any DB exe?

-Ilya
the_winch
21
Years of Service
User Offline
Joined: 1st Feb 2003
Location: Oxford, UK
Posted: 3rd Aug 2004 00:07 Edited at: 17th Aug 2004 16:55
Quote: " Can anyone who downloads this modify the source code for any DB exe?"


No. The dbpro compiler apparently produces 100% machine code so the source code isn't in the exe to be modified / viewed.
The compiler stores the compiled machine code in a file called _virtual.dat which is appended to the exe along with all the required dlls.
A lot of the time the only difference between versions of a game is the _virtual.dat file. So you can get users to download a patch which contains just the _virtual.dat file instead of a new exe which contains 5Mb + of dlls they allready have.

edit:
Just released v0.4 Which adds an optional md5 checksum. So you can optionally make sure users can't update an exe which isn't the correct version.

http://winch.pinkbile.com/patch_tool.phpv

Login to post a reply

Server time is: 2024-11-24 15:05:22
Your offset time is: 2024-11-24 15:05:22