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

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

  • 相关阅读:
    Git`s Operation
    从volatile说到,i++原子操作,线程安全问题
    sql中的几种删除方式
    Hibernate&MyBatis different
    集合问答
    Data Struct and Data Type
    Hash table and application in java
    idea`s shortcut key
    001--idea第一个报错JNI报错
    recyclebin
  • 原文地址:https://www.cnblogs.com/Mz1-rc/p/14124352.html
Copyright © 2011-2022 走看看