首页
社区
课程
招聘
出租车管理 1.2 算法分析
发表于: 2004-8-16 16:50 6542

出租车管理 1.2 算法分析

2004-8-16 16:50
6542

【破文作者】sLtYJ[D.4s][DFCG]

【作者邮箱】sltyj@263.net

【作者主页】龙族联盟论坛 DFCG官方论坛

【使用工具】OD,PEiD

【操作系统】Windows XP

【软件名称】出租车管理 1.2

【下载地址】http://bj.onlinedown.net/soft/27925.htm

【软件大小】1.41 MB

【程序语言】Borland Delphi 6.0 - 7.0

【软件简介】

一个小而全的出租车管理软件,能实现车辆,车票,驾驶员,缴费的查询等

【破解声明】我是一只小菜鸟,偶得一点心得,愿与大家分享:)

--------------------------------------------------------------------------------

【内容】

    首先用Peid 检测程序程序,无壳!显示编写语言是Borland Delphi 6.0 - 7.0,随即拿出DEDE来进行反编译...
另人郁闷的是居然出错,可能作者动了手脚吧~~只好用OD直接来了,下断BP GetWindowTextA,点击注册后被OD断下,经过
一番寻找,终于找到关键点,下面是小弟的一点肤浅分析,有错误的地方还请各位前辈多多指点!谢过!

