吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

查看: 3503|回复: 6

[原创逆向图文] 向节表空白区添加代码。

[复制链接]
TImor 发表于 2018-2-3 00:21 | 显示全部楼层 |阅读模式

  菜鸟一只,最近一直在学PE,刚学的往节表空白区添加代码,就想水个贴,然后算是总结一下,大牛就别看了,太菜……

    用的软件是WinHex,OD,Petools,跟vs2013,感染的软件是本地的记事本notepad.exe

    这是很简单的一个感染,在打开程序之前加上弹窗。先执行我们的弹窗,之后再执行软件自身的代码。

     步骤如下:   

1、获取MessageBox地址,构造ShellCode代码.
2、E8 E9计算公式
3、在代码区手动添加代码
4、修改OEP,指向ShellCode.

    1,用OD随便打开一个软件,BP MessageBoxA,去断点窗口,查看MessageBox的地址,我的地址是77d507ea ,而MessageBox需要四个参数,在反汇编窗口可以看到它的硬编码为6A 00 6A 00 6A 00 6A 00 E8 Address;

    2,E8 ,E9 是硬编码的 Call 和JMP,程序在硬盘中存储的方式。这是我写的一个获取这两个硬编码的测试代码:


#include<stdio.h>void Function(){        printf("123");};//执行完这个函数之后会有返回到之前的位置的跳转代码字节为 E9 D5 05 00 00int main(){                Function();//反汇编(只显示代码字节)E8 A8 FD FF FF                return 0;}

但是这个地方E8 之后的地址并不是准确的跳转地址,含有一定的计算关系,计算公式为:

X = 想要跳转的地址 - E8运行时的地址+5;

    3,这个时候就可以用WinHex在代码区的空白处添加代码。  首先用PEtools打开notepad,查看第一个节表的信息,跟SectionAlignment和FileAlignment的大小(因为最后改的代码的地址必须是ImageBuffer的时候的地址,所以一定要看文件对齐跟内存对齐),找到第一个节表也就是代码区节表的信息找到VirtualSize跟PointerTORawData来确定代码区的尾部,看下代码区剩余的空间大小是不是可以添加我们的代码。

    准备工作做完可以开始添加代码,根据第一步构造的ShellCode 我们添加的代码的格式为:

6A 00 6A 00 6A 00 6A 00 E8 __ __ __ __  E9 __ __  __ __空白处是需要我们计算的地址 E9的原因是返回原始的OEP 不能影响程序本来的执行顺序。

    现在开始计算地址,因为需要在的是运行状态的达到我们感染的目的,所以地址必须是按照运行状态的计算,首先计算E8 之后的Address  而这个时候E8的地址是需要计算出程序在ImageBuffer中的地址:  

计算方式为:   E8运行状态的地址 =  E8此时地址+ImageBase + SectionAlignment-FileAlignment

之后根据公式 X = 想要跳转的地址 - E8的地址+5;

计算出来 在我的电脑上是76 D4 80 8D

既E8 8D 80 D4 76。现在再计算E9 以后的地址,同样是根据公式   X = 想要跳转的地址 - E8的地址+5;

为  E9运行状态的地址 =  E9此时地址+ImageBase + SectionAlignment-FileAlignment

此时的X就是 X= 原始的OEP - E9运行时的地址+5这个地方的目的是执行完之后调到原始OEP


                               
登录/注册后可看大图

这是我的计算完成添加之后的样子。

CTOK@@64YEH%VB[H2ARW9KR.png

4,修改OEP让程序从我们改过的地方开始运行  通过PEtools查找可以看到是739D


                               
登录/注册后可看大图

VK`KS6Y`7VOC@3(5FL{]J)6.png



                               
登录/注册后可看大图


然后用WinHex修改程序的入口点 既为第一个6A的地址

  7B50+(SectionAIignment-FileAlignment)= 8750


                               
登录/注册后可看大图

VK`KS6Y`7VOC@3(5FL{]J)6.png

在可选PE头部找到73 9D 改成


                               
登录/注册后可看大图

0M2~M@IO]P58BSGYHEFEU54.png

保存文件,大功告成。打开文件实验一下


                               
登录/注册后可看大图



                               
登录/注册后可看大图

A3(1RY8`6L]X[]I9M%8O~Q0.png @J48@N8AOJS37O]0]S~GA}S.png


正常运行,并且会先运行我们添加的代码,点击确定之后可以功能使用正常。

嘿嘿,比较简单,算是水一贴,刚开始学,算是找个存储空间……如果有哪个地方不对,欢迎挑错~~~


评分

参与人数 10威望 +1 HB +30 THX +3 收起 理由
虚心学习 + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
一路走来不容易 + 2
消逝的过去 + 2
冷亦飞 + 1
zyyujq + 1
liugu0hai + 1 + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
叶落花开 + 1
lies + 1
越宝 + 1
Shark恒 + 1 + 20 + 1 [快捷评语] - 评分=感恩!简单却充满爱!感谢您的作品!

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
Shark恒 发表于 2018-2-3 09:54 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
头像被屏蔽
别管我了行 发表于 2022-4-28 05:35 | 显示全部楼层

提示: 作者被禁止或删除 内容自动屏蔽
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
zg2600 发表于 2022-5-29 13:58 | 显示全部楼层

[吾爱汇编论坛52HB.COM]-感谢楼主热心分享,小小评分不成敬意!
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
zyyujq 发表于 2022-5-29 16:35 | 显示全部楼层

学习学习
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
曾经沧海 发表于 2023-1-12 13:09 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
一生逍遥 发表于 2023-1-26 00:53 | 显示全部楼层

牛啊,感谢分享
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

警告:本站严惩灌水回复,尊重自己从尊重他人开始!

1层
2层
3层
4层
5层
6层
7层

免责声明

吾爱汇编(www.52hb.com)所讨论的技术及相关工具仅限用于研究学习,皆在提高软件产品的安全性,严禁用于不良动机。任何个人、团体、组织不得将其用于非法目的,否则,一切后果自行承担。吾爱汇编不承担任何因为技术滥用所产生的连带责任。吾爱汇编内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如有侵权请邮件或微信与我们联系处理。

站长邮箱:SharkHeng@sina.com
站长QQ:1140549900


QQ|RSS|手机版|小黑屋|帮助|吾爱汇编 ( 京公网安备11011502005403号 , 京ICP备20003498号-6 )|网站地图

Powered by Discuz!

吾爱汇编 www.52hb.com

快速回复 返回顶部 返回列表