吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1577|回复: 4
收起左侧

[讨论] The036. 吾爱培训,《03:改头换面之修改版权和资源》讲师:Kido 进阶修改[消息弹窗]

[复制链接]
chuiyan121 发表于 2022-2-13 17:35
本帖最后由 chuiyan121 于 2022-2-13 21:00 编辑


The036. 吾爱培训,《03:改头换面之修改版权和资源》讲师:Kido 进阶修改[消息弹窗]
关于吾爱破解论坛官方入门教学培训第一期,我的学习记录,如有疑问欢迎交流指正。^_^
这节课是实战添加一个MessageBox弹窗,包含了添加API函数,OD自定义参数等,属于进阶内容。

1、还是用上一集The035修改后的程序1.exe作为例子,使用工具Stud_PE载入1.exe,在函数选项卡里找User32.dll,展开查找API函数MessageBoxA,会发现只有MessageBoxW  ord:511 rva: 0004D36C,其实这个是Unicode类型的弹窗,也可以使用,为了学习,还是自己添加一个MessageBoxA的函数吧。


2、添加API函数的方法为:右键->Add New Import,添加新的输入函数。


3、Dll选择,到系统盘(C盘)目录下的system32文件夹下,选择user32.dll文件打开。


4、Dll选择好了,接下来选择函数,在弹出的列表中选择MessageBoxA,按下添加到列表按钮,按添加按钮。


5、在函数列表底部,会出现刚刚添加的函数,函数信息为:MessageBoxA  ord:0 rva: 00084123。那么可以得出相对地址为:00084123(rva) + 00400000(基址) = 00484123(va)。


6、函数添加了,需要在区段中增加一块空的区域,存放调用弹窗的数据。大牛说在程序代码里找一块空的区域也行,不过新手还是重新开辟一个区段,防止修改失误程序崩溃。接下来在区段选项卡右键->New Section,创建新的节。


7、区段名自定义,原始大小和虚拟大小都改成1000,懒办法,其实不需要这么多空间。选择用空字节填充区段,增加。


8、OD载入1.exe,Alt+M打开内存窗口,双击新添加的区段到达数据窗口,记录地址00485000。


9、Alt+C到达CUP窗口,Ctrl+G转到00485000处,看到全是空数据。双击第一行,输入push 0,回车4下,4个空参数就添加好了,然后输入call [00484123]回车,添加调用MessageboxA函数。此时弹窗的框架就添加好了。


10、接下来添加弹窗的具体的参数如下:
push Style(0)
push Title
push Text
push hOwner(0)
Call [00484123]
通过上面的弹窗参数模板,第一个参数为Style(弹窗类型),设置为0;

第二个参数为Title(弹窗标题),设置为52PojieWoLaiLa。这里的内容不能直接输入,需要将内容存放在一个空的内存地址中,然后调用此地址。这里选择0048501A这个地址存放标题内容,方法为:在数据窗口Ctrl+G转到0048501A地址。

在数据窗口选择数据长度,Ctrl+E打开编辑窗口,由于调用的是MessageBoxA函数,因此使用ASCII类型输入内容,确定后添加完毕。

第三个参数为Text(弹窗正文内容),采用第二个参数同样的方法,添加对应内容为:I’m Chuiyan。

内容都添加完毕了,下面来调用这些内容。双击00485002处输入push 0048501A,然后下一个参数输入push 0048502A,这样参数就调用成功了。

第四个参数hOwner(窗口句柄),设置为0。第五个参数调用Message box函数,设置为:Call [00484123]。

所有参数改完后,根据程序运行的流程,弹窗完成后需要继续运行原程序,因此要在call后面需要jmp到原程序入口点0003A1B4(入口地址)+ 00400000(基址)= 0043A1B4(相对虚拟入口地址)。


11、以上弹窗内容全部设置完成,选择修改过的所有地方,保存文件为2.exe。发现程序可以运行,但并没有弹窗。


12、原因是程序的入口点还是原来的,并没有调用我们增加的弹窗。下面继续修改程序入口点为我们新增的内容,地址为:00485000(新入口地址)- 00400000(基址)= 00085000,或者用Rva<=>Raw工具如下图计算相对虚拟地址。将计算的结果00085000填到入口点(rav)处,按下保存到文件按钮,保存完毕。


13、运行2.exe,发现成功弹出消息窗口,确定后弹出原程序,添加弹窗功能完成。^_^


经过一顿折腾,发现一个小窍门,用PEID或者Stud_PE软件分析出来的地址,在OD里push、call、jmp时都需要加上基址,否则程序会调用不到内存崩溃,如果地址正确,OD里的注释处一般会出现对应的注释内容。





免费评分

参与人数 4吾爱币 +4 热心值 +4 收起 理由
751811164 + 1 + 1 谢谢@Thanks!
shihuyuan + 1 + 1 真的不错赞!!!
zz08808 + 1 + 1 热心回复!
wapj152321 + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

wapj152321 发表于 2022-2-13 17:50
收益匪浅
 楼主| chuiyan121 发表于 2022-2-13 18:28
头像被屏蔽
yyb1813 发表于 2022-2-13 21:32
shihuyuan 发表于 2022-2-13 23:55
属实涨姿势了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 22:22

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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