005271CF   .  55            PUSH    EBP                              ;  //来到这里
005271D0   .  68 05745200   PUSH    00527405
005271D5   .  64:FF30       PUSH    DWORD PTR FS:[EAX]
005271D8   .  64:8920       MOV     FS:[EAX],ESP
005271DB   .  8D85 F4FDFFFF LEA     EAX,[EBP-20C]
005271E1   .  8B55 FC       MOV     EDX,[EBP-4]                      ;  user32.77D13A50
005271E4   .  8B92 08030000 MOV     EDX,[EDX+308]                    ;  user32.77D154B4
005271EA   .  B9 FF000000   MOV     ECX,0FF
005271EF   .  E8 94D3EDFF   CALL    00404588                         ;  //计算特征码的长度 我的等于17位 十六进制就是11
005271F4   .  BF FF000000   MOV     EDI,0FF
005271F9   .  8D85 F4FEFFFF LEA     EAX,[EBP-10C]
005271FF   >  C600 20       MOV     BYTE PTR [EAX],20
00527202   .  40            INC     EAX
00527203   .  4F            DEC     EDI
00527204   .^ 75 F9         JNZ     SHORT 005271FF
00527206   .  8B45 FC       MOV     EAX,[EBP-4]                      ;  user32.77D13A50
00527209   .  8B80 08030000 MOV     EAX,[EAX+308]                    ;  //得到特征码  d 00A7AC54
0052720F   .  E8 98D3EDFF   CALL    004045AC
00527214   .  85C0          TEST    EAX,EAX                          ;  //比较
00527216   .  7E 6A         JLE     SHORT 00527282
00527218   .  8945 F4       MOV     [EBP-C],EAX
0052721B   .  BF 01000000   MOV     EDI,1                            ;  //EDI=1 准备作为记位器
00527220   .  8DB5 F5FDFFFF LEA     ESI,[EBP-20B]
00527226   .  8D9D F5FEFFFF LEA     EBX,[EBP-10B]
0052722C   >  803E 2D       CMP     BYTE PTR [ESI],2D                ;  //判断得到的特征码是否为"-"
0052722F   .  74 2F         JE      SHORT 00527260                   ;  //是就跳过
00527231   .  8D85 F0FDFFFF LEA     EAX,[EBP-210]
00527237   .  8A16          MOV     DL,[ESI]
00527239   .  E8 96D2EDFF   CALL    004044D4                         ;  //得到数字的十六进制值
0052723E   .  8B85 F0FDFFFF MOV     EAX,[EBP-210]
00527244   .  E8 0F1EEEFF   CALL    00409058                         ;  //将得到的十六进制还原为数字 结果放入EAX
00527249   .  8BC8          MOV     ECX,EAX                          ;  //ECX=EAX
0052724B   .  83C1 43       ADD     ECX,43                           ;  //ECX=ECX+43
0052724E   .  8BC7          MOV     EAX,EDI                          ;  //EAX=EDI(数字位数)
00527250   .  51            PUSH    ECX                              ;  //压入ECX
00527251   .  B9 06000000   MOV     ECX,6                            ;  //ECX=6
00527256   .  99            CDQ                                      ;  //将EAX的32位值扩展64位,需要EDX(这里EDX清零)
00527257   .  F7F9          IDIV    ECX                              ;  //EAX=EAX/ECX 就是将数字位数除于6,余数进EDX
00527259   .  59            POP     ECX                              ;  //弹出ECX
0052725A   .  03CA          ADD     ECX,EDX                          ;  //ECX=ECX+EDX
0052725C   .  880B          MOV     [EBX],CL                         ;  //ECX的值转化成字符-→就是注册码
0052725E   .  EB 09         JMP     SHORT 00527269
00527260   >  B8 5A000000   MOV     EAX,5A                           ;  //EAX=5A
00527265   .  2BC7          SUB     EAX,EDI                          ;  //EAX=EAX-EDI(数字位数)
00527267   .  8803          MOV     [EBX],AL                         ;  //得到的十六进制值转为字符
00527269   >  8BC7          MOV     EAX,EDI
0052726B   .  B9 06000000   MOV     ECX,6                            ;  ECX=6
00527270   .  99            CDQ
00527271   .  F7F9          IDIV    ECX                              ;  //EAX=EAX/ECX 就是将数字位数除于6,余数进EDX
00527273   .  85D2          TEST    EDX,EDX                          ;  //检查余数是否为零
00527275   .  75 03         JNZ     SHORT 0052727A                   ;  //不是,跳...
00527277   .  C603 2D       MOV     BYTE PTR [EBX],2D                ;  //余数为零,给注册码加上"-"符号
0052727A   >  47            INC     EDI                              ;  //EDI=EDI+1  作为记位器
0052727B   .  43            INC     EBX                              ;  //组合已得到的注册码
0052727C   .  46            INC     ESI
0052727D   .  FF4D F4       DEC     DWORD PTR [EBP-C]                ;  //计数器减1
00527280   .^ 75 AA         JNZ     SHORT 0052722C                   ;  //比较是否计算完成
00527282   >  8D85 E8FDFFFF LEA     EAX,[EBP-218]
00527288   .  8D95 F4FEFFFF LEA     EDX,[EBP-10C]                    ;  //d 12F1C4 可看到注册码 在次亦可制作内存注册机
0052728E   .  E8 BDD2EDFF   CALL    00404550
00527293   .  8B85 E8FDFFFF MOV     EAX,[EBP-218]
00527299   .  8D95 ECFDFFFF LEA     EDX,[EBP-214]
0052729F   .  E8 1019EEFF   CALL    00408BB4
005272A4   .  8B95 ECFDFFFF MOV     EDX,[EBP-214]                    ;  comctl32.77315889
005272AA   .  8D85 F4FEFFFF LEA     EAX,[EBP-10C]
005272B0   .  B9 FF000000   MOV     ECX,0FF
005272B5   .  E8 CED2EDFF   CALL    00404588
005272BA   .  8D95 E4FDFFFF LEA     EDX,[EBP-21C]
005272C0   .  8B45 FC       MOV     EAX,[EBP-4]                      ;  user32.77D13A50
005272C3   .  8B80 00030000 MOV     EAX,[EAX+300]
005272C9   .  E8 D244F4FF   CALL    0046B7A0
005272CE   .  8B85 E4FDFFFF MOV     EAX,[EBP-21C]                    ;  //d 00ABA26C 得到假码 刚才输的是676767676767
005272D4   .  50            PUSH    EAX                              ;  //放入EAX
005272D5   .  8D85 E0FDFFFF LEA     EAX,[EBP-220]
005272DB   .  8D95 F4FEFFFF LEA     EDX,[EBP-10C]
005272E1   .  E8 6AD2EDFF   CALL    00404550
005272E6   .  8B95 E0FDFFFF MOV     EDX,[EBP-220]                    ;  user32.77D13B33
005272EC   .  58            POP     EAX                              ;  //弹出假码 676767676767
005272ED   .  E8 06D4EDFF   CALL    004046F8
005272F2      0F85 BC000000 JNZ     005273B4                         ;  //比较 不一样 跳 (爆破点)
005272F8   .  B2 01         MOV     DL,1
005272FA   .  A1 60164400   MOV     EAX,[441660]
005272FF   .  E8 C8A4F1FF   CALL    004417CC
00527304   .  8945 F8       MOV     [EBP-8],EAX
00527307   .  33C0          XOR     EAX,EAX
00527309   .  55            PUSH    EBP
0052730A   .  68 77735200   PUSH    00527377
0052730F   .  64:FF30       PUSH    DWORD PTR FS:[EAX]
00527312   .  64:8920       MOV     FS:[EAX],ESP
00527315   .  BA 02000080   MOV     EDX,80000002
0052731A   .  8B45 F8       MOV     EAX,[EBP-8]                      ;  //下面的操作就是将注册信息写入注册表
0052731D   .  E8 86A5F1FF   CALL    004418A8
00527322   .  B1 01         MOV     CL,1
00527324   .  BA 1C745200   MOV     EDX,0052741C                     ;  ASCII "Software\\Microsoft\\Windows\\CurrentVersion"
00527329   .  8B45 F8       MOV     EAX,[EBP-8]
0052732C   .  E8 BBA6F1FF   CALL    004419EC
00527331   .  84C0          TEST    AL,AL
00527333   .  74 24         JE      SHORT 00527359
00527335   .  8D85 DCFDFFFF LEA     EAX,[EBP-224]
0052733B   .  8D95 F4FEFFFF LEA     EDX,[EBP-10C]
00527341   .  E8 0AD2EDFF   CALL    00404550
00527346   .  8B8D DCFDFFFF MOV     ECX,[EBP-224]
0052734C   .  BA 50745200   MOV     EDX,00527450                     ;  ASCII "ProductMac"
00527351   .  8B45 F8       MOV     EAX,[EBP-8]
00527354   .  E8 2FA8F1FF   CALL    00441B88
00527359   >  33C0          XOR     EAX,EAX
0052735B   .  5A            POP     EDX
0052735C   .  59            POP     ECX
0052735D   .  59            POP     ECX
0052735E   .  64:8910       MOV     FS:[EAX],EDX
00527361   .  68 7E735200   PUSH    0052737E
00527366   >  8B45 F8       MOV     EAX,[EBP-8]
00527369   .  E8 0AA5F1FF   CALL    00441878
0052736E   .  8B45 F8       MOV     EAX,[EBP-8]
00527371   .  E8 06C1EDFF   CALL    0040347C
00527376   .  C3            RETN

