Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly “怎么可能?”;“奇怪”;在普通DLL中是否可以找到ROP小工具?编译器永远不会这样做。(面向返回的编程)_Assembly_Dll_X86_Reverse Engineering_Machine Code - Fatal编程技术网

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
所以无论这两个字节出现在哪里,a
pushad;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