【破文标题】VeryPDF PDF Editor v2.6 算法分析
【破文作者】tianxj
【作者邮箱】tianxj_2007@126.com
【作者主页】WwW.ChiNaPYG.CoM
【破解工具】PEiD,OD
【破解平台】Windows XP
【软件名称】VeryPDF PDF Editor v2.6
【软件大小】12.75MB
【软件类别】国外软件
【软件授权】共享版
【软件语言】英文
【运行环境】Windows XP/2K
【原版下载】http://verypdf.com/pdf-editor/index.html
【保护方式】注册码
【软件简介】让您方便地打开并修改 PDF 文档内容(文本,图形……)的工具,这个强大的工具令您从此可以直接编辑 PDF 文档的内容、并且可以添加您自己的注释、内容、图
形……到 PDF文档内了。软件对中文支持非常好
【破解声明】我是一只小菜鸟,偶得一点心得,愿与大家分享:)
--------------------------------------------------------------
【破解内容】
--------------------------------------------------------------
**************************************************************
一、运行程序,进行注册,输入错误的注册信息进行检测,有提示信息
**************************************************************
二、用PEiD对pdfeditor.exe查壳,为 UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo
脱壳后为Microsoft Visual C++ 6.0
**************************************************************
三、载入OD,下万能断点
00409312 68 74474600 push 00464774 ; //万能断点返回到这里 00409317 E8 44F8FFFF call 00408B60 ; //关键CALL,跟进 0040931C 83C4 04 add esp, 4 0040931F 85C0 test eax, eax 00409321 0F84 A6000000 je 004093CD ; //关键跳转 00409327 6A 40 push 40 00409329 68 B4124600 push 004612B4 ; ASCII "PDF Editor" 0040932E 68 E41E4600 push 00461EE4 ; ASCII "Thanks for you purchasing the PDF Editor." 00409333 56 push esi 00409334 FF15 98F54400 call dword ptr [<&USER32.MessageBoxA>>; user32.MessageBoxA ============================================================== 00408B60 83EC 30 sub esp, 30 00408B63 56 push esi 00408B64 8B7424 38 mov esi, dword ptr [esp+38] 00408B68 57 push edi 00408B69 8A06 mov al, byte ptr [esi] 00408B6B 8A4E 01 mov cl, byte ptr [esi+1] 00408B6E 8A56 0E mov dl, byte ptr [esi+E] 00408B71 884424 14 mov byte ptr [esp+14], al 00408B75 32C0 xor al, al 00408B77 884C24 2C mov byte ptr [esp+2C], cl 00408B7B 8A4E 0F mov cl, byte ptr [esi+F] 00408B7E 884424 15 mov byte ptr [esp+15], al 00408B82 884424 2D mov byte ptr [esp+2D], al 00408B86 884424 21 mov byte ptr [esp+21], al 00408B8A 884424 09 mov byte ptr [esp+9], al 00408B8E 8A46 02 mov al, byte ptr [esi+2] 00408B91 3C 50 cmp al, 50 00408B93 885424 20 mov byte ptr [esp+20], dl 00408B97 884C24 08 mov byte ptr [esp+8], cl 00408B9B 75 57 jnz short 00408BF4 ; //注册码第3位不是"P"则挂 00408B9D 8D5424 08 lea edx, dword ptr [esp+8] 00408BA1 52 push edx 00408BA2 E8 9C730100 call 0041FF43 00408BA7 8BF8 mov edi, eax 00408BA9 8D4424 18 lea eax, dword ptr [esp+18] 00408BAD 50 push eax 00408BAE E8 90730100 call 0041FF43 00408BB3 03F8 add edi, eax 00408BB5 83C4 08 add esp, 8 00408BB8 83FF 0A cmp edi, 0A 00408BBB 75 37 jnz short 00408BF4 ; //注册码右边第16位与左边第1位之和不等于0Ah则挂 00408BBD 8D4C24 20 lea ecx, dword ptr [esp+20] 00408BC1 51 push ecx 00408BC2 E8 7C730100 call 0041FF43 00408BC7 8D5424 30 lea edx, dword ptr [esp+30] 00408BCB 8BF8 mov edi, eax 00408BCD 52 push edx 00408BCE E8 70730100 call 0041FF43 00408BD3 03F8 add edi, eax 00408BD5 83C4 08 add esp, 8 00408BD8 83FF 0A cmp edi, 0A 00408BDB 75 17 jnz short 00408BF4 ; //注册码右边第15位与左边第2位之和不等于0Ah则挂 00408BDD 807E 03 44 cmp byte ptr [esi+3], 44 00408BE1 75 11 jnz short 00408BF4 ; //注册码第4位不是"D"则挂 00408BE3 8A4E 05 mov cl, byte ptr [esi+5] 00408BE6 33C0 xor eax, eax 00408BE8 80F9 46 cmp cl, 46 ; //注册码第6位不是"F"则挂 00408BEB 5F pop edi 00408BEC 0F94C0 sete al 00408BEF 5E pop esi 00408BF0 83C4 30 add esp, 30 00408BF3 C3 retn 00408BF4 5F pop edi 00408BF5 33C0 xor eax, eax 00408BF7 5E pop esi 00408BF8 83C4 30 add esp, 30 00408BFB C3 retn
【破解总结】
--------------------------------------------------------------
【算法总结】
1.注册码与用户名和邮箱名无关
2.注册码第3位必须是"P";第4位必须是"D";第6位必须"F"
3.注册码右边第16位与左边第1位之和等于0Ah;右边第15位与左边第2位之和等于0Ah
一组可用的注册信息:
用户名:tianxj
邮箱名:tianxj_2007@126.com
注册码:12PD5F7890123489
--------------------------------------------------------------
感谢飘云老大、猫老大、Nisy老大以及很多前辈们的学习教程以及所有帮助过我的论坛兄弟姐妹们!谢谢
--------------------------------------------------------------
【版权声明】破文是学习的手记,兴趣是成功的源泉;本破文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!