Assembly “怎么可能?”;“奇怪”;在普通DLL中是否可以找到ROP小工具?编译器永远不会这样做。(面向返回的编程)
小工具:Assembly “怎么可能?”;“奇怪”;在普通DLL中是否可以找到ROP小工具?编译器永远不会这样做。(面向返回的编程),assembly,dll,x86,reverse-engineering,machine-code,Assembly,Dll,X86,Reverse Engineering,Machine Code,小工具: pushad ret 在一个合法的程序中,从某个DLL读取对我来说毫无意义 假设DLL是合法的,如何通过自动搜索找到小工具?函数示例使用它可能会有所帮助。指令编码为: 60 pushad c3 ret 所以无论这两个字节出现在哪里,apushad;retgadget获取。例如,该指令可以合理地存在于SSE代码中: 66 0f 60 c3 punpcklbw xmm0, xmm3 查看其中的60 c3小工具?或者,这个小工具可以从一些即时消息中获取信息。例如,假设在0x480
pushad
ret
在一个合法的程序中,从某个DLL读取对我来说毫无意义
假设DLL是合法的,如何通过自动搜索找到小工具?函数示例使用它可能会有所帮助。指令编码为:
60 pushad
c3 ret
所以无论这两个字节出现在哪里,apushad;ret
gadget获取。例如,该指令可以合理地存在于SSE代码中:
66 0f 60 c3 punpcklbw xmm0, xmm3
查看其中的60 c3
小工具?或者,这个小工具可以从一些即时消息中获取信息。例如,假设在0x4800c360
处有一个变量,我们尝试加载它的地址:
b8 60 c3 00 48 mov eax, 0x4800c360
又看到这个小玩意了吗
这个小工具还有很多其他方式可以以完全正常的代码显示。甚至是类似于
addeax,0x60;ret
例如,从a返回foo+96代码>