吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5053|回复: 8
收起左侧

[原创] 鱼C逆向检验程序 改标题教程&&一些我不懂的问题

[复制链接]
currwin 发表于 2013-12-30 12:05
本帖最后由 currwin 于 2013-12-30 14:03 编辑

首先,说到标题名字什么的,最简单的便是直接搜索相关字符串了,恩恩,没有,看来这作者也留了一点心眼。没关系我们还有SetWindowTextASendMessageA这两大神器,这里,使用SetWindowTextA就足够了,停在这里
捕获.PNG
      Alt+F9返回到程序领空
捕获3.PNG
此时,可以想到只要改变在地址006B610C中参数push的值的话就可以改变标题了。不过看一看参数入栈时的push [arg.2],这货居然入栈堆栈的地址了!恩,那么这里一定是CALL中的子CALL,我们向上翻一下,果然,显示下面显示出一堆调用源头,没办法,在这里再浪费时间也是白费心机,单步出去吧。出去后发现又是一个子CALL,再次步过。终于在我们的面前出现了主程序。
捕获4.PNG
   奇怪,怎么会是一片平原?难道就没有一些类似入栈相关字符串的操作的地方么,至少给我来一点起伏好不好!!!搜索一下字符串,依然什么都没有!!
捕获14.PNG
难道是加密的字符串??我们重启程序,在关键CALL附近找找。恩恩,还是连条草都没有,既然如此,那么我们就深入关键CALL中,寻找那一朵红花。
捕获8.PNG
没走几步就到了
捕获9.PNG
到这里就一目了然了,用lstrcpy复制字符串给eax所指向的地址,紧接着马上利用eax来改变标题,这就完成了标题的设定。那么我们只要改变该地址的字符串就可以达到我们想要改变标题的目的了。但这可是一个子CALL啊,有非常多的地方调用到这里,总不能修改这吧!

现在让我们来跟踪这个神奇的字符串,push dword ptr ds:[esi+0xAC]是一个相对寻址,难不成这字符串的位置也是动态的?我们数据窗口中跟随。注意这里是lstrcpy入栈的一个字符串指针参数,所以我这里跟随的地方应该是 d 021B7158

捕获10.PNG
看到这个地址,还真心是令我心灰意冷了,这都不知道超出程序段几条街了。不过,细心的同学可能就会发现,线索就在这下面不远。一个在主目录下Local\License.ini的文件中。果不其然,这个文件存储了我们注册信息。汗一个,也不能改这个文件。没关系,只要知道有这个文件存在就已经是一个重大突破了。有兴趣的同志可以在这里进行突破,重载程序后搜索字符串License.ini下断,这以后便是一堆算法了。爆破后就可以达到通过修改License.ini里面的信息来达到修改文件标题的作用了。我这里并不打算爆破它。而是打算修改这个字符串。
可以看到,这个字符串是从文件中读取进来的,每一次所在的位置都会改变,并且它会直接用于改变软件标题,所以直接改变它是不可能的。恩,这个时候应该怎么做呢。。。。。。好了,我们来写一个内存补丁吧!!
因为不能够直接修改这个子CALL中的内容,所以我们就在外面主程序中的关键call中进行patch
首先,我们往后翻,在data段中找到一段空数据段来写入我们想要的数据,这里,我使00729E80,直接二进制编辑写入自己的标题。
捕获15.PNG


接着在text段中找到一段空数据写入我们要注入的代码,恩,就选在006E1F00吧。我们的目的是令00729E80所指的字符串覆盖它原先的字符串,那么我们要先找到他原来的字符串的位置。翻了翻代码,发现是push dword ptr ds:[esi+0xAC],然后往前面找,还有个mov ecxedi   mov esiecx,所以综合来说就是ds:[edi+0xAC], 故此,代码如下:
LOOP:
Mov esi,edi
Mov ebx,ds:[esi+0xAC]
Mov edx,00729E800
Xor ecx,ecx
Mov al,byte ptr ds:[ecx+edx]
Mov byte ptr ds:[ecx+ebx],al
Cmp al,0x0
Jz END
Inc ecx
Jmp LOOP
END:
因为是Patch的代码,所以要保证Patch前后各寄存器的值不变,并且保证Patch的地方只运行一次,所以最终的代码如下:
捕获16.PNG


最后,直接修改006C018C的关键CALLjmp 006E1F00 我们想要的地方,就大功告成了。


捕获17.PNG
虽然是成功了,但我还是有一点问题,希望大牛们能够不吝赐教。
①我本来想用kernel32.lstrcpyA来进行字符串的复制,结果产生错误了,这是为什么?
Patch后我本来想直接还原原来的CALL,于是用
Mov dword ptr ds:[006C018C],00 1C A2 E8
Mov byte ptr ds:[006C0190],00
结果产生写入违规的异常,这又是发生了什么问题?
③貌似程序有对代码进行检测,patch后的程序在打开后会自动把输入焦点交给打开它的文件夹,这种情况应该如何解决?
最后,发一个破解后的链接
免CB 传送门Patch: http://pan.baidu.com/s/1kY9hO
源安装文件:http://pan.baidu.com/s/1eQtDPQU

链接.txt

62 Bytes, 下载次数: 2, 下载积分: 吾爱币 -1 CB

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

1354669803 发表于 2013-12-30 12:10
我都要哭了 这么深奥的补码...我一点都不懂
马斯维尔 发表于 2013-12-30 12:18
xhy 发表于 2013-12-30 12:22
3765999 发表于 2013-12-30 13:50
Ashampoo_Snap_2013.12.30_13h49m53s_001_.png 什么情况·!
 楼主| currwin 发表于 2013-12-30 13:53
1354669803 发表于 2013-12-30 12:10
我都要哭了 这么深奥的补码...我一点都不懂

请大神赐教。。
 楼主| currwin 发表于 2013-12-30 13:56
3765999 发表于 2013-12-30 13:50
什么情况·!

这个只是单独的patch后的主程序,源程序需要安装,安装后有10来mb,挺大的。
A-Game 发表于 2013-12-30 18:32
完全膜拜中啊。
boyljx 发表于 2014-1-10 23:16
支持大牛
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-25 16:01

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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