网站建设规划面试技巧,网站超大文件上传,开发网址,做效果图兼职的网站有哪些【2021.9.7】记一次exe手动添加shellcode 文章目录【2021.9.7】记一次exe手动添加shellcode0.大致思路1.获取MessageBox的真实地址VA2.通过OD在代码段添加shellcode3.dump出数据,设置程序OEP4.测试dump出来的exe5.方法总结测试的exe和添加了shellcode的exe#xff1a;链接链接https://pan.baidu.com/s/1QJ02pb0_YxIgQCNY15LBAA 提取码aura
0.大致思路
先在exe内部添加一段shellcode这里只是简单弹出一个 MessageBox框的字节码再修改exe的pe格式中的OEP执行完shellcode之后再跳回原本OEP
说明修改的这个exe原本功能是弹出一个MessageBox我做的是在他的MessageBox之前再弹出一个MessageBox因为原本存在MessageBoxbox函数所以方便我们获取MessageBox的真实地址。 1.获取MessageBox的真实地址VA
OD调试测试exe逻辑比较简单。 双击地址0x40101a可以看到汇编指令为jmp dword ptr [402008]就是在IAT表里取地址说明该exe的虚拟地址VA402008存储的是MessageBox函数的地址。
2.通过OD在代码段添加shellcode 其实任意节区都可以但要执行代码该节区头属性Characteristics字段必须包含可读可执行的权限直接添加到代码段节区可以省去更改节区头属性的步骤 这里代码段空的地方比较多我们直接在原有代码下方靠近的位置选一片区域添加shellcode内存对应一般为1000应该不会超出代码段。 记住我们添加代码段的地方为0x401030
3.dump出数据,设置程序OEP 4.测试dump出来的exe
已经在执行我们的shellcode了 5.方法总结
这种直接在OD里通过书写汇编指令添加shellcode方式不用手动计算跳转地址和构造字节码直接在OD里相应位置写汇编指令他会自动计算地址并生成字节码比较简洁易上手。
我这里测试exe和添加的shellcode都比较短小没有测试过更大的exe和shellcode可能会以偏概全了但是通过在OD里写汇编OD可以给我们自动计算跳转指令的地址和生成字节码省去我们手动构造并且不用管FOA和RVA的转换。
给我们自动计算跳转指令的地址和生成字节码省去我们手动构造并且不用管FOA和RVA的转换。
如果Dump方法不行可以先在OD书写shellcode的汇编指令然后拷贝其生成的字节码再手动在exe二进制文件相应位置添加即可注意FOA和RVA的转换。