diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2023-06-17 11:32:56 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2023-06-17 11:32:56 +0200 |
| commit | bf9e5b8e6e3b42768a787f1a3d3c1f423d1fb38f (patch) | |
| tree | 77430b88dda5a324dcf00055c0ffe90cbef6bdb8 /src/box64context.c | |
| parent | 7e282c9027a3c7e563b4492a0004174b42de0819 (diff) | |
| download | box64-bf9e5b8e6e3b42768a787f1a3d3c1f423d1fb38f.tar.gz box64-bf9e5b8e6e3b42768a787f1a3d3c1f423d1fb38f.zip | |
Added support for creating 32bits selector (no 32bits execution yet)
Diffstat (limited to 'src/box64context.c')
| -rwxr-xr-x | src/box64context.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/box64context.c b/src/box64context.c index fc626305..ff65391c 100755 --- a/src/box64context.c +++ b/src/box64context.c @@ -243,6 +243,22 @@ box64context_t *NewBox64Context(int argc) context->canary[getrand(4)] = 0; printf_log(LOG_DEBUG, "Setting up canary (for Stack protector) at FS:0x28, value:%08X\n", *(uint32_t*)context->canary); + // init segments + for(int i=0; i<16; i++) { + context->segtls[i].limit = (uintptr_t)-1LL; + } + context->segtls[10].key_init = 0; // 0x53 selector + context->segtls[10].present = 1; + context->segtls[8].key_init = 0; // 0x43 selector + context->segtls[8].present = 1; + context->segtls[6].key_init = 0; // 0x33 selector + context->segtls[6].present = 1; + context->segtls[5].key_init = 0; // 0x2b selector + context->segtls[5].present = 1; + context->segtls[4].key_init = 0; // 0x23 selector + context->segtls[4].present = 1; + context->segtls[4].is32bits = 1; + initAllHelpers(context); return context; |