diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2023-06-17 12:08:43 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2023-06-17 12:08:43 +0200 |
| commit | 1b47fd952caa889c252223b1996a06444d10e2fc (patch) | |
| tree | 5b45ad0b419a8106088ac9a5ca96590350ff6a3a /src/include | |
| parent | bf9e5b8e6e3b42768a787f1a3d3c1f423d1fb38f (diff) | |
| download | box64-1b47fd952caa889c252223b1996a06444d10e2fc.tar.gz box64-1b47fd952caa889c252223b1996a06444d10e2fc.zip | |
Added ability to trace and dump 32bits code
Diffstat (limited to 'src/include')
| -rwxr-xr-x | src/include/box64context.h | 1 | ||||
| -rwxr-xr-x | src/include/x64emu.h | 4 | ||||
| -rwxr-xr-x | src/include/x64trace.h | 3 |
3 files changed, 6 insertions, 2 deletions
diff --git a/src/include/box64context.h b/src/include/box64context.h index 2f82e010..954d93cb 100755 --- a/src/include/box64context.h +++ b/src/include/box64context.h @@ -185,6 +185,7 @@ typedef struct box64context_s { int clean_cap; zydis_dec_t *dec; // trace + zydis_dec_t *dec32; // trace int forked; // how many forks... cleanup only when < 0 diff --git a/src/include/x64emu.h b/src/include/x64emu.h index a1e03f6e..dd324add 100755 --- a/src/include/x64emu.h +++ b/src/include/x64emu.h @@ -41,9 +41,9 @@ uint64_t GetRSP(x64emu_t *emu); uint64_t GetRBP(x64emu_t *emu); void ResetFlags(x64emu_t *emu); void ResetSegmentsCache(x64emu_t *emu); -const char* DumpCPURegs(x64emu_t* emu, uintptr_t ip); +const char* DumpCPURegs(x64emu_t* emu, uintptr_t ip, int is32bits); -void StopEmu(x64emu_t* emu, const char* reason); +void StopEmu(x64emu_t* emu, const char* reason, int is32bits); void EmuCall(x64emu_t* emu, uintptr_t addr); void AddCleanup(x64emu_t *emu, void *p, void* dso_handle); void AddCleanup1Arg(x64emu_t *emu, void *p, void* a, void* dso_handle); diff --git a/src/include/x64trace.h b/src/include/x64trace.h index 662f2740..9ecbb9d5 100755 --- a/src/include/x64trace.h +++ b/src/include/x64trace.h @@ -8,8 +8,11 @@ typedef struct zydis_dec_s zydis_dec_t; int InitX64Trace(box64context_t *context); void DeleteX64Trace(box64context_t *context); +zydis_dec_t* InitX86TraceDecoder(box64context_t *context); +void DeleteX86TraceDecoder(zydis_dec_t **dec); zydis_dec_t* InitX64TraceDecoder(box64context_t *context); void DeleteX64TraceDecoder(zydis_dec_t **dec); + const char* DecodeX64Trace(zydis_dec_t *dec, uintptr_t p); #define ZYDIS_RUNTIME_ADDRESS_NONE (uint64_t)(-1) |