For the past several months I've been developing a DLL library file that can assist in making a trainer in C#.
Wiki Documentation
Source Code
Compiled Release DLL
Example Game Trainers
Complex Game Trainer Example
FEATURES
- Read / Write module + memory + offsets or memory + offsets. Not just static memory addresses!
- Memory addresses load from external ini file(s) or internally.
- Inject separate dll files to trigger internal functions.
- Read / Write strings, integers, floats, doubles, byte(s) of any size.
- AoB scans in sections of addresses for fast address locating.
You can keep the same formatting as in Cheat Engine...
module + memory + offsets
EX1: game.exe+0x007F94E8,0x9c
EX2: someLib.dll+0x007F94E8,0x9c,0x8,0x67
EX3: 0x007F94E8,0x9c,0x8
EX4: 0x007F94E8
Here are some more examples:
You can program an address with offsets internally...
Or, make a code ini file...
and in your code ini file...
You can do an AoB scan...
Or, make a code ini file...
and in your code ini file...
You can write integers, strings, floats, bytes...
Or, with ini format...
You can inject your own DLL files...
This will create a new module called "inject"
You can also use ThreadStartClient(object) to create a pipe to your injected game called EQTPipe.
If anyone has questions, let me know.
Wiki Documentation
Source Code
Compiled Release DLL
Example Game Trainers
Complex Game Trainer Example
FEATURES
- Read / Write module + memory + offsets or memory + offsets. Not just static memory addresses!
- Memory addresses load from external ini file(s) or internally.
- Inject separate dll files to trigger internal functions.
- Read / Write strings, integers, floats, doubles, byte(s) of any size.
- AoB scans in sections of addresses for fast address locating.
You can keep the same formatting as in Cheat Engine...
module + memory + offsets
EX1: game.exe+0x007F94E8,0x9c
EX2: someLib.dll+0x007F94E8,0x9c,0x8,0x67
EX3: 0x007F94E8,0x9c,0x8
EX4: 0x007F94E8
Here are some more examples:
You can program an address with offsets internally...
Code:
int current_hp = MemLib.readInt("0x007F94E8,0x9c");
Code:
int current_hp = MemLib.readInt("godMode", "codeFile.ini");
Code:
[codes]
godMode=0x007F94E8,0x9c
Code:
IntPtr myScan = MemLib.AoBScan(0x00500000, 0x300000, "?? 00 ?? 00 00 00 ?? 00 50 00 4B 00 50 00 4B 00 5F 00 73 00 05");
int current_hp = MemLib.readInt(myScan.ToString("X8"));
Code:
IntPtr myScan = MemLib.AoBScan(0x00500000, 0x300000, "godMode", "codeFile.ini");
int current_hp = MemLib.readInt(myScan.ToString("X8"));
Code:
[codes]
godMode=?? 00 ?? 00 00 00 ?? 00 50 00 4B 00 50 00 4B 00 5F 00 73 00 05
Code:
MemLib.writeMemory("0x007F94E8,0x9c", "int", "1");
Code:
MemLib.writeMemory("godMode", "int", "1", "codeFile.ini");
Code:
InjectDLL("myDllFile.dll")
You can also use ThreadStartClient(object) to create a pipe to your injected game called EQTPipe.
If anyone has questions, let me know.