--------------------------------------------------------------------------------

【总结】

总得来说,此软件的算法还是比较简单的!就是依次取得机器的特征码,然后进行运算,最后结果转化为字符!如此循环....组合后得到最后的注册码!水平有限,有什么不对的地方请各位指正,谢谢!:)

--------------------------------------------------------------------------------

【爆破地址】

005272F2 JNZ--→NOP

--------------------------------------------------------------------------------

【版权声明】本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 7
支持
分享
最新回复 (13)
雪    币: 202
活跃值: (27)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
好 !!文章


好帖

很好帖

确实好帖

少见的好帖

真 TMD 好帖

难得一见的好帖

千年等一回的好帖

好得不能再好的好帖

惊天地且泣鬼神的好帖

让人阅毕击掌三叹的好帖

让人佩服得五体投地的好帖

让人奔走相告曰须阅读的好帖

让斑竹看后决定加精固顶的好帖

让人看后在各论坛纷纷转贴的好帖

让人看后连成人网站都没兴趣的好帖

让人看完后就要往上顶往死里顶的好帖

让人看后不断在各种场合重复引用的好帖

让人一见面就问你看过某某好帖没有的好帖

让人半夜上厕所都要打开电脑再看一遍的好帖

让个读过后都下载在硬盘里详细研究欣赏的好帖

