diff options
Diffstat (limited to 'aoe2hd/include')
-rwxr-xr-x | aoe2hd/include/CodeGenerator.h | 1 | ||||
-rwxr-xr-x | aoe2hd/include/CodeInjector.h | 2 | ||||
-rwxr-xr-x | aoe2hd/include/ModuleMemory.h | 6 | ||||
-rwxr-xr-x | aoe2hd/include/native.h | 12 |
4 files changed, 18 insertions, 3 deletions
diff --git a/aoe2hd/include/CodeGenerator.h b/aoe2hd/include/CodeGenerator.h index e0649dd..2d97d86 100755 --- a/aoe2hd/include/CodeGenerator.h +++ b/aoe2hd/include/CodeGenerator.h @@ -21,6 +21,7 @@ public: } bool hasCode(int index); CodeGenerator& addCode(const std::vector<unsigned char>& code); + CodeGenerator& addCode(const std::string& code); CodeGenerator& setCode(int index, const std::vector<unsigned char>& code); CodeGenerator& setCodeSized(int index, const std::vector<unsigned char>& code); CodeGenerator& setRel32JMP(int index, unsigned long dst, unsigned long src, bool reversed = false); diff --git a/aoe2hd/include/CodeInjector.h b/aoe2hd/include/CodeInjector.h index 189b580..bb4af85 100755 --- a/aoe2hd/include/CodeInjector.h +++ b/aoe2hd/include/CodeInjector.h @@ -37,6 +37,8 @@ public: bool addCode(const std::string& name, const std::string& code_name, const std::vector<unsigned char>& code); bool addCode(const std::string& name, const std::string& code_name, + const std::string& code); + bool addCode(const std::string& name, const std::string& code_name, unsigned long siz); bool setCode(const std::string& name, const std::string& code_name, const std::vector<unsigned char>& code, diff --git a/aoe2hd/include/ModuleMemory.h b/aoe2hd/include/ModuleMemory.h index 2fa2584..4eac9b6 100755 --- a/aoe2hd/include/ModuleMemory.h +++ b/aoe2hd/include/ModuleMemory.h @@ -15,6 +15,7 @@ typedef struct target_ptr unsigned long base; unsigned long offset; unsigned long ptr; + std::string pattern; bool valid; std::string dependency; std::set<std::string> children; @@ -25,9 +26,11 @@ class ModuleMemory public: ModuleMemory(const native_data& nd); virtual ~ModuleMemory(); + unsigned long scanProcMem(const std::string& name, const std::string& pattern, long offset = 0, bool getPtr = true); + unsigned long scanMappedMem(const std::string& name, const std::string& pattern, long offset = 0, bool getPtr = true); unsigned long getPtr(const std::string& name); unsigned long getPtr(const std::string& name, unsigned long *dest_ptr); - unsigned long getPtr(const std::string& name, unsigned long base, unsigned long offset); + unsigned long getPtr(const std::string& name, unsigned long base, long offset = 0); unsigned long recheckPtr(const std::string& name); void revalidateAllPtr(); bool ptrSetDependency(const std::string& name, const std::string& dependency); @@ -52,6 +55,7 @@ private: else ++ptr_invalid_count; return false; } + unsigned long scanPattern(unsigned long addr, unsigned long size, const std::string& pattern); }; #endif // PROCESSMEMORY_H diff --git a/aoe2hd/include/native.h b/aoe2hd/include/native.h index b599e0d..297028a 100755 --- a/aoe2hd/include/native.h +++ b/aoe2hd/include/native.h @@ -18,12 +18,16 @@ typedef bool(*write_mem_fn)(const native_data *nd, unsigned long siz); typedef bool(*suspend_proc_fn)(const native_data *nd, int doResume); +typedef unsigned long(*iterate_mem_fn)(const native_data *nd, + unsigned long *addr, + unsigned long *size); typedef struct win_proc { DWORD pid; HANDLE hndl; - unsigned long modbase; + HMODULE modbase; + DWORD modsize; } win_proc; typedef struct native_data @@ -33,13 +37,14 @@ typedef struct native_data read_mem_fn read_fn; write_mem_fn write_fn; suspend_proc_fn suspend_fn; + iterate_mem_fn iterate_fn; } native_data; EXPORT void initNativeData(native_data *nd); EXPORT void cls(HANDLE hConsole); EXPORT bool get_module_proc(native_data *nd, LPCTSTR window_name); -EXPORT bool get_module_base(native_data *nd, +EXPORT bool get_module_info(native_data *nd, LPCTSTR module_name); EXPORT unsigned long mem_alloc(const native_data *nd, @@ -52,5 +57,8 @@ EXPORT bool write_procmem(const native_data *nd, unsigned long siz); EXPORT bool suspendProcess(const native_data *nd, int doResume); +EXPORT unsigned long iterate_mem(const native_data *nd, + unsigned long *addr, + unsigned long *size); #endif // NATIVE_H_INCLUDED |