爆破某apk逆向软件pro版(G..D...A3.87版)
本帖最后由 无闻无问 于 2021-1-22 15:45 编辑一个很牛的软件,有免费版和专业版,可分析、修改apk文件。经过多年更新和维护,已经很不错了…… 更多情况,请登录官网了解!
一、加壳了,区段情况。
二、未注册情况。
1. 帮助菜单中有注册输入。
2. 打开一个apk或其它功能,会提示未注册。
3. 每隔一定时间会提示未注册,并退出软件。
三、去除注册提示。
文件—打开文件,选择一个apk,会出现注册提示框,功能不可用。
如何定位,方法有很多:如可搜索英文提示字符串后,下内存访问断点定位。
我这里就用比较快的暂停法。当然,还有其它方法,不过,下对话框等断点会无效……
文件—打开文件,选择一个apk,待出现注册提示框,暂停程序,堆栈中找可疑情况……
跟过去,可看到mfc的模态对话框调用……
堆栈中再回溯往上找一层,看到未注册提示内容……
一个关键值判断:0044AAB0 |.39B3 78090000 cmpdword ptr ds:,esi; GDAE3_87.005F660C
说明中的值,很可能就是注册与未注册的保存地方……
选中它,右键—查找参考---地址常量……
比较和取值的都不管,只关心赋值,赋值两句下断即可……
重载程序(为什么要重载?因为有重启验证,搞定重启验证,一切都解决了)……
因为有壳,重载程序,断点会被禁用,所以得找一个时机启用断点……
方法有很多,我这里主要用了在资源段下内存访问断点的方法,待内存断点断下后,启用断点,再将资源段内存断点删除……
断下了,在这里:
Eax为0,给了目标地址,eax是这句计算的:
00442235 25 FF000000 and eax,0xFF
上方还有个call,关键call,进去后发现很多地方调用,且会有不同的返回值,所以里面不好动,就改这一句了,将and 指令修改为or 即可……
修改后进入程序,文件—打开文件,选择一个apk,没有提示了……
再看看注册菜单,成灰色了,说明重启验证去除了……
四、解决定时验证。
每隔一段时间,会触发验证,再次提示未注册并自动退出……
有趣的是,你不打开文件分析,它基本不提示……
猜想,这种验证多半与创建线程CreateThread和时钟函数SetTimer有关……
下CreateThread函数断点。<0x70000000加上条件断点,只关注程序创建线程,系统的不管……
断下后,选中线程回调函数在反汇编窗口中跟过去,段首下断……
经过跟踪,目前我发现有3个地方创建了线程(我测试了一小段时间,不排除还有)……
3个线程回调函数跟过去,功能差不多,具体什么功能没有详细分析,但看代码较短,应该就是一种反调试手段,究竟是不是,等待大家分析呵……
这里,直截了当,回调函数头部retn……
大概3处:
---->1
00445A10 55 push ebp ;retn 8,retn… =======C2 0800
00445A11 8BEC mov ebp,esp
00445A13|.81EC DC010000 sub esp,0x1DC ;retn 0x8
00445A19|.53 push ebx ;GDAE3_87.0044F28C
00445A1A|.56 push esi ;msvcrt.7779317C
00445A1B|.57 push edi
00445A1C|.50 push eax
00445A1D|.55 push ebp
00445A1E|.E8 02000000 call GDAE3_87.00445A25
00445A23\.C3 retn
55 8B EC 81 EC DC 01 00 00 53 56 57 50 55 E8 ???????? C3
---->2
0044BEE0 55 push ebp ;retn 0x10 =======C2 1000
0044BEE1 8BEC mov ebp,esp
0044BEE3|.81EC 74010000 sub esp,0x174 ;retn 0x10
0044BEE9|.53 push ebx ;GDAE3_87.0044F28C
0044BEEA|.56 push esi ;msvcrt.7779317C
0044BEEB|.57 push edi
0044BEEC|.53 push ebx ;GDAE3_87.0044F28C
0044BEED|.51 push ecx
0044BEEE|.50 push eax
0044BEEF|.55 push ebp
0044BEF0|.E8 04000000 call GDAE3_87.0044BEF9
0044BEF5\.C3 retn
55 8B EC 81 EC 74 01 00 00 53 56 57 53 51 50 55 E8 ???????? C3
---->3
0044C520 55 push ebp ;retn 10 =======C2 1000
0044C521 8BEC mov ebp,esp ;retn 10
0044C523|.81EC 30010000 sub esp,0x130 ;retn 10
0044C529|.53 push ebx ;GDAE3_87.0044F28C
0044C52A|.56 push esi ;msvcrt.7779317C
0044C52B|.57 push edi
0044C52C|.53 push ebx ;GDAE3_87.0044F28C
0044C52D|.51 push ecx
0044C52E|.50 push eax
0044C52F|.55 push ebp
0044C530|.E8 04000000 call GDAE3_87.0044C539
0044C535\.C3 retn
55 8B EC 81 EC 30 01 00 00 53 56 57 53 51 50 55 E8 ???????? C3
Ok,全部修改后,测试了一会儿,发现基本没问题了……
最后打补丁,用“PYG内存破解补丁制作工具”制作补丁,因为有壳,所以要hook 一个时机,hook哪个dll和函数,大家自己测试,我的配置如下:
由于测试时间不是很长,部分修改处也没有详细分析代码功能,故可能还有问题,敬请大家测试……
欢迎回帖交流,说得不当的,欢迎大家指正,谢谢!
最后说明,不提供补丁!不提供补丁!不提供补丁!敬请理解! @无闻无问
看了兄台的贴子
又想到了美剧霹雳游侠
又想到了自己贴子中想到的新内容
于是我编程开发了新式工具、再加上这位仁兄的加壳破解方式,我想到了进级修改的自动化工具。 冥界3大法王 发表于 2021-1-26 13:43
@无闻无问
https://bbs.pediy.com/thread-264993.htm
Keygen 能否改改?
看雪版主开发的软件,居然破解版发到他门口了…这些兄弟是在挑衅啊:lol 很有用,感谢分享!! 学习技术就得多交流 感觉很强大的样子 大佬厉害!!!!收藏了 大佬这个好学不
感谢楼主分享 這個apk逆向軟件看起來很緑啊! 这才是真正的大佬级别 这东西我都不知道普通版和pro版本有什么区别。