由于要在PE文件中修改代码,本质上是在改十六进制的机器码(shellcode为经过处理的机器码),而我们阅读的是汇编码,汇编码和机器码相互转化可以更好的修改程序。本来想用pwn tool
或OllyDbg
来转化,但通过搜索linux
的调试工具,radare2
有附加的工具来转化。
(1) radare2安装
apt install radare2
Windows下载地址:http://radare.mikelloc.com/list,下载zip包,install的安装后无法使用,这边使用radare2-msvc_64-3.9.0.zip
。https://github.com/radareorg/radare2/releases/tag/3.2.1有32/64位的zip包。
github:https://github.com/radareorg/radare2/issues/12799
ra
+TAB
显示相关的命令:
rabin2.exe radiff2.exe ragg2.exe ranlib.exe rasautou.exe raserver.exe rasphone.exe
radare2.exe rafind2.exe rahash2.exe rarun2.exe rasdial.exe rasm2.exe rax2.exe
(2) 转化
rasm2 -L #查看architectures
rasm2 -a x86 -b 32 'mov eax, 33' #转机器码
echo