UODEMODLL project - introduction
Posted: Wed Sep 15, 2010 8:13 pm
This post acts as an introduction to the UODEMODLL subproject and its API.
In UoDemo+ Publish 15 I introduced the option to attach a DLL to the demo. Between then and now I've been working on a set of batch files and techniques to interact with the demo internals. The project is far from finished, and if it will evet get finished will depend on time and interest (from myself and feedback from others as yourself).
You will need:
- Borland C++ 5.5 (Free Compiler)
- Turbo Assember 5.X
Both of them are good old command-line tools, so don't expect something fancy .
The idea of the uodemo.dll is:
- You set the environment variable UODEMODLL to a DLL made using this API
- You start uodemo+.exe (Publish 15 or later)
- uodemo+.exe will load your DLL
- uodemo.dll is now in the same address space as the EXE
- uodemo.dll makes patches inside uodemo+.exe in order to redirect (intercept) calls out of the EXE into the DLL
- Because we own/write the DLL and it's written in C it becomes easy to recode certain functions/behaviours
Even though this all sounds great, it is a lot of work because to intercept and call functions inside the EXE, you need a good knowledge of the functions and structure-layouts inside the EXE. That's what the API is for, it exposes interesting functions in a more readable fashion, so you don't need to think about the assembler and internals.
This screenshot shows how to configure the API for the default test project. There are 3 batch files you can use : cfg, b and r. cfg to configure the environment, b to build to the project, r to run the project. Also refer to this screenshot:
You should edit cfg.cmd to ensure your build environment is correct with your computer.
Use b and then r to test, if you successfull you get this :
Download the project here:
In the next days I will post more examples and cool techniques. Take care, till then.
In UoDemo+ Publish 15 I introduced the option to attach a DLL to the demo. Between then and now I've been working on a set of batch files and techniques to interact with the demo internals. The project is far from finished, and if it will evet get finished will depend on time and interest (from myself and feedback from others as yourself).
You will need:
- Borland C++ 5.5 (Free Compiler)
- Turbo Assember 5.X
Both of them are good old command-line tools, so don't expect something fancy .
The idea of the uodemo.dll is:
- You set the environment variable UODEMODLL to a DLL made using this API
- You start uodemo+.exe (Publish 15 or later)
- uodemo+.exe will load your DLL
- uodemo.dll is now in the same address space as the EXE
- uodemo.dll makes patches inside uodemo+.exe in order to redirect (intercept) calls out of the EXE into the DLL
- Because we own/write the DLL and it's written in C it becomes easy to recode certain functions/behaviours
Even though this all sounds great, it is a lot of work because to intercept and call functions inside the EXE, you need a good knowledge of the functions and structure-layouts inside the EXE. That's what the API is for, it exposes interesting functions in a more readable fashion, so you don't need to think about the assembler and internals.
This screenshot shows how to configure the API for the default test project. There are 3 batch files you can use : cfg, b and r. cfg to configure the environment, b to build to the project, r to run the project. Also refer to this screenshot:
- UoDemoDLL cfg.png (19.73 KiB) Viewed 15750 times
You should edit cfg.cmd to ensure your build environment is correct with your computer.
Use b and then r to test, if you successfull you get this :
- b & r = cheat console.png (103.03 KiB) Viewed 15750 times
Download the project here:
In the next days I will post more examples and cool techniques. Take care, till then.