首页
论坛
课程
招聘
菜菜级选手破解手记献丑――QQ第六感
2005-3-18 03:24 10946

菜菜级选手破解手记献丑――QQ第六感

2005-3-18 03:24
10946
【软件名称】QQ第六感 V1.10
【软件大小】509 KB
【软件语言】简体中文
【应用平台】Win9x/NT/2000/XP
【软件简介】QQ第六感是一款QQ的辅助软件,用它可以查到同局域网内的其他机器上在线QQ的号码
【软件限制】未注册用户只能显示QQ号码的前五位
【破解说明】好久不练,弄来暖手。水平太差,没看出算法,只好暂时先改一下了。第一次在程序空白处加入附加指令来执行,不知是否稳定,经自己测试无异常,破解后可使用自己的名字+固定注册码123456-890ABCDE-12345678来注册。文笔也不好,笔记可读性不强,见笑
【使用工具】PEiD,stripper,OD修改版,HEdit

by DimRacker

用PEiD体检,是ASPack 2.12加的壳,stripper很容易就搞掉。
在OD里打开SixthSense.exe,用Ultra String Reference看不到显眼的信息,中文字符好像经过变换了。F9运行,提示要注册,可能它启动时也会检测注册码。确定后,程序运行。
输入用户ID:DimRacker,注册码:34343434,注册试试,提示“你输入的注册码格式有误”好了,在OD里搜这个吧,找到一个,看下Reference:

0040BB7E   mov byte ptr ds:[edi+438DD8],al
0040BBFC   mov eax,SixthSen.00438DD8

双击40BB7E去看看,按CTRL+K查看调用树,呵,好多地方都跟这有一腿。先从第一个401391入手,进去后从401322开始,往下看,找地方下个断,就在40134F吧。重新回到程序,点注册,OD拦截在40134F,慢慢走,发现这里是初始化ID和注册码,经跟踪发现,注册码格式必须为24位,且第7位和第16位必须为“-”,于是重新输入123456-890ABCDE-GHIJKLMN,再跟踪,发现注册码第三段不符合要求,再重新输入123456-890ABCDE-12345678,长征开始了。

以下是所下的断点和一些代码注释:
**********************************************************************

断点地址    模块         激活    注释
0040134F    SixthSen     关闭    初始化name,regcode,要求格式123456-890ABCDE-12345678
0040149B    SixthSen     关闭    计算第2、3段regcode,并写入注册表
004015C5    SixthSen     关闭    秀注册码错误窗口。此call要跟入,单步追踪,直到返回SixthSen领空0x4017B0
004017B0    SixthSen     关闭    keycall
00401984    SixthSen     永远    cmp第2段regcode,如果正确再cmp第3段regcode
0040BD1F    SixthSen     关闭    软件启动时的keycall
0040C093    SixthSen     永远    软件启动时cmp第2段regcode,如果正确再cmp第3段regcode
0040D005    SixthSen     永远    软件启动时另一次cmp第2段regcode,如果正确再cmp第3段regcode

**********************************************************************

