首页
社区
课程
招聘
[原创]发篇破文凑凑热闹,高手别过~!
发表于: 2007-3-4 12:15 16421

[原创]发篇破文凑凑热闹,高手别过~!

2007-3-4 12:15
16421

【文章标题】: 征途辅助工具箱的注册算法分析
【文章作者】: talaqi
【下载地址】: 天空软件站
【保护方式】: 序列号+注册码
【编写语言】: Borland Delphi 6.0 - 7.0
【使用工具】: PEID、OD
【操作平台】: WinXP
【软件介绍】: “征途辅助工具箱”是一款辅助玩征途游戏的工具箱
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
1、首先用Peid查壳,无壳,Borland Delphi 6.0 - 7.0编写。
2、用OD载入程序,找到关键字“请输入注册码”,来到这里:
  004E8B5E   |.  8D4D E8         lea ecx,dword ptr ss:[ebp-18]      ;  提示框(你的序列号是..)
  004E8B61   |.  BA 448D4E00     mov edx,gameTool.004E8D44
  004E8B66   |.  B8 508D4E00     mov eax,gameTool.004E8D50         ;  此处下断,F8 ←来到这里
  004E8B6B   |.  E8 24DBF4FF     call gameTool.00436694                ;  输入注册码
  004E8B70   |.  F6D8            neg al
  004E8B72   |.  1BC0            sbb eax,eax
  004E8B74   |.  85C0            test eax,eax                          ;  测试是否输入注册码
  004E8B76   |.  0F84 E1000000   je gameTool.004E8C5D                  ;  没有就跳走
  004E8B7C   |.  8D45 E0         lea eax,dword ptr ss:[ebp-20]
  004E8B7F   |.  50              push eax
  004E8B80   |.  B9 05000000     mov ecx,5                             ;  ECX赋初值5
  004E8B85   |.  33D2            xor edx,edx                           ;  EDX清零
  004E8B87   |.  8B83 10060000   mov eax,dword ptr ds:[ebx+610]        ;  序列号送EAX
  004E8B8D   |.  E8 D6BCF1FF     call gameTool.00404868                ;  取出序列号的前5位
  004E8B92   |.  6A 00           push 0
  004E8B94   |.  6A 02           push 2
  004E8B96   |.  8B45 E0         mov eax,dword ptr ss:[ebp-20]         ;  序列号前5位送EAX
  004E8B99   |.  E8 4605F2FF     call gameTool.004090E4                ;  转换成16进制形式
  004E8B9E   |.  E8 41C7F1FF     call gameTool.004052E4                ;  前5位的16进制*2,
                                                                       ;  记为a
004E8BA3   |.  8945 F0         mov dword ptr ss:[ebp-10],eax
  004E8BA6   |.  8955 F4         mov dword ptr ss:[ebp-C],edx
  004E8BA9   |.  8D45 E0         lea eax,dword ptr ss:[ebp-20]
  004E8BAC   |.  50              push eax
  004E8BAD   |.  8B83 10060000   mov eax,dword ptr ds:[ebx+610]        ;  序列号再送EAX
  004E8BB3   |.  E8 50BAF1FF     call gameTool.00404608
  004E8BB8   |.  8BC8            mov ecx,eax                           ;  序列号位数送ECX
  004E8BBA   |.  83E9 05         sub ecx,5                             ;  ECX-5
  004E8BBD   |.  BA 06000000     mov edx,6                             ;  EDX赋值为6
  004E8BC2   |.  8B83 10060000   mov eax,dword ptr ds:[ebx+610]        ;  序列号送回EAX
  004E8BC8   |.  E8 9BBCF1FF     call gameTool.00404868                ;  取序列号的后4位,
                                                                       ;  即ECX-5=4
  004E8BCD   |.  6A 00           push 0
  004E8BCF   |.  6A 03           push 3
  004E8BD1   |.  8B45 E0         mov eax,dword ptr ss:[ebp-20]         ;  序列号后4位送EAX
  004E8BD4   |.  E8 0B05F2FF     call gameTool.004090E4                ;  转换成16进制形式
  004E8BD9   |.  E8 06C7F1FF     call gameTool.004052E4                ;  后4位的16进制*3
                                                                       ;  记为b
