吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 13722|回复: 54
收起左侧

[原创] PDF to Word Converter 3.1 算法分析+注册机[新手作品]

[复制链接]
pj2020 发表于 2017-3-24 21:17
本帖最后由 pj2020 于 2017-3-24 21:22 编辑

【文章标题】:PDF to Word Converter 3.1 算法分析+注册机[新手作品]
【文章作者】:pj2020
【软件名称】:PDF to Word Converter3.1
【软件大小】:5.81M
【保护方式】:注册码
【下载地址】:http://www.verypdf.com/app/pdf-to-word/index.html
【加壳方式】:无壳
【编写工具】:Microsoft Visual C++6.0
破解工具】:PEID、OD
【操作平台】:盗版XP3
【作者声明】:只是感兴趣,没有其他目的
【软件简介】用于将PDF电子书转换成WORD办公文档格式.不仅能导出PDF中的文本,还包括图片及其它PDF中的内容。并且,不会因为转换而导致文本段落、图片错位,转换为Word文档后,几乎与PDF原样相同。
【思路方法】:
一、查壳:无壳
QQ截图20170324211210.png


二、试用版本只有100次使用机会。试注册:
邮箱:abcde@163.com
假码:1234567890abcdefghij(调试得知注册码必须为20位)
试注册错误提示:Your registration key is wrong, pleasedouble check following issues:……

三、直接进到关键代码:
[Asm] 纯文本查看 复制代码
004066C6   .  E8 95F8FFFF   call pdf2word.00405F60                   ;  //F7进入算法CALL
004066CB   .  83C4 04       add esp,0x4
004066CE   .  85C0          test eax,eax
004066D0   . /74 44         je short pdf2word.00406716               ;  //关键跳转,爆破点

