I. How this program works:
--------------------------
All relocations in a file are recounted to make it possible to load a file
under a different address, therefore ImageBase is changed, check-sum is
clearedin the header.
II. What is this all for?:
--------------------------
Very often, compilers allocate the same preferred loading address for all
DLLs, if there is more than one DLLs compiled - their loading address will
conflict with each other. This is why Operating System has to recount
relocations during each loading to let each module load in an emty address.
This slowes down process of loading the program. Using this tool you can
change preferred addresses of loading in DLLs to different ones and if in
this case DLLs are not conflicting during loading, then relocation sections
can be removed completely, thus reducing the size of a module.
III. How to use:
----------------
1) load the program
2) Open desired file using the appropriate dialog. If format is not
supported - the program will inform you, otherwise fields Original
ImageBase and New ImageBase will fill in automatically.
3) Input a deisred address into New ImageBase and press "Process" button.
4) That's all, most likely, the file will rebase correctly (I hope).
IV. Options:
------------
1) Back Up - make a backup copy of a file that is being processed.
2) Save Overlay - save overlays, if they are present in a file.
3) Save - save settings on exit.
V. Things to note:
------------------
1) Rebasement can also be used in the "research" of a DLL - it is not nice
to see one address in Debugger and a different one in Disassembler and
therefore different relocations. This was the main reason for creating
this program, because this dirty trick os only good when using
someonelses modules (otherwise, it is just as easy to change loading
address in preferences of compiler and recompile the module).
2) Program was specifically written to process DLLs, but it will work fine
for EXE and other files that contain relocations.
3) For Win9x loading address must lie beteween 0ُ400000 and 0ُ800000, for
NT, lowest limit is - 0ُ10000.
4) Configurator of relocations is ripped from ASPack 2.11 (big thanks,
A.Solodovnikov).
5) Obviously, required condition for rebasement is presence of relocations
in a file. If relocations don't exist in a file - my program cen not do
anything with that file.
VI. History:
------------
- v1.0 + First public version. It seems like everything is working fine.
== by Dr.Golova [mailto: [email protected]] ================ 03.08.01 ===
== [c] Underground Information Center [ http://www.uinc.ru ]===============