diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2021-03-04 20:11:06 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2021-03-04 20:11:06 +0100 |
| commit | f2a9066697b86d2764a73bba8e63d626814be5bc (patch) | |
| tree | 2396825ed78a7bcb9d2950e302decbe0ec702cf3 /src/main.c | |
| parent | ad05515b70dfa5c28dbd1552b4bc9df9bf98788c (diff) | |
| download | box64-f2a9066697b86d2764a73bba8e63d626814be5bc.tar.gz box64-f2a9066697b86d2764a73bba8e63d626814be5bc.zip | |
Added 0F 1F NOP opcode
Diffstat (limited to 'src/main.c')
| -rwxr-xr-x | src/main.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/main.c b/src/main.c index 92b3c0e6..cf7af7ce 100755 --- a/src/main.c +++ b/src/main.c @@ -826,8 +826,9 @@ int main(int argc, const char **argv, const char **env) { // stack setup is much more complicated then just that! SetupInitialStack(emu); // starting here, the argv[] don't need free anymore SetupX64Emu(emu); - SetRAX(emu, my_context->argc); - SetRBX(emu, (uintptr_t)my_context->argv); + SetRSI(emu, my_context->argc); + SetRDX(emu, (uint64_t)my_context->argv); + SetRCX(emu, (uint64_t)my_context->envv); // child fork to handle traces pthread_atfork(NULL, NULL, my_child_fork); @@ -894,9 +895,12 @@ int main(int argc, const char **argv, const char **env) { // emulate! printf_log(LOG_DEBUG, "Start x64emu on Main\n"); - SetRAX(emu, my_context->argc); + SetRSI(emu, my_context->argc); SetRDX(emu, (uint64_t)my_context->argv); + SetRCX(emu, (uint64_t)my_context->envv); SetRIP(emu, my_context->ep); + PushExit(emu); + *(uint64_t*)GetRSP(emu) = my_context->argc; ResetFlags(emu); Run(emu, 0); // Get EAX |