[Asm] 纯文本查看 复制代码
00405F60  /$  83EC 18       sub esp,0x18                             ;  //F7进到这里
00405F63  |.  83C9 FF       or ecx,-0x1
00405F66  |.  33C0          xor eax,eax
00405F68  |.  53            push ebx
00405F69  |.  56            push esi
00405F6A  |.  8B7424 24     mov esi,dword ptr ss:[esp+0x24]          ;  //假码给ESI
00405F6E  |.  57            push edi                                 ;  pdf2word.007F62B8
00405F6F  |.  8BFE          mov edi,esi
00405F71  |.  F2:AE         repne scas byte ptr es:[edi]             ;  //取第1位ASC码
00405F73  |.  F7D1          not ecx
00405F75  |.  49            dec ecx                                  ;  //ECX=ECX-1,这才是真正的注册码长度
00405F76  |.  83F9 14       cmp ecx,0x14                             ;  //注册码须为20位
00405F79  |.  74 07         je short pdf2word.00405F82               ;  //此跳必须跳
00405F7B  |.  5F            pop edi                                  ;  pdf2word.007F0039
00405F7C  |.  5E            pop esi                                  ;  pdf2word.007F0039
00405F7D  |.  5B            pop ebx                                  ;  pdf2word.007F0039
00405F7E  |.  83C4 18       add esp,0x18
00405F81  |.  C3            retn
00405F82  |>  8A06          mov al,byte ptr ds:[esi]                 ;  //取假码第1位ASC码值给al
00405F84  |.  8A4E 01       mov cl,byte ptr ds:[esi+0x1]             ;  //取假码第2位ASC码值给cl
00405F87  |.  8D5424 0C     lea edx,dword ptr ss:[esp+0xC]
00405F8B  |.  32DB          xor bl,bl
00405F8D  |.  52            push edx
00405F8E  |.  884424 1C     mov byte ptr ss:[esp+0x1C],al
00405F92  |.  885C24 1D     mov byte ptr ss:[esp+0x1D],bl 
00405F96  |.  884C24 10     mov byte ptr ss:[esp+0x10],cl
00405F9A  |.  885C24 11     mov byte ptr ss:[esp+0x11],bl
00405F9E  |.  E8 B4A61800   call pdf2word.00590657
00405FA3  |.  8BF8          mov edi,eax  
00405FA5  |.  8D4424 1C     lea eax,dword ptr ss:[esp+0x1C] 
00405FA9  |.  50            push eax
00405FAA  |.  E8 A8A61800   call pdf2word.00590657
00405FAF  |.  03F8          add edi,eax                              ;  //eax=00000002,edi=00000009,即第1位+第2位
00405FB1  |.  83C4 08       add esp,0x8
00405FB4  |.  83FF 0B       cmp edi,0xB                              ;  //edi=edi+eax=9+2=11,即第1位+第2位=11
00405FB7  |.  74 09         je short pdf2word.00405FC2
00405FB9  |.  5F            pop edi                                  ;  pdf2word.007F0039
00405FBA  |.  5E            pop esi                                  ;  pdf2word.007F0039
00405FBB  |.  33C0          xor eax,eax
00405FBD  |.  5B            pop ebx                                  ;  pdf2word.007F0039
00405FBE  |.  83C4 18       add esp,0x18
00405FC1  |.  C3            retn
00405FC2  |>  8A4E 12       mov cl,byte ptr ds:[esi+0x12]            ;  //取假码第19位ASC码值给cl
00405FC5  |.  8A56 13       mov dl,byte ptr ds:[esi+0x13]            ;  //取假码第20位ASC码值给dl
00405FC8  |.  8D4424 0C     lea eax,dword ptr ss:[esp+0xC]
00405FCC  |.  884C24 18     mov byte ptr ss:[esp+0x18],cl
00405FD0  |.  50            push eax
00405FD1  |.  885C24 1D     mov byte ptr ss:[esp+0x1D],bl
00405FD5  |.  885424 10     mov byte ptr ss:[esp+0x10],dl
00405FD9  |.  885C24 11     mov byte ptr ss:[esp+0x11],bl
00405FDD  |.  E8 75A61800   call pdf2word.00590657
00405FE2  |.  8D4C24 1C     lea ecx,dword ptr ss:[esp+0x1C]
00405FE6  |.  8BF8          mov edi,eax
00405FE8  |.  51            push ecx
00405FE9  |.  E8 69A61800   call pdf2word.00590657
00405FEE  |.  03F8          add edi,eax
00405FF0  |.  83C4 08       add esp,0x8
00405FF3  |.  83FF 0D       cmp edi,0xD                              ;  //算法跟上面一样,即第19位+第20位=13
00405FF6  |.  74 09         je short pdf2word.00406001
00405FF8  |.  5F            pop edi                                  ;  pdf2word.007F0039
00405FF9  |.  5E            pop esi                                  ;  pdf2word.007F0039
00405FFA  |.  33C0          xor eax,eax
00405FFC  |.  5B            pop ebx                                  ;  pdf2word.007F0039
00405FFD  |.  83C4 18       add esp,0x18
00406000  |.  C3            retn
00406001  |>  8A56 05       mov dl,byte ptr ds:[esi+0x5]             ;  //取假码第6位ASC码值给dl
00406004  |.  8A46 0D       mov al,byte ptr ds:[esi+0xD]             ;  //取假码第14位ASC码值给al
00406007  |.  8D4C24 0C     lea ecx,dword ptr ss:[esp+0xC]
0040600B  |.  885424 18     mov byte ptr ss:[esp+0x18],dl
0040600F  |.  51            push ecx
00406010  |.  885C24 1D     mov byte ptr ss:[esp+0x1D],bl
00406014  |.  884424 10     mov byte ptr ss:[esp+0x10],al
00406018  |.  885C24 11     mov byte ptr ss:[esp+0x11],bl
0040601C  |.  E8 36A61800   call pdf2word.00590657
00406021  |.  8D5424 1C     lea edx,dword ptr ss:[esp+0x1C]
00406025  |.  8BF8          mov edi,eax
00406027  |.  52            push edx
00406028  |.  E8 2AA61800   call pdf2word.00590657
0040602D  |.  03F8          add edi,eax
0040602F  |.  83C4 08       add esp,0x8
00406032  |.  83FF 09       cmp edi,0x9                              ;  //算法跟上面一样,即第6位+第14位=9
00406035  |.  74 09         je short pdf2word.00406040
00406037  |.  5F            pop edi                                  ;  pdf2word.007F0039
00406038  |.  5E            pop esi                                  ;  pdf2word.007F0039
00406039  |.  33C0          xor eax,eax
0040603B  |.  5B            pop ebx                                  ;  pdf2word.007F0039
0040603C  |.  83C4 18       add esp,0x18
0040603F  |.  C3            retn
00406040  |>  807E 0C 56    cmp byte ptr ds:[esi+0xC],0x56           ;  //第13位为大写字母V
00406044  |.  74 09         je short pdf2word.0040604F
00406046  |.  5F            pop edi                                  ;  pdf2word.007F0039
00406047  |.  5E            pop esi                                  ;  pdf2word.007F0039
00406048  |.  33C0          xor eax,eax
0040604A  |.  5B            pop ebx                                  ;  pdf2word.007F0039
0040604B  |.  83C4 18       add esp,0x18
0040604E  |.  C3            retn
0040604F  |>  807E 0E 33    cmp byte ptr ds:[esi+0xE],0x33           ;  //第15位为数字3
00406053  |.  74 09         je short pdf2word.0040605E
00406055  |.  5F            pop edi                                  ;  pdf2word.007F0039
00406056  |.  5E            pop esi                                  ;  pdf2word.007F0039
00406057  |.  33C0          xor eax,eax
00406059  |.  5B            pop ebx                                  ;  pdf2word.007F0039
0040605A  |.  83C4 18       add esp,0x18
0040605D  |.  C3            retn
0040605E  |>  8A4E 0F       mov cl,byte ptr ds:[esi+0xF]             ;  //第16位,ds:[007F61FF]=66 ('f')
00406061  |.  33C0          xor eax,eax
00406063  |.  80F9 32       cmp cl,0x32                              ;  //第16位=2
00406066  |.  5F            pop edi                                  ;  pdf2word.007F0039
00406067  |.  5E            pop esi                                  ;  pdf2word.007F0039
00406068  |.  5B            pop ebx                                  ;  pdf2word.007F0039
00406069  |.  0F94C0        sete al                                  ;  
0040606C  |.  83C4 18       add esp,0x18
0040606F  \.  C3            retn


