zoukankan      html  css  js  c++  java
  • PE文件结构 | 在PE文件的空白区添加代码

    初探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.新增代码执行后跳回入口地址

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

  • 相关阅读:
    VS2013快速安装教程
    软件工程课程的感想
    GitHub和Microsoft TFS对比有什么优势
    拼接素数
    C语言程序题
    vue中的实例方法的底层原理
    ios 安卓
    防抖
    伪数组转真数组的放法
    http和https的一种能力?
  • 原文地址:https://www.cnblogs.com/Mz1-rc/p/14124352.html
Copyright © 2011-2022 走看看