zoukankan      html  css  js  c++  java
  • 利用01Editor手工加壳

    主要工具: 010Editor、LordPE、OD
    实验平台:win10 64位
    实现功能:加壳。

    加壳原理

    要想弄明白怎么对PE文件加壳,首先需要对PE文件比较熟悉,而最快的熟悉PE文件的方法就是自己写一个PE解析工具和写壳了。
    先只用工具010Editor完成一个手工加壳,那么就明白加壳的原理了。

    首先进行手工加壳

    先用VS随便生成一个exe文件,我们使用它进行实验。
    可以先使用010Editor、LordPE、OD等工具查看节区个数,我实验程序的原始区段(节区)个数是8个。

    1. 给PE文件添加一个新区段

    修改文件头的NumberOfSection
    使用010Editor打开测试程序,按alt+4出现一个模板菜单找到NumberOfSection把该数字加1,这里改为了9。
    在这里插入图片描述

    2. 设置新的区段头

    添加保存之后, 重新运行010Editor的模板(或者重启010),区段就增加了一个。
    在这里插入图片描述
    设置整个新增加的区段的数据,主要需要设置的字段如下:
    在这里插入图片描述

    1. 区段名(可选)
    2. 区段数据的实际字节数Misc.VirtualSize
    3. 区段的VirtualAddress(区段数据在内存中的RVA),此值必须是: 上一个区段的VirtualAddress + 上一个区段经内存对齐粒度对齐后的大小(内存对齐大小是0x1000的整数倍)
    4. 区段以文件对齐粒度对齐后的大小SizeOfRawData(文件对齐大小是0x200的整数倍)
    5. 区段的PointerToRawData(区段数据在文件中的偏移),此值必须是:上一个区段的PointerToRawData + 上一个区段的SizeOfRawData
    6. 区段属性主要设置区段为可读可写可执行如下图
      在这里插入图片描述
      对比上一个区段修改新添加的区段里的字段。
      在这里插入图片描述
    3.添加区段数据

    区段头内容虽然设置好了,但真正重要的区段里的数据还需要插入到文件中,以扩充文件的大小,因为区段头只是一个相当于目录的存在,如果只有目录而没有内容,就会造成这个文件成为一个无效的PE文件。
    把010Editor里的数据页滚动到最下面按Ctrl+shift+i添加200h个(16进制)字节
    在这里插入图片描述
    在这里插入图片描述

    4. 修改PE文件的扩展头的SizeofImage

    现在PE文件已经被扩充了大小,扩展头中的映像大小必须更新,否则当PE文件加载到内存后,新区段的数据将无法得到正常加载。
    这个字段的值记录的是一个PE文件在内存中的大小,可以将之设置为: 最后一个区段在内存中的位置 + 最后一个区段在内存中的大小,即:
    OptionalHeader.SizeofImage = 最后一个区段.VirtualAddress + 最后一个区段.SizeOfRawData按内存对齐粒度对齐的大小
    在这里插入图片描述
    保存之后,运行该程序,就能正常运行(中间某些环节操作错了就会导致该文件无法正常运行)到此添加区段成功了。那么加壳也就成功了90%,这个新区段之后称为壳代码段。

    5.添加壳代码

    先找到扩展头的DLL属性字段,去掉随机基址,把40 81改为 00 81后保存。
    在这里插入图片描述
    在这里为了方便,就使用LordPE来操作剩下的步骤了,先记录原始的OEP入口点为11055,把他改为新区段的RVA 1F000然后点击保存。
    在这里插入图片描述
    然后再使用OD打开,进入到入口点就是41F000,因为默认加载基址是0x400000, 发现全是00 00 00的字节,没用内容。把第一行代码改为跳转到原来的入口点jmp 0x411055,然后打一个补丁,程序就能正常运行了。
    在这里插入图片描述
    这就是一个完整的壳流程了,虽然这个壳的内容只有一条跳转到原入口点的代码,但万丈高楼平地起。基础的东西弄懂了后面才能少遇见一些坑!

  • 相关阅读:
    hdu 5224 Tom and paper 水题
    2015 UESTC 搜索专题N题 韩爷的梦 hash
    2015 UESTC 搜索专题M题 Palindromic String 马拉车算法
    2015 UESTC 搜索专题K题 秋实大哥の恋爱物语 kmp
    2015 UESTC 搜索专题J题 全都是秋实大哥 kmp
    2015 UESTC 搜索专题F题 Eight Puzzle 爆搜
    2015 UESTC 搜索专题E题 吴队长征婚 爆搜
    2015 UESTC 搜索专题D题 基爷的中位数 二分
    2015 UESTC 搜索专题C题 基爷与加法等式 爆搜DFS
    2015 UESTC 搜索专题B题 邱老师降临小行星 记忆化搜索
  • 原文地址:https://www.cnblogs.com/laohaozi/p/12537616.html
Copyright © 2011-2022 走看看