【exe加壳:修改可执行文件的PE头,增加一节,修改程序入口地址为该节】

【exe加壳:修改可执⾏⽂件的PE头,增加⼀节,修改程序⼊⼝地址为该节】⼀:PE中增加节
使⽤⼯具为:LordPE、010Editor、CFF、OD
1. List item
先⽤ 010Editor 查看节表部分是否⾜够长度加⼊新的节表⽬录
从图中看出,节表后⾯还有空余地⽅,可存放新增⽬录项
2. ⽤ LordPE 查看PE头部信息,增加⼀节,在 setions 中修改新增节表的属性
原始PE头信息:可得原始节表中有9项
修改节表项数为10节
然后点击Setions按钮,在⾥⾯修改新增节的相关属性(这⾥的相关原理有兴趣可⾃⾏了解)
进去后可看见最后⼀节表项名字和其他相关数据均为 0 ;
右键进⼊修改,修改项⽬为 Flags
修改后记得Save
3. ⽤ CFF 修改新增节的节名,和相关的偏移,偏移量的⼤⼩需要参照PE头中规定的内存对齐和⽂件对齐(节名等信息也可以在LordPE
中的Setions修改,这⾥使⽤CFF软件,界⾯更清晰)
·这⾥定义新增的节名为 .liang
·节⼤⼩为0x200(为了⽅便展⽰,0x两百刚刚好为⽂件的最⼩对其,内存的对其为0x1000,对其信息在PE头信息的
SectionsAlignment 和 FileAlignment 中)
·根据前⾯的信息可得.liang节的相关偏移量:
化学镀镍例如:
节能灯致癌.reloc节⼤⼩为65C ,虚拟地址:22000
该节最后偏移地址为 22000 + 65C = 2265C
内存对其为1000,得:最终.liang节开始地址为23000(也是.reloc 的最后位置)
·其他数据同理可的
4. 从上⼀步得:新增节的⼤⼩为0x200,则需要⽤010Editor 在⽂件的末尾加0x200的0字符(节表相当于⽬录,⽂件末尾的添加内容
相当于⽬录对应的内容)
举例:
添加节表项内容,相当于在书本⽬录最后,增加了书本中的⽬录项,但是真实书本的最后,却还没有增页。
这⼀步我们要做的就是在书本最后增加页
使⽤⼯具 010Editor:
上图得⽂件末尾地址为:C400
具体步骤:
编辑 -> 插⼊ -> 插⼊字节(这⾥选择填⼊全为 0 的数据)
成功插⼊0x200个 0的数据
5. ⽤ LordPE 修改映像⼤⼩(SizeofImage),⼿动修改,原⼤⼩+新增0x200;
(⾃动修改,在LordPE中,点击Setions,如果新增节中的地址偏移已经算好并且填⼊,退出Sections时,会⾃动修改的映像⼤⼩)原映像⼤⼩为0x23000,新增后,⼤⼩为0x23200
保存并且退出,⾄此,PE增加节部分的⼯作已经完成。
抗弯刚度
⼆:修改程序⼊⼝地址
此程序为开启了随机地址的模式;
(固定地址模式的修改较为简单,可⾃⾏推导)秒的定义
1. LordPE 查看原程序的⼊⼝地址(OI)
打开OD 到原程序⼊⼝地址(OE)
2. 在OD中拉到最后,到⼀连串的ADD指令,因为填充的0x200个 0,汇编指令机器码刚好对应于ADD;
3. OD中第⼀条ADD指令地址 (A1),A1 - OE = E1
4. 在LordPE中把原⼊⼝地址修改为:OI + E1
注意上述地址的符号
保存并退出后,可再次打开 .exe,发现程序运⾏了⼀会⼉后,出现错误
三:在新节中把控制权交回给原程序
鱼算法
分析第⼆部分最后的原因得:程序打开后,运⾏了⼀堆的ADD指令后,不再有其他的操作,导致程序崩溃;
使⽤OD:
iso6
我们可以修改第⼀条ADD指令,使⽤ jmp 跳转指令直接跳转到原程序⼊⼝点(OE)
⼤功告成,可在新增节中增加很多其他操作,此部分即为程序的壳。
后续更新…

本文发布于:2024-09-20 21:43:44,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/152768.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:修改   地址   新增   节表   相关   程序   指令
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议