首页 > 其他 > 详细

PE文件结构 | 在PE文件的空白区添加代码

时间:2020-12-12 18:46:16      阅读:48      评论:0      收藏:0      [点我收藏+]

初探shellcode~

主要思路:

0.构造要写入的代码:

例:MessageBox:
  (push 00)*4 = 6a00
  call MessageBox(通过要跳转的地址-E8这行指令的地址-5):
    相对跳转
    E8 xx xx xx xx
  jmp 回到正常的执行流程:
    同上也是相对跳转
    E9 xx xx xx xx
  硬编码:
    6a00
    6a00
    6a00
    6a00
    e800000000
    e900000000
  一共18个bytes


1.在PE的空白区构造一段代码:

通常写在哪儿都行
目前的跳转目标是在自己的机器上能运行
所以直接查MessageBox在user32.dll中的地址
  M地址-在内存中的地址(ImageBase+偏移)-5
找扩展pe头中的AddressOfEntryPoint,计算怎么跳回去,计算方法跟上面差不多。


2.修改入口地址为新增代码:

  修改AddressOfEntryPoint指向shellcode
3.新增代码执行后跳回入口地址

 

如果出现问题,可以用调试器检查哪里出错了。

PE文件结构 | 在PE文件的空白区添加代码

原文:https://www.cnblogs.com/Mz1-rc/p/14124352.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!