From a9d633ab2d7b7b8a8101d5a0e693d008804614f5 Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Mon, 5 Apr 2021 16:47:26 +0200 Subject: Fixed _start preparation --- src/main.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/main.c b/src/main.c index d85bdcad..c843544f 100755 --- a/src/main.c +++ b/src/main.c @@ -1025,14 +1025,11 @@ int main(int argc, const char **argv, const char **env) { // emulate! printf_log(LOG_DEBUG, "Start x64emu on Main\n"); - SetRSI(emu, my_context->argc); - SetRDX(emu, (uint64_t)my_context->argv); - SetRCX(emu, (uint64_t)my_context->envv); + // Stack is ready, with stacked: NULL env NULL argv argc SetRIP(emu, my_context->ep); - PushExit(emu); - //*(uint64_t*)GetRSP(emu) = my_context->argc; - Push64(emu, my_context->argc); ResetFlags(emu); + PushExit(emu); // push to pop it just after + SetRDX(emu, Pop64(emu)); // RDX is exit function Run(emu, 0); // Get EAX int ret = GetEAX(emu); -- cgit 1.4.1