吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5359|回复: 6
收起左侧

[原创] 160 crackme 之 050---DueList.5.exe 的分析和patch

[复制链接]
solly 发表于 2019-4-12 00:35
本帖最后由 solly 于 2019-4-29 23:39 编辑

160合集中这个Crackme也还没有説明,这个CM主要是去NAG 和 PATCH,没有算法
并且使用汇编语言写的,代码非常精简,虽然有一些乱七八糟的JMP,
但范围有限,很好分析。
先启动看看有什么:
1.png
首先来了一个NAG,提示“Unregistered”。
2.png
再来一个主界面提示“Unregistered”,主要就是这两个东西,需要通过patch来处理掉。
看看有没有壳,要patch的一般会有壳,增加点难度。
3.png
果然提示有壳,并有建议一些脱壳工具,我用  RL!dePacker v1.5 试了一下,没有成功。
于是用OD载入看看:
4.png
看到前排一排整齐划一的push,那只要去找对应的pop了,往下翻吧。。。。。
5.png
一堆pop加上一个 jmp eax,就是这里啦;
6.png
定位到 JMP EAX 这一行,F4执行到此。然后一个F8,跳转。。。
7.png
来到这里,代码没有显示出来,应该是OD在前面读了节属性没有刷新,还是当作数据节在显示。
不管了,先脱壳吧:
8.png
选中“重建输入表”,并且要使用“方式2”,"方式1"不行。我试过了的。
保存脱壳后的CM后,再查壳看看:
09.png
没有壳了,显示是用汇编方式写的CM,用OD加载脱壳后的CM:
10.png
前面7行给变量初始化,没看出什么作用来。一路F8到 0040105C     jmp 004010C1,
一个跳转,跟随转过去看看:
11.png
直接来到了显示NAG的代码,因此只要修改前面那个跳转,就可以跳过NAG了。
NAG后就是显示主界面的对话框窗口了,因此跳转到 004010D7就可完美跳过NAG屏了。
13.png
直接在OD中修改,看看效果:
12.png
跳转已经指向NAG后面了,避开了NAG的显示,下面再看看如何去掉主界面的文本显示“Unregistered”。
根据对话框的 DlgProc 的地址参数,一路可找到其消息循环处理过程,可看到如下代码:
[Asm] 纯文本查看 复制代码
004010EF   >  817D 0C 11010>cmp dword ptr ss:[ebp+0xC],0x111     ;  0x111 代表 WM_COMMAND 消息
004010F6   .  74 52         je short unpacked.0040114A
004010F8   .  817D 0C 10010>cmp dword ptr ss:[ebp+0xC],0x110     ;  0x110 表示 WM_INITDIALOG 消息
004010FF   .  74 2F         je short unpacked.00401130
00401101   .  837D 0C 10    cmp dword ptr ss:[ebp+0xC],0x10      ;  0x10 表示 WM_CLOSE 消息
00401105   .  74 4F         je short unpacked.00401156
00401107   .  B8 00000000   mov eax,0x0
0040110C   >  5F            pop edi                              ;  ntdll.777EEEDD
0040110D   .  5E            pop esi                              ;  ntdll.777EEEDD
0040110E   .  5B            pop ebx                              ;  ntdll.777EEEDD
0040110F   .  C9            leave
00401110   .  C2 1000       retn 0x10
00401113   >  68 00200000   push 0x2000                          ; /Style = MB_OK|MB_TASKMODAL
00401118   .  68 01204000   push unpacked.00402001               ; |Title = "Duelist's Crackme #5"
0040111D   .  68 6A204000   push unpacked.0040206A               ; |Text = "Please send your patcher to [url=mailto:duelist@beer.com]duelist@beer.com[/url]! First 2 people get the crackme's source code..."
00401122   .  6A 00         push 0x0                             ; |hOwner = NULL
00401124   .  E8 42010000   call <jmp.&USER32.MessageBoxA>       ; \MessageBoxA
00401129   .  B8 01000000   mov eax,0x1
0040112E   .^ EB DC         jmp short unpacked.0040110C
00401130      68 50204000   push unpacked.0040205C ;  ASCII "Unregistered",  Patch 位置2:将 push 0x0040205C 改成 push 0x00402050
00401135   .  6A 00         push 0x0                             ; |wParam = 0x0
00401137   .  6A 0C         push 0xC                             ; |Message = WM_SETTEXT
00401139   .  6A 03         push 0x3                             ; |ControlID = 0x3
0040113B   .  FF75 08       push dword ptr ss:[ebp+0x8]          ; |hWnd = 80006010
0040113E   .  E8 3A010000   call <jmp.&USER32.SendDlgItemMessage>; \SendDlgItemMessageA
00401143   .  B8 01000000   mov eax,0x1
00401148   .^ EB C2         jmp short unpacked.0040110C

可见在处理 WM_INITDIALOG 消息的代码中,将界面和文本框内容改成了“Unregistered”了,
通过 SendDlgItemMessage 的最后一参数 push 0x0040205C 找到数据区:
14.png

在 0x00402050处,就有一个 Registered,如上图。只要把这个 push 0x0040205C 改成 push 0x00402050 就可以了。

修改后就是显示“Registered”了。

15.png

直接在 OD中修改,OD也提示指向字符串“Registered”了。
F9运行,进入CM,没有了NAG了,界面也显示如下了:
16.png
完毕!!!!!!
该CM由汇编代码编写,代码量很少,流程清楚,也没有算法。
完整代码总共也才360字节。就不贴上来了。
最后用16进制编辑器修改exe文件就完成了最终结果。

免费评分

参与人数 3吾爱币 +8 热心值 +3 收起 理由
pk8900 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
Hmily + 7 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
朱朱你堕落了 + 1 用心讨论,共获提升!

查看全部评分

本帖被以下淘专辑推荐:

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

头像被屏蔽
lxptyc 发表于 2019-4-12 07:09
提示: 作者被禁止或删除 内容自动屏蔽
DEFwa 发表于 2019-4-12 08:21
zhaolisheng 发表于 2019-4-12 09:30
guifa2014 发表于 2019-4-12 14:41
谢谢分享
hkyiyu 发表于 2022-3-15 21:52
我服了,原来license是唬人的,我把所有解密dll和函数的代码都翻遍了,都没找到判断的关键跳。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-12-22 15:58

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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