【破文标题】小小通讯录破文
【破文作者】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了!
今天就到这里,以后有时间再去分析注册码是如何计算出来的。
------------------------------------------------------------------------
明码比较,是一个简单的重启验证。欢迎高手指出其中错误,多多交流经验。
------------------------------------------------------------------------
【版权声明】本破文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)