我正在处理一项使用 rop 链执行漏洞利用的任务。虽然我了解 rop 背后的基础知识,但我不知道如何转换指令,例如
xchg eax, esp; retn;
到他们的操作码。
我尝试使用:
0:005> a
input> xchg eax,esp
但是给出的地址只是指向我的程序中一种完全不同的指令。我相信这是一个添加命令。
我正在处理一项使用 rop 链执行漏洞利用的任务。虽然我了解 rop 背后的基础知识,但我不知道如何转换指令,例如
xchg eax, esp; retn;
到他们的操作码。
我尝试使用:
0:005> a
input> xchg eax,esp
但是给出的地址只是指向我的程序中一种完全不同的指令。我相信这是一个添加命令。
RTA是一种易于使用的工具,允许您输入操作码或助记符,并将它们从一种转换为另一种。
在下面的示例中,我在右侧输入XCHG EAX,ESP
和RETN
,RTA 生成94
并C3
在左侧:
另一方面,如果您真的想使用 WinDbg,则需要执行以下操作:
xchg eax,esp
),Enter请参阅下面的示例:
0:000> a
778e05a6 xchg eax,esp
xchg eax,esp
778e05a7
0:000> u
ntdll!LdrVerifyImageMatchesChecksum+0x633:
778e05a6 94 xchg eax,esp
您可以使用汇编程序。或者像这样的在线汇编程序 或者你可以使用 Ida 的 Edit-->Patch program-->Assemble submenu 如果你使用 Ida。