一款用C(Win32)编写的工具,可将任意Shellcode转换为ROP,并注入到给定的可移植可执行文件(PE)中。仅支持32位目标PE文件和x86指令集。
在Blackhat USA 2015上发布,论文标题为《ROPInjector: Using Return Oriented Programming for Polymorphism and Antivirus Evasion》 更多信息:
ropinjector <被感染文件> <Shellcode文件> <输出文件>* [选项]*
(* 表示可选参数)
例如:
ropinjector.exe firefox.exe revshell.txt
被感染文件 : 任意32位、未加壳的PE文件
Shellcode文件 : 要注入PE文件中的Shellcode
输出文件(可选): 输出文件的名称。如果未指定, ROPInjector将选择一个合适的文件名,表明所执行的注入类型。
选项:
text 强制将Shellcode文件作为文本文件读取。文本格式的Shellcode
必须采用 \xHH\xHH\xHH 的形式。
norop 不要将Shellcode转换为ROP。
nounroll 不要展开SIB(Scale-Index-Base)。
noinj 不要注入缺失的gadget。
getpc 不要替换Shellcode中的getPC结构。
entry 让Shellcode在原始PE代码之前运行。如果不指定此选项,
ROPInjector将尝试挂钩ExitProcess()、exit()等函数,使得Shellcode
在进程退出之前最后运行。
-d<秒数> 在运行Shellcode前休眠指定的秒数。
当指定此选项时,也会隐式启用"entry"。
ROPInjector最终会输出一些逗号分隔的统计数据。依次为:
GPLv2.0, http://www.gnu.org/licenses/old-licenses/gpl-2.0.html