X86逆向8:向程序中插入新区段

本节课咱们不去破解程序,本节课学习给应用程序插入一些代码片断,这里我就插入一个弹窗喽,固然你也能够插入一段恶意代码,让使用的人中招, 这里有不少原理性的东西我就很少罗嗦了毕竟是新手入门教程,若是想去了解工具的原理的话能够去系统学习PE文件结构的一些内容,好了废话很少说直接开搞。编辑器

------------------------------------------------------------
本章难度:★★★☆☆☆☆☆☆☆
课程课件:CM_01.zip
------------------------------------------------------------函数

 

1.直接打开OD,载入这个程序,咱们首先来记下【00460FE1】这个OEP地址,后期会用到。工具

 

2.关闭OD,打开【Stud_PE_chs.exe】这个PE编辑工具,将CM拖入,而后选择区段,右键,新的区段。学习

 

3.选择添加新区段之后,将区段命名为【.hack】,区段的大小为【1000】,最后点击加入按钮,下方则会显示一个.hack新段。blog

 

4.而后选择函数,添加新的输入表。教程

 

5.选择【添加新的输入表】会弹出如下菜单,直接点击【dll选择】,而后选择【MessageBoxA】,直接加入到清单中,这里为啥是user32.dll学过前面课程的你应该不须要我解释了。ip

 

6.而后添加之后,能够在最下方看到【user32.dll】,咱们紧接着记下它的RVA地址【000BF123】。字符串

 

7.一切准备就绪以后,咱们关闭这个PE文件编辑器,直接打开OD,而后按下【Alt + M】能够看到咱们新加的区段【.hack】,咱们直接记下它的地址【004BE000】。入门

 

8.接着按下【Alt+C】回到反汇编窗口,而后【Ctrl + G】输入刚才记下的那个区段首地址,【004BE000】,会发现是空的,没错这里就是咱们申请的那个1000字节的空间,待会要在这里作文章。原理

 

9.接着咱们来寻找MessageBox函数的地址位置,先计算一下,而后在数据窗口,按下【Ctrl +G】输入【004BF123】,将里面的地址取出来,这个地址就是MessageBox的地址。

 

10.接下来就是写入弹窗代码啦,先来看弹窗的调用参数,这里咱们直接照样子写就好,只是注意push的地方替换成咱们的字符串。

 

11.先来写入如下代码,用来临时占位置,这里的CALL的地址是【77D507EA】,JMP的地址是程序的原入口地址【00460FE1】

 

12.接着咱们来写入一些字符串内容,直接选中一段空区域,而后按下【Ctrl + E】,输入以下字符串内容,并记下【004BE01C】

 

13.回到上面的弹窗代码上,依次替换两个push的内容,最终代码以下。

 

14.直接复制并保存文件

 

15.最后咱们修正如下入口地址,此处的【004BE000】就是咱们附加区段的地址,转换后将RVA(相对虚拟地址)复制到入口点上面,直接【储存到文件】

 

16.运行新的程序会发现,程序先弹出hello lyshark,而后才会载入源程序,若是此时是一段下载后门的代码,那就刺激了。

这里我给你们写了一段能够下载恶意程序的汇编代码片断,你只须要替换里面的网址便可使用,请勿干坏事!!!

 

写教程不容易,转载请加出处,您添加出处,是我创做的动力!

相关文章
相关标签/搜索