【算法总结】:
注册码必须为20,与注册名无关(与3.0版本一样)
1+2=11(与3.0版本一样)
19+20=133.0版本为14
6+14=9(与3.0版本一样)
13位为ASC码为56=V(与3.0版本一样)
15位为ASC码为33=3(与3.0版本一样)
16位为ASC码为32=23.0版本无这个限制)


一组注册码格式为:47***0******V932**58
注册码保存在安装文件夹里:\VeryPDFPDF2Word v3.1\config.ini


【体会】:
一、本程序虽为非明码比较,但算法部分比较清晰,没有过多的干扰代码,适合吾等新手练习。
二、本软件的3.0版本以前有人破解过,本文分析的是3.1版本。3.0版本的注册方法有些改动。本文是一个新手小白分析思路,仅供如吾等之小白参考。刚刚在本坛注册成功,先奉献这点小小心得。
三、附上一组注册码:
邮箱:pj2020
注册码:29P468Lygs8fV132fN85


2.png




PDF to Word Converter 3.1 算法注册机.rar (79.07 KB, 下载次数: 304)

免费评分

参与人数 14吾爱币 +20 热心值 +13 收起 理由
1254981099 + 1 + 1 谢谢@Thanks!
kingpanfeng + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
东非大裂谷 + 1 我很赞同!
海天一色001 + 1 + 1 谢谢@Thanks!
xsj-126 + 1 + 1 用心讨论,共获提升!
Sound + 8 + 1 已答复!
zm298 + 1 + 1 谢谢@Thanks!
大海萌萌 + 1 + 1 厉害了!~
萌萌哒新人 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
starh + 1 + 1 用心讨论,共获提升!
lv3164 + 1 + 1 求中文版本
红阳 + 1 + 1 用心讨论,共获提升!
zgpo + 1 + 1 谢谢@Thanks!
youngnku + 1 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| pj2020 发表于 2017-4-5 20:46
a1103688841 发表于 2017-4-4 23:50
兄弟你是怎么找到这个算法CALL的 用了什么断点吗

试注册错误提示:Your registration key is wrong,please double check following issues

根据上面的错误提示,然后搜索字串,往上找到跳到此处的跳转,跳转上面的CALL就是
神龙马 发表于 2017-3-26 13:12
13593392936 发表于 2017-3-26 13:14 来自手机
头像被屏蔽
eflys 发表于 2017-3-26 13:21 来自手机
提示: 作者被禁止或删除 内容自动屏蔽
zgpo 发表于 2017-3-26 13:35
好东西,感谢分享
黑狼战神 发表于 2017-3-26 14:24
比较详细,适合我等新手演练
byh3025 发表于 2017-3-26 15:57
膜拜下懂算法的大神,不懂算法是硬伤,羡慕啊
MakeSunshine 发表于 2017-3-26 16:06
非常不错。
kyong 发表于 2017-3-26 16:12
不错的东西,正需要,感谢感谢
Open 发表于 2017-3-26 16:53
黑狼战神 发表于 2017-3-26 14:24
比较详细,适合我等新手演练

你的签名看着很不错
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-29 02:00

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表