tianxj 发表于 2010-5-1 11:35:03

VeryPDF PDF Editor v2.6 算法分析

【破文标题】VeryPDF PDF Editor v2.6 算法分析
【破文作者】tianxj
【作者邮箱】[email protected]
【作者主页】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
00408B68    57            push    edi
00408B69    8A06            mov   al, byte ptr
00408B6B    8A4E 01         mov   cl, byte ptr
00408B6E    8A56 0E         mov   dl, byte ptr
00408B71    884424 14       mov   byte ptr , al
00408B75    32C0            xor   al, al
00408B77    884C24 2C       mov   byte ptr , cl
00408B7B    8A4E 0F         mov   cl, byte ptr
00408B7E    884424 15       mov   byte ptr , al
00408B82    884424 2D       mov   byte ptr , al
00408B86    884424 21       mov   byte ptr , al
00408B8A    884424 09       mov   byte ptr , al
00408B8E    8A46 02         mov   al, byte ptr
00408B91    3C 50         cmp   al, 50
00408B93    885424 20       mov   byte ptr , dl
00408B97    884C24 08       mov   byte ptr , cl
00408B9B    75 57         jnz   short 00408BF4                   ; //注册码第3位不是"P"则挂
00408B9D    8D5424 08       lea   edx, dword ptr
00408BA1    52            push    edx
00408BA2    E8 9C730100   call    0041FF43
00408BA7    8BF8            mov   edi, eax
00408BA9    8D4424 18       lea   eax, dword ptr
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
00408BC1    51            push    ecx
00408BC2    E8 7C730100   call    0041FF43
00408BC7    8D5424 30       lea   edx, dword ptr
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 , 44
00408BE1    75 11         jnz   short 00408BF4                   ; //注册码第4位不是"D"则挂
00408BE3    8A4E 05         mov   cl, byte ptr
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
邮箱名:[email protected]
注册码:12PD5F7890123489

--------------------------------------------------------------
感谢飘云老大、猫老大、Nisy老大以及很多前辈们的学习教程以及所有帮助过我的论坛兄弟姐妹们!谢谢
--------------------------------------------------------------
【版权声明】破文是学习的手记,兴趣是成功的源泉;本破文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!

月之精灵 发表于 2010-5-1 12:58:25

我第一个来学习下,哈哈

GGLHY 发表于 2010-5-2 10:12:34

我第二个来学习下,呵呵!

樊盟 发表于 2010-5-9 20:42:28

向T大学习,偶们小菜继续努力!/:001

coolfire1983 发表于 2010-5-9 21:58:41

学习了啊
页: [1]
查看完整版本: VeryPDF PDF Editor v2.6 算法分析