004013A2  |.  33FF                     xor edi,edi
004013A4  |.  397D F4                  cmp dword ptr ss:[ebp-C],edi     ;判断用户ID的位数,edi=0
004013A7  |.  75 10                    jnz short SixthSen.004013B9
.
.
.
004013B9  |> \3BF7                     cmp esi,edi                      ;判断注册码的位数,edi=0
004013BB  |.  75 10                    jnz short SixthSen.004013CD
.
.
.
004013CD  |> \807D C2 2D               cmp byte ptr ss:[ebp-3E],2D      ;判断注册码第7位是否为“-”
004013D1  |.  0F85 F6010000            jnz SixthSen.004015CD
004013D7  |.  807D CB 2D               cmp byte ptr ss:[ebp-35],2D      ;判断注册码第16位是否为“-”
004013DB  |.  0F85 EC010000            jnz SixthSen.004015CD
004013E1  |.  83FE 18                  cmp esi,18                       ;判断注册码是否为24位
004013E4  |.  0F85 E3010000            jnz SixthSen.004015CD
004013EA  |.  E8 22730200              call SixthSen.00428711
.
.
.
00401977  |.  8B0D 2C8F4300            mov ecx,dword ptr ds:[438F2C]
0040197D  |.  A1 DC8E4300              mov eax,dword ptr ds:[438EDC]
00401982  |.  33C8                     xor ecx,eax                      ;esi为第2段正确的regcode,edi为第3段正确的regcode
00401984  |.  3BF1                     cmp esi,ecx                      ;cmp第2段regcode
00401986  |.  75 18                    jnz short SixthSen.004019A0
00401988  |.  8B0D E08E4300            mov ecx,dword ptr ds:[438EE0]
0040198E  |.  33C8                     xor ecx,eax
00401990  |.  3BF9                     cmp edi,ecx                      ;cmp第3段regcode
00401992  |.  75 0C                    jnz short SixthSen.004019A0
00401994  |.  8B45 FC                  mov eax,dword ptr ss:[ebp-4]
00401997  |.  C740 5C D8070000         mov dword ptr ds:[eax+5C],7D8    ;得到7D8后成功注册
0040199E  |.  EB 0A                    jmp short SixthSen.004019AA
004019A0  |>  8B45 FC                  mov eax,dword ptr ss:[ebp-4]
004019A3  |.  C740 5C D5070000         mov dword ptr ds:[eax+5C],7D5    ;得到7D5后注册失败
004019AA  |>  8B45 FC                  mov eax,dword ptr ss:[ebp-4]
004019AD  |.  5F                       pop edi
004019AE  |.  5E                       pop esi
004019AF  |.  5B                       pop ebx
004019B0  |.  8B40 5C                  mov eax,dword ptr ds:[eax+5C]
004019B3  |.  C9                       leave
004019B4  \.  C3                       retn

修改方法:

00401982  |.  33C8                     xor ecx,eax                      ;esi为第2段正确的regcode,edi为第3段正确的regcode
00401984     /E9 17A00200              jmp SixthSen.0042B9A0            ;跳到42B9A0执行附加的指令
00401989     |90                       nop
0040198A     |90                       nop
0040198B     |90                       nop
0040198C     |90                       nop
0040198D     |90                       nop
0040198E  |.  33C8                     xor ecx,eax                      ;继续执行原程序指令

以下为在程序结尾空白处写入的附加指令:

0042B9A0      BE DEBC0A89              mov esi,890ABCDE                 ;将第2段正确的regcode改为890ABCDE
0042B9A5      BF 78563412              mov edi,12345678                 ;将第3段正确的regcode改为12345678
0042B9AA      3BF1                     cmp esi,ecx
0042B9AC    ^ 0F85 EE5FFDFF            jnz SixthSen.004019A0
0042B9B2      8B0D E08E4300            mov ecx,dword ptr ds:[438EE0]
0042B9B8    ^ E9 D15FFDFF              jmp SixthSen.0040198E

**********************************************************************
软件启动时对注册码的检测:

