首页
社区
课程
招聘
[原创]小小通讯录破文
发表于: 2007-4-21 17:56 4006

[原创]小小通讯录破文

2007-4-21 17:56
4006
【破文标题】小小通讯录破文
【破文作者】annatata
【作者邮箱】没.....
【作者主页】http://www.edisk.org/?annatata
【破解工具】PEiD,OD
【破解平台】Windows XP
【软件名称】小小通讯录
【软件大小】3894KB
【原版下载】http://nmas.onlinedown.net/soft/57145.htm#download
【保护方式】注册码
【软件简介】小巧通讯录是一款具有时尚、美观、易用、功能强大的个人通讯信息管理软件。它是您不可缺少的助手,为您的工作和生活带来极大地便利。作为一款专业的个人通讯信息管理软件,它拥有很多功能。例如:树型结构显示、表格显示、快速的查找功能、详细的信息显示、名片显示等等。有了它,您就可以系统化的管理通讯名单并且能够保护好您的个人隐私。

【破解声明】我是一只小菜鸟,偶得一点心得,愿与大家分享:)
------------------------------------------------------------------------
下载安装软件,试着运行一下软件,填入试炼注册信息。软件提示“注册成功,本程序所有功能限制下次启动时将被自动解除,欢迎您成为我们正式版本用户!”
重启验证哦!知己知彼,开始动手了。
PEID查壳
Borland Delphi 6.0 - 7.0——————COOL,不用脱咯!

OD载入:
停在这里
00723AB4 > $  55            PUSH EBP                                 ;  (初始 cpu 选择)
00723AB5   .  8BEC          MOV EBP,ESP
00723AB7   .  83C4 F0       ADD ESP,-10
00723ABA   .  53            PUSH EBX
00723ABB   .  B8 242F7200   MOV EAX,TXL.00722F24
00723AC0   .  E8 A739CEFF   CALL TXL.0040746C
00723AC5   .  8B1D 58957200 MOV EBX,DWORD PTR DS:[729558]            ;  TXL.0072AC18

先看看刚才的注册提示信息,找找程序把我们的注册信息放到哪里去了。超级字符串查找字符串。
搜索关键字“注册成功,本程序所有功能限制下次启动时将被自动解除,欢迎您成为我们正式版本用户!”来到这里:
006DD5F1   .  E8 52D6D6FF   CALL TXL.0044AC48
006DD5F6   .  B1 01         MOV CL,1
006DD5F8   .  BA ECD66D00   MOV EDX,TXL.006DD6EC                     ;  software\vt\easycrm
006DD5FD   .  8BC3          MOV EAX,EBX
006DD5FF   .  E8 88D7D6FF   CALL TXL.0044AD8C
006DD604   .  8D55 F4       LEA EDX,DWORD PTR SS:[EBP-C]
006DD607   .  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
006DD60A   .  8B80 04030000 MOV EAX,DWORD PTR DS:[EAX+304]
006DD610   .  E8 57DFDAFF   CALL TXL.0048B56C
006DD615   .  8B45 F4       MOV EAX,DWORD PTR SS:[EBP-C]
006DD618   .  8D55 F8       LEA EDX,DWORD PTR SS:[EBP-8]
006DD61B   .  E8 88C7D2FF   CALL TXL.00409DA8
006DD620   .  8B4D F8       MOV ECX,DWORD PTR SS:[EBP-8]
006DD623   .  BA 08D76D00   MOV EDX,TXL.006DD708                     ;  name
006DD628   .  8BC3          MOV EAX,EBX
006DD62A   .  E8 ADDCD6FF   CALL TXL.0044B2DC
006DD62F   .  8D55 EC       LEA EDX,DWORD PTR SS:[EBP-14]
006DD632   .  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
006DD635   .  8B80 08030000 MOV EAX,DWORD PTR DS:[EAX+308]
006DD63B   .  E8 2CDFDAFF   CALL TXL.0048B56C
006DD640   .  8B45 EC       MOV EAX,DWORD PTR SS:[EBP-14]
006DD643   .  8D55 F0       LEA EDX,DWORD PTR SS:[EBP-10]
006DD646   .  E8 5DC7D2FF   CALL TXL.00409DA8
006DD64B   .  8B4D F0       MOV ECX,DWORD PTR SS:[EBP-10]
006DD64E   .  BA 18D76D00   MOV EDX,TXL.006DD718                     ;  pass
006DD653   .  8BC3          MOV EAX,EBX
006DD655   .  E8 82DCD6FF   CALL TXL.0044B2DC
006DD65A   .  8BC3          MOV EAX,EBX
006DD65C   .  E8 FF66D2FF   CALL TXL.00403D60
006DD661   .  6A 40         PUSH 40
006DD663   .  68 20D76D00   PUSH TXL.006DD720                        ;  软件注册
006DD668   .  68 2CD76D00   PUSH TXL.006DD72C                        ;  注册成功,本程序所有功能限制下次启动时将被自动解除,欢迎您成为我们正式版本用户!
006DD66D   .  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
006DD670   .  E8 A749DBFF   CALL TXL.0049201C
006DD675   .  50            PUSH EAX                                 ; |hOwner
006DD676   .  E8 09ADD2FF   CALL <JMP.&user32.MessageBoxA>           ; \MessageBoxA

