Update GaCy-GO
This commit is contained in:
1 parent
da8a32f60d
commit
0cbe460e49
345 files changed
+98202
-77559
No files matched your search
@@ -0,0 +1,17 @@
|
||||
// Exact named-method records from a caller-selected current-process capture.
|
||||
// Offset +8 was verified against two independently known exception-bound
|
||||
// AdventurePhase entrypoints. No assembly enumeration, native calls or writes.
|
||||
const methods = globalThis.GAC_CAPTURED_METHOD_HANDLES;
|
||||
if (!Array.isArray(methods) || methods.length < 1 || methods.length > 256)
|
||||
throw Error('Bounded current-process method handle list required');
|
||||
const module = Process.getModuleByName('GameAssembly.dll');
|
||||
for (const item of methods) {
|
||||
if (typeof item.name !== 'string' || !/^0x[0-9a-f]+$/i.test(item.handle))
|
||||
throw Error('Invalid exact method record');
|
||||
try {
|
||||
const address = ptr(item.handle).add(8).readPointer();
|
||||
if (address.compare(module.base) < 0 || address.compare(module.base.add(module.size)) >= 0)
|
||||
throw Error('Method pointer is outside selected GameAssembly');
|
||||
send({name:item.name, handle:item.handle, rva:address.sub(module.base).toString()});
|
||||
} catch (error) { send({name:item.name, error:String(error)}); }
|
||||
}
|
||||
Reference in new issue
Block a user