summaryrefslogtreecommitdiff
path: root/aoe2hd/include
diff options
context:
space:
mode:
Diffstat (limited to 'aoe2hd/include')
-rwxr-xr-xaoe2hd/include/CodeGenerator.h1
-rwxr-xr-xaoe2hd/include/CodeInjector.h2
-rwxr-xr-xaoe2hd/include/ModuleMemory.h6
-rwxr-xr-xaoe2hd/include/native.h12
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