让人走路吃饭睡觉干什么事连做梦都梦到它的好帖

让人翻译成36种不同外语流传国内外世界各地的好帖

让人纷纷唱道过年过节不送礼要送就送某某帖子的好帖

让国家领导人命令将该帖刻在纯金版上当国礼送人的好帖

让网络上纷纷冒出该帖的真人版卡通版搞笑版成人版的好帖

让人在公共厕所里不再乱涂乱化而是纷纷对它引经据典的好帖

让某位想成名的少女向媒体说她与该帖作者发生过性关系的好帖

让人根据它写成小说又被不同导演拍成48个不同版本的电影的好帖

让某名导演跟据此帖改拍的电影在奥斯卡上一连拿了11个奖项的好帖

让人大代表们看完后联名要求根据该帖的内容对宪法做适当修改的好帖

让人为了谁是它的原始作者纷纷地闹上法院打官司要争得它的版权的好帖

让各大学府纷纷邀请该帖作者去就如何发表优秀网络文学为题目演讲的好帖

让人为了该帖而成立了各种学会来研究并为不同的理解争得眼红脖子粗的好帖

让美国警察于今后逮捕人说你有权保持沉默还有权阅读某某帖子要不要啊的好帖

让本拉登躲在山洞里还命令他手下冒着被美军发现的危险去上网下载来阅读的好帖

让萨达姆被捕时被发现他随身携带的除了一把手枪之外还有的就是它的复印件的好帖

让比尔盖茨在懂事会上发给与会者人手一份该帖命令仔细阅读后才讨论其他事宜的好帖

让诺贝儿奖理事会破天荒地因该帖的出现而开会讨论一直决定今后设立最佳帖子奖的好帖

让联合国安理会决定将它译成宇宙语由中国神州六号升空后不断播放看有没有外星人的好帖

让人看完后IE锁死连瑞星诺顿都没法修复只好格式化硬盘重装启动后主页显示的还是它的好帖

hkey_class_root\exefile\shell\open\command
@="\"%1\" %*"
2004-8-16 17:19
0
雪    币: 239
活跃值: (220)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
3
2004-8-16 20:10
0
雪    币: 519
活跃值: (1223)
能力值: ( LV12,RANK:650 )
在线值:
发帖
回帖
粉丝
4
2楼经典大水:D
2004-8-16 20:36
0
雪    币: 229
活跃值: (41)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
2楼有二下子
2004-8-18 01:11
0
雪    币: 211
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
:D :D :D
2004-8-18 03:54
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
收藏了......

支持楼主继续努力......
2004-8-18 10:13
0
雪    币: 220
活跃值: (51)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
2楼的回复真是经典,收藏
2004-8-18 10:39
0
雪    币: 123
活跃值: (101)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
二楼厉害!
2004-8-18 11:01
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
学习一楼,收藏二楼!
2004-8-18 11:05
0
雪    币: 202
活跃值: (27)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
还是支持含金量的帖子,含水量的帖子-只供大家一乐:)
2005-4-22 15:39
0
雪    币: 61
活跃值: (160)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
12
支持一下
2005-4-22 22:56
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
2005-4-23 13:30
0
雪    币: 217
活跃值: (91)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
14
学习一下。
2005-4-23 14:14
0
游客
登录 | 注册 方可回帖
返回
//