首先,我知道如果我在编写纯汇编,我可以(并且会…)简单地在.data部分或类似部分中编写字符串。然而,在我的用例中,这不是一个选项
我使用的是python和keystone框架,所以没有.data部分。任务是执行CreateFile(Windows程序集)。你到底是如何制作一个像“C:\mine.exe”这样的字符串并将其放入RCX的
我尝试过qword…我尝试过将3个单独的值推送到堆栈上,然后将堆栈指向rcx。我能找到的任何方向都会有帮助。rax保存CreateFileA的地址(不管怎样,它的存根在kernel32.dll中)。RCX=1.tx(尽量简单…只是一个小测试
" mov QWORD PTR [rsp+48], 0 ;"
" mov DWORD PTR [rsp+40], 128 ;"
" mov DWORD PTR [rsp+32], 2 ;"
" xor r9d, r9d ;"
" xor r8d, r8d ;"
" mov edx, 1073741824 ;"
" mov rcx, 0x00000000312e7479 ;"
" int3 ;"
" call rax ;"
" mov QWORD PTR hFile$[rsp], rax ;"
下面的代码显示了另一种方法,其中我将值存储在堆栈上,然后尝试将rsp指向rcx
" mov QWORD PTR [rsp+48], 0 ;"
" mov DWORD PTR [rsp+40], 128 ;"
" mov DWORD PTR [rsp+32], 2 ;"
" xor r9d, r9d ;"
" xor r8d, r8d ;"
" mov edx, 1073741824 ;"
" push 2e747874h ;"
" push 5c746573h ;"
" push 656e7473h ;"
" push 6f63756dh ;"
" push 696e5c44h ;"
" push 5c61646dh ;"
" push 73657273h ;"
" push 433a5c55h ;"
" int3 ;"
" mov rcx, rsp ;"
" call rax ;"
" mov QWORD PTR hFile$[rsp], rax ;"
目前没有回答
相关问题 更多 >
编程相关推荐