004E8BDE   |.  0345 F0         add eax,dword ptr ss:[ebp-10]         ;  a+b,求和.记为c
  004E8BE1   |.  1355 F4         adc edx,dword ptr ss:[ebp-C]
  004E8BE4   |.  8945 F0         mov dword ptr ss:[ebp-10],eax
  004E8BE7   |.  8955 F4         mov dword ptr ss:[ebp-C],edx
  004E8BEA   |.  FF75 F4         push dword ptr ss:[ebp-C]
  004E8BED   |.  FF75 F0         push dword ptr ss:[ebp-10]
  004E8BF0   |.  8D45 E4         lea eax,dword ptr ss:[ebp-1C]
  004E8BF3   |.  E8 2804F2FF     call gameTool.00409020
  004E8BF8   |.  8B45 E4         mov eax,dword ptr ss:[ebp-1C]         ;  c的十进制送EAX
  004E8BFB   |.  8B55 E8         mov edx,dword ptr ss:[ebp-18]         ;  试炼码送EDX
  004E8BFE   |.  E8 51BBF1FF     call gameTool.00404754                ;  关键CALL,跟进
  004E8C03   |.  75 58           jnz short gameTool.004E8C5D           ;  不相等则跳向OVER
  (其余代码省略)
  
  跟进关键CALL来到这里:
  00404754   /$  53              push ebx
  00404755   |.  56              push esi
  00404756   |.  57              push edi
  00404757   |.  89C6            mov esi,eax                           ;  c的十进制送ESI
  00404759   |.  89D7            mov edi,edx                           ;  试炼码送EDI
  0040475B   |.  39D0            cmp eax,edx                           ;  c与试炼码进行比较
  0040475D   |.  0F84 8F000000   je gameTool.004047F2                  ;  相等则跳,必须跳,
                                                                       ;  跳到注册成功的地方
00404763   |.  85F6            test esi,esi
  (中间代码省略)
  004047F2   |>  5F              pop edi
  004047F3   |.  5E              pop esi
  004047F4   |.  5B              pop ebx
  004047F5   \.  C3              retn
-----------------------------------------------------------------------------------------
【经验总结】
  序列号前5位数的16进制*2+其余位数的16进制*3,求和。再转换为10进制数即为真正的注册码。

-----------------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 7
支持
分享
最新回复 (32)
雪    币: 214
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
2
本篇也是基于有些网友发帖询问---外挂能否破解?而发的,还请多多支持~!
2007-3-4 12:16
0
雪    币: 214
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
3
哈哈 笨笨雄老大真够意思 有一个精华啦。祝贺下
继续努力,还希望高手们多多帮助我啊
2007-3-4 13:59
0
雪    币: 130
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
祝贺楼主啊,
2007-3-4 16:59
0
雪    币: 263
活跃值: (10)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
5
你不是换了名字了的吗!
2007-3-4 18:14
0
雪    币: 214
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
6
哈哈 只是没考虑到登陆的问题 中文名太麻烦了 好听不好使 所以还是用这个吧 反正想来只是个符号而已 只要是便于大家认识 什么都无所谓了 还希望大家多多支持小弟 学习破解才不到2个月 很多都不会 这也是拿来献丑罢了 高手见笑。。。
2007-3-4 18:30
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
挺详细的,分析得好,学习……
2007-3-4 22:28
0
雪    币: 0
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
8
学习……
2007-3-5 01:17
0
雪    币: 207
活跃值: (12)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
9
不错很好的文章,学习!
2007-3-5 01:29
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
2、用OD载入程序,找到关键字“请输入注册码”,来到这里:
  004E8B5E   |.  8D4D E8         lea ecx,dword ptr ss:[ebp-18]      ;  提示框(你的序列号是..)
  004E8B61   |.  BA 448D4E00     mov edx,gameTool.004E8D44
  004E8B66   |.  B8 508D4E00     mov eax,gameTool.004E8D50         ;  此处下断,F8 ←来到这里

你是怎么找到这个关键字“请输入注册码”的
2007-3-6 09:35
0
雪    币: 214
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
11
查下字串不就知道了
2007-3-6 10:21
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
好象看到过了~~
2007-3-6 13:51
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
好文章呀,真是感谢
2007-3-6 14:57
0
雪    币: 217
活跃值: (68)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
14
试着按楼主的 方法分析了 下  果然可以 呵呵  软件有更新 但是算法没有便

支持楼主下
2007-5-24 10:47
0
雪    币: 1919
活跃值: (901)
能力值: ( LV9,RANK:490 )
在线值:
发帖
回帖
粉丝
15
简单算法,支持哈~~
2007-5-24 11:59
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
精彩啊`~~~~慢慢学习
2007-5-24 17:27
0
雪    币: 314
活跃值: (15)
能力值: ( LV12,RANK:410 )
在线值:
发帖
回帖
粉丝
17
简单算法,支持哈~~
2007-5-24 19:22
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
入门,来瞧瞧
2007-5-24 21:30
0
雪    币: 221
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
谢谢,学习中...
2007-5-25 12:53
0
雪    币: 101
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
学习。。。。毕竟我才开始~
2007-5-25 23:36
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
学习了,写得很详细
2007-5-26 00:03
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
值得学习一下
2007-6-24 19:51
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
路过....学习了............
2007-6-24 20:20
0
雪    币: 229
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
MDB
24
这个外挂就不用网络验证呀`看起来应该挺简单的,呵呵
2007-6-25 02:51
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
您这“破文”给了我不少启发。。。。
2007-6-25 04:55
0
游客
登录 | 注册 方可回帖
返回
//