看来是要在注册表里创建software\vt\easycrm目录和name、pass两个子键啊。
再去搜索一下name或者pass

发现涉及这个的只有两处地方,一处就是上面的写入过程,另一处在这里:
006F9C8D   .  55            PUSH EBP                                            //断点在这里
006F9C8E   .  68 F39D6F00   PUSH TXL.006F9DF3
006F9C93   .  64:FF30       PUSH DWORD PTR FS:[EAX]
006F9C96   .  64:8920       MOV DWORD PTR FS:[EAX],ESP
006F9C99   .  B2 01         MOV DL,1
006F9C9B   .  A1 48A94400   MOV EAX,DWORD PTR DS:[44A948]
006F9CA0   .  E8 C70ED5FF   CALL TXL.0044AB6C
006F9CA5   .  8945 F4       MOV DWORD PTR SS:[EBP-C],EAX
006F9CA8   .  BA 02000080   MOV EDX,80000002
006F9CAD   .  8B45 F4       MOV EAX,DWORD PTR SS:[EBP-C]
006F9CB0   .  E8 930FD5FF   CALL TXL.0044AC48
006F9CB5   .  8D45 F0       LEA EAX,DWORD PTR SS:[EBP-10]
006F9CB8   .  BA ACA16F00   MOV EDX,TXL.006FA1AC                     ;  software\vt\easycrm
006F9CBD   .  E8 C6AFD0FF   CALL TXL.00404C88
006F9CC2   .  B1 01         MOV CL,1
006F9CC4   .  8B55 F0       MOV EDX,DWORD PTR SS:[EBP-10]
006F9CC7   .  8B45 F4       MOV EAX,DWORD PTR SS:[EBP-C]
006F9CCA   .  E8 BD10D5FF   CALL TXL.0044AD8C
006F9CCF   .  84C0          TEST AL,AL
006F9CD1   .  0F84 FE000000 JE TXL.006F9DD5
006F9CD7   .  A1 3C927200   MOV EAX,DWORD PTR DS:[72923C]
006F9CDC   .  8B00          MOV EAX,DWORD PTR DS:[EAX]
006F9CDE   .  83B8 D0040000>CMP DWORD PTR DS:[EAX+4D0],0
006F9CE5   .  75 54         JNZ SHORT TXL.006F9D3B
006F9CE7   .  E8 B0FBFFFF   CALL <JMP.&HDSerial.HDSerialNumRead>                //取给机器码
006F9CEC   .  8BD0          MOV EDX,EAX
006F9CEE   .  8D45 B8       LEA EAX,DWORD PTR SS:[EBP-48]
006F9CF1   .  E8 02B1D0FF   CALL TXL.00404DF8
006F9CF6   .  8B45 B8       MOV EAX,DWORD PTR SS:[EBP-48]
006F9CF9   .  8D55 BC       LEA EDX,DWORD PTR SS:[EBP-44]
006F9CFC   .  E8 A700D1FF   CALL TXL.00409DA8
006F9D01   .  8B55 BC       MOV EDX,DWORD PTR SS:[EBP-44]
006F9D04   .  A1 3C927200   MOV EAX,DWORD PTR DS:[72923C]
006F9D09   .  8B00          MOV EAX,DWORD PTR DS:[EAX]
006F9D0B   .  05 D8040000   ADD EAX,4D8
006F9D10   .  E8 2FAFD0FF   CALL TXL.00404C44
006F9D15   .  8D4D B4       LEA ECX,DWORD PTR SS:[EBP-4C]
006F9D18   .  BA C8A16F00   MOV EDX,TXL.006FA1C8                     ;  pass
006F9D1D   .  8B45 F4       MOV EAX,DWORD PTR SS:[EBP-C]
006F9D20   .  E8 E315D5FF   CALL TXL.0044B308                         //取注册表里的pass
006F9D25   .  8B55 B4       MOV EDX,DWORD PTR SS:[EBP-4C]
006F9D28   .  A1 3C927200   MOV EAX,DWORD PTR DS:[72923C]
006F9D2D   .  8B00          MOV EAX,DWORD PTR DS:[EAX]
006F9D2F   .  05 DC040000   ADD EAX,4DC
006F9D34   .  E8 0BAFD0FF   CALL TXL.00404C44
006F9D39   .  EB 48         JMP SHORT TXL.006F9D83
006F9D3B   >  8D4D B0       LEA ECX,DWORD PTR SS:[EBP-50]
006F9D3E   .  BA D8A16F00   MOV EDX,TXL.006FA1D8                     ;  name
006F9D43   .  8B45 F4       MOV EAX,DWORD PTR SS:[EBP-C]
006F9D46   .  E8 BD15D5FF   CALL TXL.0044B308
006F9D4B   .  8B55 B0       MOV EDX,DWORD PTR SS:[EBP-50]
006F9D4E   .  A1 3C927200   MOV EAX,DWORD PTR DS:[72923C]
006F9D53   .  8B00          MOV EAX,DWORD PTR DS:[EAX]
006F9D55   .  05 D8040000   ADD EAX,4D8
006F9D5A   .  E8 E5AED0FF   CALL TXL.00404C44
006F9D5F   .  8D4D AC       LEA ECX,DWORD PTR SS:[EBP-54]
006F9D62   .  BA C8A16F00   MOV EDX,TXL.006FA1C8                     ;  pass
006F9D67   .  8B45 F4       MOV EAX,DWORD PTR SS:[EBP-C]
006F9D6A   .  E8 9915D5FF   CALL TXL.0044B308
006F9D6F   .  8B55 AC       MOV EDX,DWORD PTR SS:[EBP-54]
006F9D72   .  A1 3C927200   MOV EAX,DWORD PTR DS:[72923C]
006F9D77   .  8B00          MOV EAX,DWORD PTR DS:[EAX]
006F9D79   .  05 DC040000   ADD EAX,4DC
006F9D7E   .  E8 C1AED0FF   CALL TXL.00404C44
006F9D83   >  33C0          XOR EAX,EAX
006F9DDF   .  5A            POP EDX
006F9DE0   .  59            POP ECX
006F9DE1   .  59            POP ECX
006F9DE2   .  64:8910       MOV DWORD PTR FS:[EAX],EDX
006F9DE5   .  68 FA9D6F00   PUSH TXL.006F9DFA
006F9DEA   >  8B45 F4       MOV EAX,DWORD PTR SS:[EBP-C]
006F9DED   .  E8 6E9FD0FF   CALL TXL.00403D60
006F9DF2   .  C3            RETN
006F9DF3   .^ E9 FCA6D0FF   JMP TXL.004044F4
006F9DF8   .^ EB F0         JMP SHORT TXL.006F9DEA
006F9DFA   .  DD45 E0       FLD QWORD PTR SS:[EBP-20]
006F9DFD   .  DC65 E8       FSUB QWORD PTR SS:[EBP-18]
006F9E00   .  DD5D D8       FSTP QWORD PTR SS:[EBP-28]
006F9E03   .  9B            WAIT
006F9E04   .  D905 F0A16F00 FLD DWORD PTR DS:[6FA1F0]
006F9E0A   .  DC65 D8       FSUB QWORD PTR SS:[EBP-28]
006F9E0D   .  E8 3690D0FF   CALL TXL.00402E48
006F9E12   .  8B15 3C927200 MOV EDX,DWORD PTR DS:[72923C]            ;  TXL.0072CFC8
006F9E18   .  8B12          MOV EDX,DWORD PTR DS:[EDX]
006F9E1A   .  8982 9C040000 MOV DWORD PTR DS:[EDX+49C],EAX
006F9E20   .  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
006F9E23   .  8B90 34030000 MOV EDX,DWORD PTR DS:[EAX+334]
006F9E29   .  B9 FCA16F00   MOV ECX,TXL.006FA1FC                     ;  select count(*) as t_num from custom
006F9E2E   .  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
006F9E31   .  E8 6EFAFFFF   CALL TXL.006F98A4
006F9E36   .  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
006F9E39   .  8B80 34030000 MOV EAX,DWORD PTR DS:[EAX+334]
006F9E3F   .  BA 2CA26F00   MOV EDX,TXL.006FA22C                     ;  t_num
006F9E44   .  E8 7BE2DCFF   CALL TXL.004C80C4
006F9E49   .  8B10          MOV EDX,DWORD PTR DS:[EAX]
006F9E4B   .  FF52 58       CALL DWORD PTR DS:[EDX+58]
006F9E4E   .  8BD8          MOV EBX,EAX
006F9E50   .  8D4D A8       LEA ECX,DWORD PTR SS:[EBP-58]
006F9E53   .  A1 3C927200   MOV EAX,DWORD PTR DS:[72923C]
006F9E58   .  8B00          MOV EAX,DWORD PTR DS:[EAX]
006F9E5A   .  8B90 D8040000 MOV EDX,DWORD PTR DS:[EAX+4D8]
006F9E60   .  A1 C48E7200   MOV EAX,DWORD PTR DS:[728EC4]
006F9E65   .  8B00          MOV EAX,DWORD PTR DS:[EAX]
006F9E67   .  E8 083AFEFF   CALL TXL.006DD874                                //计算出注册码的CALL
006F9E6C   .  8B55 A8       MOV EDX,DWORD PTR SS:[EBP-58]                    //将计算出来的注册码给EDX
006F9E6F   .  A1 3C927200   MOV EAX,DWORD PTR DS:[72923C]
006F9E74   .  8B00          MOV EAX,DWORD PTR DS:[EAX]
006F9E76   .  8B80 DC040000 MOV EAX,DWORD PTR DS:[EAX+4DC]                   //把从注册表中读取出来的注册码给EAX
006F9E7C   .  E8 8BB1D0FF   CALL TXL.0040500C                                //比较
006F9E81   .  74 44         JE SHORT TXL.006F9EC7                            //相等跳,不相等则成为未注册版。爆破点。
006F9E83   .  8D4D A4       LEA ECX,DWORD PTR SS:[EBP-5C]
这段函数好长,就取这一段吧,后面的不要了......

看来这个就是启动前验证的地方咯!
我们在这里下断,然后运行起来看看。找到了出注册码的地方就可以作内存注册机了。

从以下任何一个地方下断都可以拦截到注册码:
006F9E6F   .  A1 3C927200   MOV EAX,DWORD PTR DS:[72923C]
006F9E74   .  8B00          MOV EAX,DWORD PTR DS:[EAX]
006F9E76   .  8B80 DC040000 MOV EAX,DWORD PTR DS:[EAX+4DC]            
006F9E7C   .  E8 8BB1D0FF   CALL TXL.0040500C           

比如:
中断地址:006F9E6F
中断次数:1
第一字节:A1
指令长度:5
保存下列信息
内存方式----EDX

制作出来注册机经过试验,可以注册。OK了!

今天就到这里,以后有时间再去分析注册码是如何计算出来的。

------------------------------------------------------------------------
明码比较,是一个简单的重启验证。欢迎高手指出其中错误,多多交流经验。
------------------------------------------------------------------------
【版权声明】本破文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
算法分析还不大会,有待进一步学习ing
2007-4-21 17:59
0
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
3
支持一下~~~~~~~~~~~~~~~
2007-4-21 19:54
0
游客
登录 | 注册 方可回帖
返回
//