吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 21419|回复: 69
收起左侧

[原创] 梦真QQ群发 软件的破解+过重启验证

  [复制链接]
今夕望月 发表于 2011-5-13 22:19
本帖最后由 今夕望月 于 2011-5-13 22:29 编辑

没有任何的企图,破之只是为了交流。。软件很简单,就像我一样菜。。不知道有人发过没,如果有人发过就算我抄袭好了
【软件名称:】梦真QQ群发器
【官方网站】去百度吧
【工具】peid+od
开始。。。
  首先用peid 查壳,惯例 QQ截图未命名1.jpg


  简单的壳,大家都会脱,直接ESP定律马上就到OEP,脱掉之后查是C++写的,实际上看看文件夹里“krnln.fnr”这样的文件就知道是E语言写的了。
多的不说,开始开刀。
OD加载,运行,注册, 弹出错误框,到OD中F12暂停,然后查看调用堆栈,发现这个 QQ截图未命名2.jpg
双击进入,看到
1006249E    6A 00           push    0
100624A0    FF15 9C160C10   call    dword ptr [<&USER32.MessageBoxA>>; USER32.MessageBoxA
100624A6    5F              pop     edi                              ; 这里下个断
100624A7    83F8 03         cmp     eax, 3
100624AA    5E              pop     esi
100624AB    75 0F           jnz     short 100624BC
100624AD    8B4C24 68       mov     ecx, dword ptr [esp+68]
然后F9让程序跑起来,但提示框中点确认,程序就断了,取消断点,我们F8往下走真到回到程序领空

10028E39    8B4424 0C       mov     eax, dword ptr [esp+C]
10028E3D    8B5424 10       mov     edx, dword ptr [esp+10]
10028E41    8B4C24 14       mov     ecx, dword ptr [esp+14]
10028E45    83C4 18         add     esp, 18
10028E48    C3              retn
先回到了这里,继续F8走,就返回到这里了

005B799E    68 03000000     push    3
005B79A3    BB 00030000     mov     ebx, 300
005B79A8    E8 1E670000     call    005BE0CB                         ; 错误
005B79AD    83C4 28         add     esp, 28
005B79B0    8B5D FC         mov     ebx, dword ptr [ebp-4]
005B79B3    85DB            test    ebx, ebx
这里直接看是很难找到怎么跳过来的,我们一路往上翻,发现有些有趣的东西
005B78BA    6A 00           push    0
005B78BC    68 05A04F00     push    004FA005                         ; ASCII "false"这个很可疑哦
005B78C1    68 04000080     push    80000004
005B78C6    6A 00           push    0
005B78C8    8B45 F0         mov     eax, dword ptr [ebp-10]
005B78CB    85C0            test    eax, eax
005B78CD    75 05           jnz     short 005B78D4
这里,我们可以在程序文件夹里看见key正是保存注册码的键值(是键值么,我不知道INI里怎么叫),这里估计是成功后保存键值
005B77F0    B8 0B494F00     mov     eax, 004F490B                    ; ASCII "KEY"
005B77F5    8945 E8         mov     dword ptr [ebp-18], eax
005B77F8    8D45 E8         lea     eax, dword ptr [ebp-18]
005B77FB    50              push    eax
005B77FC    E8 D72CFEFF     call    0059A4D8                         ; 推测是保存键值
005B7801    8B5D E8         mov     ebx, dword ptr [ebp-18]
005B7804    85DB            test    ebx, ebx
我们继续往上看,true 是不是很心动,
005B771F    68 04000080     push    80000004
005B7724    6A 00           push    0
005B7726    68 E39F4F00     push    004F9FE3                         ; ASCII "ture"
005B772B    68 04000080     push    80000004
005B7730    6A 00           push    0
005B7732    8B45 F0         mov     eax, dword ptr [ebp-10]
005B7735    85C0            test    eax, eax
这里,想到了什么?网络验证?
005B76AA    3BC8            cmp     ecx, eax
005B76AC    0F8F B7020000   jg      005B7969
005B76B2    8965 EC         mov     dword ptr [ebp-14], esp
005B76B5    FF75 FC         push    dword ptr [ebp-4]
005B76B8    68 B69F4F00     push    004F9FB6                         ; ASCII "http://www.qqjilu.com/soft/QQqf/GetTimes.asp"
005B76BD    B8 65000000     mov     eax, 65
005B76C2    E8 F8690000     call    005BE0BF
005B76C7    3965 EC         cmp     dword ptr [ebp-14], esp
005B76CA    74 0D           je      short 005B76D9
005B76CC    68 06000000     push    6
继续往上看看这里
005B7654    3BC8            cmp     ecx, eax                         ; eax与1比较
005B7656    0F8F 17030000   jg      005B7973                         ; 这里跳走了   这个跳完全可以跳过去下面的网络验证等等好多东西,推测是关键,实际上多次实验发现这里的确是关键,不跳就注册成功了
005B765C    68 04000080     push    80000004
005B7661    6A 00           push    0
005B7663    68 D9494F00     push    004F49D9                         ; ASCII "101700000101700000"
005B7668    68 01000000     push    1
005B766D    BB E0090000     mov     ebx, 9E0
005B7672    E8 546A0000     call    005BE0CB
005B7677    83C4 10         add     esp, 10
005B767A    33C9            xor     ecx, ecx
005B767C    3955 F8         cmp     dword ptr [ebp-8], edx
005B767F    7F 08           jg      short 005B7689
还是继续往上看看吧
005B75FE    3BC8            cmp     ecx, eax
005B7600    0F8F 77030000   jg      005B797D                         ; 跳到失败处,改了就成功 。。这个地方第一次是不跳的,程序还会跳会这里一次,第二次就不跳了,要改。起初以为这里是关键,后来发现其实                         改上面005B7656那个跳就够了
继续往上,看见好多浮点,让人感觉像是注册码的事
005B74F1    83C4 10         add     esp, 10
005B74F4    8945 E4         mov     dword ptr [ebp-1C], eax
005B74F7    DB45 E4         fild    dword ptr [ebp-1C]               ; 有什么处理?
005B74FA    DD5D E4         fstp    qword ptr [ebp-1C]
005B74FD    DD45 E4         fld     qword ptr [ebp-1C]
005B7500    DC25 F90B4F00   fsub    qword ptr [4F0BF9]
005B7506    DD5D DC         fstp    qword ptr [ebp-24]
005B7509    DD45 DC         fld     qword ptr [ebp-24]
再看到上面,这里基本上就上判别注册码的开始了
005B743B    68 B00D0152     push    52010DB0
005B7440    E8 986C0000     call    005BE0DD                         ; 取注册码  。。。
005B7445    83C4 10         add     esp, 10
005B7448    8945 EC         mov     dword ptr [ebp-14], eax
005B744B    C745 E4 0000000>mov     dword ptr [ebp-1C], 0
005B7452    C745 E8 0000000>mov     dword ptr [ebp-18], 0
005B7459    6A 00           push    0
005B745B    FF75 E8         push    dword ptr [ebp-18]
005B745E    FF75 E4         push    dword ptr [ebp-1C]
005B7461    8D45 EC         lea     eax, dword ptr [ebp-14]
005B7464    50              push    eax
005B7465    E8 BB6EFFFF     call    005AE325                         ; 注册码运算?,好多重复的浮点  。。005AE325记着这个地址,重启时会有大发现.
005B746A    8945 E0         mov     dword ptr [ebp-20], eax
005B746D    8B5D EC         mov     ebx, dword ptr [ebp-14]          ; 注册码
005B7470    85DB            test    ebx, ebx
好了,我们就直接 断在 005B7656 ,再输入注册码,确定,断在这里,不让它跳,OK,注册成功。
我们重新载入程序,这时怎么了?

QQ截图未命名3.jpg
OD报错了!断点不可用吗,我们去断点列表,发现断点被禁止了,而且反汇编也不一样!

这怎么办?先运行下,再看断点,发现反汇编又一样了,这时把断点激活,程序一样可以断下。
估计程序开始得要解码下,不知道是不是壳没脱干净的原因,我不知道,,先不管这个
**********************************
下面说重启验证的问题,软件重新运行继续提示未注册,那我们上面做的工作不是白费了?  不会这么恶心,程序作者很仁慈的。

我们知道是INI了,所以我们下断bp GetPrivateProfileStringA,运行,断啊断啊断,知道堆栈中键值为key的时候返回。这是个漫长的过程。。。
005971A7    68 04000000     push    4
005971AC    BB C8080000     mov     ebx, 8C8
005971B1    E8 156F0200     call    005BE0CB                         ; 读ini的作用
F8单步,
005ACFEB    E8 BD100100     call    005BE0AD
005ACFF0    83C4 04         add     esp, 4
005ACFF3    58              pop     eax
005ACFF4    8B5D E8         mov     ebx, dword ptr [ebp-18]
005ACFF7    8903            mov     dword ptr [ebx], eax
005ACFF9    E8 50100000     call    005AE04E                         ; 时间长了一点,很可疑,进去看看
005ACFFE    8B1D E005BC00   mov     ebx, dword ptr [BC05E0]
005AD004    895D E8         mov     dword ptr [ebp-18], ebx
005AD007    8B5D E8         mov     ebx, dword ptr [ebp-18]
005AD00A    833B 00         cmp     dword ptr [ebx], 0
这么个情况。。。


完全一样。。。好了。无压力了,你知道怎么弄的
005AE26F    50              push    eax
005AE270    3BC8            cmp     ecx, eax
005AE272    0F8F 80000000   jg      005AE2F8                         ; 这个不跳就可以了
005AE278    68 04000080     push    80000004
005AE27D    6A 00           push    0
005AE27F    68 D9494F00     push    004F49D9                         ; ASCII "101700000101700000"
005AE284    68 01000000     push    1
005AE289    BB E0090000     mov     ebx, 9E0
005AE28E    E8 38FE0000     call    005BE0CB
005AE293    83C4 10         add     esp, 10
005AE296    33C9            xor     ecx, ecx
005AE298    3955 F8         cmp     dword ptr [ebp-8], edx
005AE29B    7F 08           jg      short 005AE2A5
这里改过以后程序就直接会进去主界面,而且注册按钮是灰色的。。程序就算是搞定了吧
****************************************************
另外由于程序存在一个解码问题,所以如果想破解的话还是打内存补丁比较好keymake测试通过。。


完了。。写这玩意好累











免费评分

参与人数 1热心值 +1 收起 理由
missviola + 1 感谢您的分析,[吾爱破解]有你更精彩!

查看全部评分

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

Emil 发表于 2011-5-13 22:31
很好 很详细 谢谢分享
54rock 发表于 2011-5-13 22:31
kubi 发表于 2011-5-13 22:46
 楼主| 今夕望月 发表于 2011-5-13 23:56
回复 kubi 的帖子

这还不懂啊。。。走一遍就懂了
 楼主| 今夕望月 发表于 2011-5-14 10:33
其实断下来可以试试堆栈返回的
kingbaby 发表于 2011-5-14 11:03
回复 今夕望月 的帖子

这个我以前也搞过  不过是爆破的  所以那个去验证的不是很懂。。
 楼主| 今夕望月 发表于 2011-5-14 11:23
回复 kingbaby 的帖子

这个的确是爆破啊
792404868@qq.co 发表于 2011-5-14 19:37
很好的东西 谢谢了。
snfqpshn 发表于 2011-5-14 20:00
你太牛了,可惜我也看不懂
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

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

GMT+8, 2024-4-29 07:20

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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