使用汇编语言编写注入代码
OD载入asmtest.exe,在程序开头0x00401000处修改代码如下:
在地址0x401033处Ctrl+E修改Ascii值,以00结尾
此部分代码如选中部分所示
此时按下Ctrl+A对代码进行分析,修改的ASCII已经分析出来
出现以上所谓的乱码和分析是因为OD无法完全区分代码和数据,分不出是字符串还是指令。
可以使用右键 — 分析 — 从模块中删除分析 来还原以前代码内容
地址0x0040103F输入call指令
然后在接下来地址0x00401044输入字符串,注意00结尾
接下来地址输入如下命令
至此全部汇编代码输入完成,保存全部修改到可执行exe文件。
接下来主要提取保存的可执行文件指令以及数据内容Hex值
OD载入保存的文件,数据窗口中跟随修改的区域0x401000-401061
将此段内容复制输出为txt文件,打开调整格式
推荐使用sublime,删除不需要的数据,使用Ctrl+Shift+L 出现光标选中多行同一位置,可以快速添加0xFF,
将此shellcode添加到codeinjection2.cpp中,注意去掉最后一个分号
运行代码保存为1.exe程序
运行notepad.exe程序,根据pid值运行 1.exe pid,出现弹窗,内容为我们设置的字符串,表明代码注入成功。