0040C086  |.  8B0D 2C8F4300            mov ecx,dword ptr ds:[438F2C]
0040C08C  |.  A1 DC8E4300              mov eax,dword ptr ds:[438EDC]
0040C091  |.  33C8                     xor ecx,eax                      ;esi为第2段正确的regcode,edi为第3段正确的regcode
0040C093  |.  3BF1                     cmp esi,ecx                      ;cmp第2段regcode
0040C095  |.  75 1C                    jnz short SixthSen.0040C0B3
0040C097  |.  8B0D E08E4300            mov ecx,dword ptr ds:[438EE0]
0040C09D  |.  33C8                     xor ecx,eax
0040C09F  |.  3BF9                     cmp edi,ecx                      ;cmp第3段regcode
0040C0A1  |.  75 10                    jnz short SixthSen.0040C0B3
0040C0A3  |.  8B45 FC                  mov eax,dword ptr ss:[ebp-4]
0040C0A6  |.  05 21420000              add eax,4221
0040C0AB  |.  C700 D8070000            mov dword ptr ds:[eax],7D8       ;得到7D8后成功注册
0040C0B1  |.  EB 0E                    jmp short SixthSen.0040C0C1
0040C0B3  |>  8B45 FC                  mov eax,dword ptr ss:[ebp-4]
0040C0B6  |.  05 21420000              add eax,4221
0040C0BB  |.  C700 D5070000            mov dword ptr ds:[eax],7D5       ;得到7D5后注册失败
0040C0C1  |>  8B00                     mov eax,dword ptr ds:[eax]
0040C0C3  |.  5F                       pop edi
0040C0C4  |.  5E                       pop esi
0040C0C5  |.  5B                       pop ebx
0040C0C6  |.  C9                       leave
0040C0C7  \.  C3                       retn

修改方法:

0040C091  |.  33C8                     xor ecx,eax                      ;esi为第2段正确的regcode,edi为第3段正确的regcode
0040C093     /E9 27F90100              jmp SixthSen.0042B9BF            ;跳到42B9BF执行附加的指令
0040C098     |90                       nop
0040C099     |90                       nop
0040C09A     |90                       nop
0040C09B     |90                       nop
0040C09C     |90                       nop
0040C09D  |. |33C8                     xor ecx,eax                      ;继续执行原程序指令

以下为在程序结尾空白处写入的附加指令:

0042B9BF      BE DEBC0A89              mov esi,890ABCDE                 ;将第2段正确的regcode改为890ABCDE
0042B9C4      BF 78563412              mov edi,12345678                 ;将第3段正确的regcode改为12345678
0042B9C9      3BF1                     cmp esi,ecx
0042B9CB    ^ 0F85 E206FEFF            jnz SixthSen.0040C0B3
0042B9D1      8B0D E08E4300            mov ecx,dword ptr ds:[438EE0]
0042B9D7    ^ E9 C106FEFF              jmp SixthSen.0040C09D

**********************************************************************
软件启动时另一次对注册码的检测:

0040CFF8  |.  8B0D 2C8F4300            mov ecx,dword ptr ds:[438F2C]
0040CFFE  |.  A1 DC8E4300              mov eax,dword ptr ds:[438EDC]
0040D003  |.  33C8                     xor ecx,eax                      ;esi为第2段正确的regcode,edi为第3段正确的regcode
0040D005  |.  3BF1                     cmp esi,ecx                      ;cmp第2段regcode
0040D007  |.  75 1C                    jnz short SixthSen.0040D025
0040D009  |.  8B0D E08E4300            mov ecx,dword ptr ds:[438EE0]
0040D00F  |.  33C8                     xor ecx,eax
0040D011  |.  3BF9                     cmp edi,ecx                      ;cmp第3段regcode
0040D013  |.  75 10                    jnz short SixthSen.0040D025
0040D015  |.  8B45 FC                  mov eax,dword ptr ss:[ebp-4]
0040D018  |.  05 55410000              add eax,4155
0040D01D  |.  C700 D8070000            mov dword ptr ds:[eax],7D8       ;得到7D8后成功注册
0040D023  |.  EB 0E                    jmp short SixthSen.0040D033
0040D025  |>  8B45 FC                  mov eax,dword ptr ss:[ebp-4]
0040D028  |.  05 55410000              add eax,4155
0040D02D  |.  C700 D5070000            mov dword ptr ds:[eax],7D5       ;得到7D5后注册失败
0040D033  |>  8B00                     mov eax,dword ptr ds:[eax]
0040D035  |.  5F                       pop edi
0040D036  |.  5E                       pop esi
0040D037  |.  5B                       pop ebx
0040D038  |.  C9                       leave
0040D039  \.  C3                       retn

修改方法:

0040D003  |.  33C8                     xor ecx,eax                      ;esi为第2段正确的regcode,edi为第3段正确的regcode
0040D005     /E9 D4E90100              jmp SixthSen.0042B9DE            ;跳到42B9DE执行附加的指令
0040D00A     |90                       nop
0040D00B     |90                       nop
0040D00C     |90                       nop
0040D00D     |90                       nop
0040D00E     |90                       nop
0040D00F  |. |33C8                     xor ecx,eax                      ;继续执行原程序指令

以下为在程序结尾空白处写入的附加指令:

0042B9DE      BE DEBC0A89              mov esi,890ABCDE                 ;将第2段正确的regcode改为890ABCDE
0042B9E3      BF 78563412              mov edi,12345678                 ;将第3段正确的regcode改为12345678
0042B9E8      3BF1                     cmp esi,ecx
0042B9EA    ^ 0F85 3516FEFF            jnz SixthSen.0040D025
0042B9F0      8B0D E08E4300            mov ecx,dword ptr ds:[438EE0]
0042B9F6    ^ E9 1416FEFF              jmp SixthSen.0040D00F

**********************************************************************
用HEdit打开SixthSense.exe,找到相应地址EIP-400C00,CTRL+G修改代码
完毕
另外,注册信息保存在:

[HKEY_LOCAL_MACHINE\SOFTWARE\小飞侠.NET\QQ第六感\Setting]
"ID"=""
"SN"=hex:

by DimRacker
03:21 2005-03-18

看雪招聘平台创建简历并且简历完整度达到90%及以上可获得500看雪币~

收藏
点赞0
打赏
分享
最新回复 (15)
雪    币: 454
活跃值: 活跃值 (22)
能力值: ( LV12,RANK:660 )
在线值:
发帖
回帖
粉丝
prince 活跃值 16 2005-3-18 09:23
2
0
顶下,加油~
雪    币: 137
活跃值: 活跃值 (21)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
shuair 活跃值 2 2005-3-18 11:40
3
0
好文章!~~
学习..
雪    币: 200
活跃值: 活跃值 (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
ljy3282393 活跃值 1 2005-3-18 13:47
4
0
学习并支持
雪    币: 111
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
无奈无赖 活跃值 2005-3-18 13:58
5
0
最初由 ljy3282393 发布
学习并支持
雪    币: 400
活跃值: 活跃值 (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
Anwil 活跃值 2 2005-3-18 14:33
6
0
强烈支持!
收下学习!
雪    币: 201
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
注定我不平凡 活跃值 2005-3-18 15:29
7
0
学习了顶你一个
雪    币: 155
活跃值: 活跃值 (13)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
<<Lanneret 活跃值 1 2005-3-18 19:36
8
0
好文章,顶一下
雪    币: 200
活跃值: 活跃值 (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
游上岸的鱼 活跃值 1 2005-3-18 20:17
9
0
不错
雪    币: 101
活跃值: 活跃值 (54)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
kkx2008 活跃值 2005-3-18 21:25
10
0
upup
雪    币: 1298
活跃值: 活跃值 (63)
能力值: ( LV9,RANK:490 )
在线值:
发帖
回帖
粉丝
yijun8354 活跃值 12 2005-3-19 15:34
11
0
东西好,文章也好,顶一下~~~~~~~
雪    币: 200
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
sunday 活跃值 2005-3-19 18:28
12
0
好文章啊,我也申请加入啊
雪    币: 214
活跃值: 活跃值 (36)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
auser 活跃值 2005-3-20 20:35
13
0
不错的练手软件。
雪    币: 200
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
hyd009 活跃值 2005-3-20 21:24
14
0
厉害
雪    币: 200
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
michaelz 活跃值 2005-3-21 03:01
15
0
学习ding一下~
雪    币: 200
活跃值: 活跃值 (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
nettao 活跃值 2005-3-21 09:29
16
0
河北人,支持!
游客
登录 | 注册 方可回帖
返回