- UID
- 6475
注册时间2006-1-5
阅读权限30
最后登录1970-1-1
龙战于野
TA的每日心情 | 开心 2024-4-24 14:45 |
---|
签到天数: 188 天 [LV.7]常住居民III
|
【破文标题】PDF2Word(pdf to word) 2.0.08.29.2006 算法分析
【破文作者】cxx17
【作者邮箱】[email protected]
【作者主页】www.126sohu.com
【破解工具】peid、od
【破解平台】Windows XP SP2
【软件名称】PDF2Word(pdf to word) 2.0.08.29.2006
【原版下载】http://www.newhua.com/soft/23655.htm
【软件大小】3367kb
【保护方式】用户名+注册码
【软件简介】PDF2Word(pdf to word)让你可以把文本,图片以及其他内容从pdf文档中输出到word文档中,所以你能够重新编辑pdf内容,PDF2Word 将保存文本,版面和图片到生成的word文档中。PDF2Word(pdf to word)是一个独立的软件,所以你不需要安装Microsoft Word,Adobe Acrobat,甚至 Acrobat Reader来运行它。
------------------------------------------------------------------------------------------------
【破解声明】我是一只小菜鸟,偶得一点心得,愿与大家分享:)
------------------------------------------------------------------------------------------------
【破解过程】
一、安装软件后,运行注册有错误提示。PEiD查壳为:UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo,用
od载入,esp定律脱之,修复就能正常运行。
用PEID检查,软件是Microsoft Visual C++ 6.0编写。
二、OD载入后,运行软件,提示注册,填入注册名:[email protected] 试练码:9876543210abcdefghij
下断:bp MessageBoxA,点击注册,程序断在:
77D504EA > 8BFF MOV EDI,EDI ; 190C2E_.00672D94
77D504EC 55 PUSH EBP
77D504ED 8BEC MOV EBP,ESP
77D504EF 833D BC04D777 0>CMP DWORD PTR DS:[77D704BC],0
77D504F6 74 24 JE SHORT USER32.77D5051C
观察右下脚堆栈窗口,看见:
0012DFF4 |00405DB6 返回到 190C2E_.00405DB6 来自 USER32.MessageBoxA
0012DFF8 |000402D6
0012DFFC |005DF81C ASCII "Series number error, please check it and try again."
0012E000 |00000000
0012E004 |00000010
0012E008 |0012E150
取消断点,Ctrl+G,输入要跟随的表达式 00405DB6,点确定后来到:
00405DB6 68 FB030000 PUSH 3FB
00405DBB 56 PUSH ESI
00405DBC FF15 E8555B00 CALL DWORD PTR DS:[<&user32.GetDlgItem>] ; USER32.GetDlgItem
00405DC2 50 PUSH EAX
00405DC3 FF15 EC555B00 CALL DWORD PTR DS:[<&user32.SetFocus>] ; USER32.SetFocus
00405DC9 E9 DD010000 JMP 190C2E_.00405FAB
往上看:
00405D48 56 PUSH ESI ; 在这里f2下断
00405D49 F3:AB REP STOS DWORD PTR ES:[EDI]
00405D4B FF15 DC555B00 CALL DWORD PTR DS:[<&user32.GetDlgItemTe>; USER32.GetDlgItemTextA
00405D51 68 CC2C6700 PUSH 190C2E_.00672CCC ; ASCII "9876543210abcdefghij"
00405D56 E8 95F8FFFF CALL 190C2E_.004055F0 ; 关键call,f7进入
00405D5B 83C4 04 ADD ESP,4
00405D5E 85C0 TEST EAX,EAX
00405D60 74 44 JE SHORT 190C2E_.00405DA6 ; 关键跳,跳就失败
00405D62 6A 40 PUSH 40
00405D64 68 7CF85D00 PUSH 190C2E_.005DF87C ; ASCII "Thank you."
00405D69 68 50F85D00 PUSH 190C2E_.005DF850 ; ASCII "Thank you registered VeryPDF PDF2Word v2.0."
00405D6E 56 PUSH ESI
00405D6F FF15 E4555B00 CALL DWORD PTR DS:[<&user32.MessageBoxA>>; USER32.MessageBoxA
00405D75 51 PUSH ECX
00405D76 8BCC MOV ECX,ESP
00405D78 896424 10 MOV DWORD PTR SS:[ESP+10],ESP
00405D7C 68 CC2C6700 PUSH 190C2E_.00672CCC ; ASCII "9876543210abcdefghij"
00405D81 E8 3BD11900 CALL 190C2E_.005A2EC1
00405D86 E8 35FCFFFF CALL 190C2E_.004059C0
00405D8B 83C4 04 ADD ESP,4
00405D8E C705 942D6700 0>MOV DWORD PTR DS:[672D94],1
00405D98 6A 01 PUSH 1
00405D9A 56 PUSH ESI
00405D9B FF15 E0555B00 CALL DWORD PTR DS:[<&user32.EndDialog>] ; USER32.EndDialog
00405DA1 E9 05020000 JMP 190C2E_.00405FAB
00405DA6 6A 10 PUSH 10
00405DA8 6A 00 PUSH 0
00405DAA 68 1CF85D00 PUSH 190C2E_.005DF81C ; ASCII "Series number error, please check it and try again."
00405DAF 56 PUSH ESI
00405DB0 FF15 E4555B00 CALL DWORD PTR DS:[<&user32.MessageBoxA>>; USER32.MessageBoxA
00405DB6 68 FB030000 PUSH 3FB
00405DBB 56 PUSH ESI
00405DBC FF15 E8555B00 CALL DWORD PTR DS:[<&user32.GetDlgItem>] ; USER32.GetDlgItem
00405DC2 50 PUSH EAX
00405DC3 FF15 EC555B00 CALL DWORD PTR DS:[<&user32.SetFocus>] ; USER32.SetFocus
00405DC9 E9 DD010000 JMP 190C2E_.00405FAB
00405DC3 FF15 EC555B00 CALL DWORD PTR DS:[<&user32.SetFocus>] ; USER32.SetFocus
00405DC9 E9 DD010000 JMP 190C2E_.00405FAB
f7进入后来到这里:
004055F0 83EC 18 SUB ESP,18 ; f7来到这里
004055F3 83C9 FF OR ECX,FFFFFFFF
004055F6 33C0 XOR EAX,EAX
004055F8 53 PUSH EBX
004055F9 56 PUSH ESI
004055FA 8B7424 24 MOV ESI,DWORD PTR SS:[ESP+24] ; 假码
004055FE 57 PUSH EDI
004055FF 8BFE MOV EDI,ESI
00405601 F2:AE REPNE SCAS BYTE PTR ES:[EDI]
00405603 F7D1 NOT ECX
00405605 49 DEC ECX
00405606 83F9 14 CMP ECX,14 ; 这里是注册码为数比较 注册码是20位
00405609 74 07 JE SHORT 190C2E_.00405612 ; 不跳就失败
0040560B 5F POP EDI
0040560C 5E POP ESI
0040560D 5B POP EBX
0040560E 83C4 18 ADD ESP,18
00405611 C3 RETN
00405612 8A06 MOV AL,BYTE PTR DS:[ESI] ; 注册码第1位 9
00405614 8A4E 01 MOV CL,BYTE PTR DS:[ESI+1] ; 注册码第2位 8
00405617 8D5424 0C LEA EDX,DWORD PTR SS:[ESP+C]
0040561B 32DB XOR BL,BL
0040561D 52 PUSH EDX
0040561E 884424 1C MOV BYTE PTR SS:[ESP+1C],AL
00405622 885C24 1D MOV BYTE PTR SS:[ESP+1D],BL
00405626 884C24 10 MOV BYTE PTR SS:[ESP+10],CL
0040562A 885C24 11 MOV BYTE PTR SS:[ESP+11],BL
0040562E E8 4E811800 CALL 190C2E_.0058D781
00405633 8BF8 MOV EDI,EAX
00405635 8D4424 1C LEA EAX,DWORD PTR SS:[ESP+1C]
00405639 50 PUSH EAX
0040563A E8 42811800 CALL 190C2E_.0058D781
0040563F 03F8 ADD EDI,EAX
00405641 83C4 08 ADD ESP,8
00405644 83FF 0A CMP EDI,0A
00405647 74 09 JE SHORT 190C2E_.00405652 ; 注册码前两位的和是10 不是就出错
00405649 5F POP EDI
0040564A 5E POP ESI
0040564B 33C0 XOR EAX,EAX
0040564D 5B POP EBX
0040564E 83C4 18 ADD ESP,18
00405651 C3 RETN
00405652 8A4E 12 MOV CL,BYTE PTR DS:[ESI+12] ; 注册码第19位 i
00405655 8A56 13 MOV DL,BYTE PTR DS:[ESI+13] ; 注册码第20位 j
00405658 8D4424 0C LEA EAX,DWORD PTR SS:[ESP+C]
0040565C 884C24 18 MOV BYTE PTR SS:[ESP+18],CL
00405660 50 PUSH EAX
00405661 885C24 1D MOV BYTE PTR SS:[ESP+1D],BL
00405665 885424 10 MOV BYTE PTR SS:[ESP+10],DL
00405669 885C24 11 MOV BYTE PTR SS:[ESP+11],BL
0040566D E8 0F811800 CALL 190C2E_.0058D781
00405672 8D4C24 1C LEA ECX,DWORD PTR SS:[ESP+1C]
00405676 8BF8 MOV EDI,EAX
00405678 51 PUSH ECX
00405679 E8 03811800 CALL 190C2E_.0058D781
0040567E 03F8 ADD EDI,EAX
00405680 83C4 08 ADD ESP,8
00405683 83FF 0E CMP EDI,0E ; 注册码最后两位的和为14
00405686 74 09 JE SHORT 190C2E_.00405691 ; 不跳就出错
00405688 5F POP EDI
00405689 5E POP ESI
0040568A 33C0 XOR EAX,EAX
0040568C 5B POP EBX
0040568D 83C4 18 ADD ESP,18
00405690 C3 RETN
00405691 8A56 05 MOV DL,BYTE PTR DS:[ESI+5] ; 注册码第6位 4
00405694 8A46 0D MOV AL,BYTE PTR DS:[ESI+D] ; 注册码第14位 d
00405697 8D4C24 0C LEA ECX,DWORD PTR SS:[ESP+C]
0040569B 885424 18 MOV BYTE PTR SS:[ESP+18],DL
0040569F 51 PUSH ECX
004056A0 885C24 1D MOV BYTE PTR SS:[ESP+1D],BL
004056A4 884424 10 MOV BYTE PTR SS:[ESP+10],AL
004056A8 885C24 11 MOV BYTE PTR SS:[ESP+11],BL
004056AC E8 D0801800 CALL 190C2E_.0058D781
004056B1 8D5424 1C LEA EDX,DWORD PTR SS:[ESP+1C]
004056B5 8BF8 MOV EDI,EAX
004056B7 52 PUSH EDX
004056B8 E8 C4801800 CALL 190C2E_.0058D781
004056BD 03F8 ADD EDI,EAX
004056BF 83C4 08 ADD ESP,8
004056C2 83FF 09 CMP EDI,9 ; 第六位和十四位的和为9
004056C5 74 09 JE SHORT 190C2E_.004056D0 ; 不等就出错
004056C7 5F POP EDI
004056C8 5E POP ESI
004056C9 33C0 XOR EAX,EAX
004056CB 5B POP EBX
004056CC 83C4 18 ADD ESP,18
004056CF C3 RETN
004056D0 807E 0C 44 CMP BYTE PTR DS:[ESI+C],44 ; 第13位 c 真码为D
004056D4 74 09 JE SHORT 190C2E_.004056DF ; 不是就出错
004056D6 5F POP EDI
004056D7 5E POP ESI
004056D8 33C0 XOR EAX,EAX
004056DA 5B POP EBX
004056DB 83C4 18 ADD ESP,18
004056DE C3 RETN
004056DF 8A4E 0E MOV CL,BYTE PTR DS:[ESI+E]
004056E2 33C0 XOR EAX,EAX
004056E4 80F9 43 CMP CL,43 ; 第15位 e 真码为C
004056E7 5F POP EDI
004056E8 5E POP ESI
004056E9 5B POP EBX
004056EA 0F94C0 SETE AL
004056ED 83C4 18 ADD ESP,18
004056F0 C3 RETN
以上在调试时不等的地方通过修改寄存器来跳过出错的地方。
算法总结:
注册码=20位,
前二位代数和为10
第19和20位代数和为14
第6位和14位代数和为9
第13位为D
第15位为C
其余各位任意
提供一组注册码:
用户名:[email protected](任意)
KEY:9176543210abD5Cfgh95
VB KeyGen
+++++++++++
Private Sub Command1_Click()
Do
s1 = Int(Rnd() * 10)
s2 = Int(Rnd() * 10)
s3 = Int(Rnd() * 10)
s4 = Int(Rnd() * 10)
s5 = Int(Rnd() * 10)
s6 = Int(Rnd() * 10)
s7 = Int(Rnd() * 10)
s8 = Int(Rnd() * 10)
s9 = Int(Rnd() * 10)
s10 = Int(Rnd() * 10)
s11 = Int(Rnd() * 10)
s12 = Int(Rnd() * 10)
s13 = "D"
s14 = Int(Rnd() * 10)
s15 = "C"
s16 = Int(Rnd() * 10)
s17 = Int(Rnd() * 10)
s18 = Int(Rnd() * 10)
s19 = Int(Rnd() * 10)
s20 = Int(Rnd() * 10)
Loop Until (s1 + s2 = 10) And (s6 + s14 = 9) And (s19 + s20 = 14)
Text2.Text = s1 & s2 & s3 & s4 & s5 & s6 & s7 & s8 & s9 & s10 & s11 & s12 & s13 & s14 & s15 & s16 & s17 & s18 & s19 & s20
End Sub
------------------------------------------------------------------------------------------------
【版权声明】本破文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!
------------------------------------------------------------------------------------------------ |
|