wan 发表于 2007-1-17 09:23:46

PDF2Word(pdf to word) 3.0 简单算法

文章标题:PDF2Word(pdf to word) 3.0 简单算法
软件简介:PDF2Word(pdf to word)让你可以把文本,图片以及其他内容从pdf文档中输出到word文档中,所以你能够重新编辑pdf内容,PDF2Word将保存文本,版面和图片到生成的word文档中。PDF2Word(pdf to word)是一个独立的软件,所以你不需要安装Microsoft Word,Adobe Acrobat,甚至 Acrobat Reader来运行它。
软件下载:http://www.globalpdf.com/pdf2word/
-=Cracked by wan=-
-----------------------------
OD载入,下断bp MessageBoxA很容易来到算法关键。。。

00405620   83EC 18         sub esp,18   //跟进算法CALL至此
00405623   83C9 FF         or ecx,FFFFFFFF
00405626   33C0            xor eax,eax
00405628   53            push ebx
00405629   56            push esi
0040562A   8B7424 24       mov esi,dword ptr ss:
0040562E   57            push edi
0040562F   8BFE            mov edi,esi
00405631   F2:AE         repne scas byte ptr es:
00405633   F7D1            not ecx
00405635   49            dec ecx
00405636   83F9 14         cmp ecx,14                     ; 注册码长度20位
00405639   74 07         je short dumped_.00405642
0040563B   5F            pop edi
0040563C   5E            pop esi
0040563D   5B            pop ebx
0040563E   83C4 18         add esp,18
00405641   C3            retn
00405642   8A06            mov al,byte ptr ds:
00405644   8A4E 01         mov cl,byte ptr ds:
00405647   8D5424 0C       lea edx,dword ptr ss:
0040564B   32DB            xor bl,bl
0040564D   52            push edx
0040564E   884424 1C       mov byte ptr ss:,al
00405652   885C24 1D       mov byte ptr ss:,bl
00405656   884C24 10       mov byte ptr ss:,cl
0040565A   885C24 11       mov byte ptr ss:,bl
0040565E   E8 7E9E1800   call dumped_.0058F4E1
00405663   8BF8            mov edi,eax
00405665   8D4424 1C       lea eax,dword ptr ss:
00405669   50            push eax
0040566A   E8 729E1800   call dumped_.0058F4E1
0040566F   03F8            add edi,eax                  ; 第二位+第一位
00405671   83C4 08         add esp,8
00405674   83FF 0B         cmp edi,0B                     ; 结果必须等于11
00405677   74 09         je short dumped_.00405682
00405679   5F            pop edi
0040567A   5E            pop esi
0040567B   33C0            xor eax,eax
0040567D   5B            pop ebx
0040567E   83C4 18         add esp,18
00405681   C3            retn
00405682   8A4E 12         mov cl,byte ptr ds:
00405685   8A56 13         mov dl,byte ptr ds:
00405688   8D4424 0C       lea eax,dword ptr ss:
0040568C   884C24 18       mov byte ptr ss:,cl
00405690   50            push eax
00405691   885C24 1D       mov byte ptr ss:,bl
00405695   885424 10       mov byte ptr ss:,dl
00405699   885C24 11       mov byte ptr ss:,bl
0040569D   E8 3F9E1800   call dumped_.0058F4E1
004056A2   8D4C24 1C       lea ecx,dword ptr ss:
004056A6   8BF8            mov edi,eax
004056A8   51            push ecx
004056A9   E8 339E1800   call dumped_.0058F4E1
004056AE   03F8            add edi,eax                  //第十九位+第二十位
004056B0   83C4 08         add esp,8
004056B3   83FF 0E         cmp edi,0E                     ; 结果为14
004056B6   74 09         je short dumped_.004056C1
004056B8   5F            pop edi
004056B9   5E            pop esi
004056BA   33C0            xor eax,eax
004056BC   5B            pop ebx
004056BD   83C4 18         add esp,18
004056C0   C3            retn
004056C1   8A56 05         mov dl,byte ptr ds:
004056C4   8A46 0D         mov al,byte ptr ds:
004056C7   8D4C24 0C       lea ecx,dword ptr ss:
004056CB   885424 18       mov byte ptr ss:,dl
004056CF   51            push ecx
004056D0   885C24 1D       mov byte ptr ss:,bl
004056D4   884424 10       mov byte ptr ss:,al
004056D8   885C24 11       mov byte ptr ss:,bl
004056DC   E8 009E1800   call dumped_.0058F4E1
004056E1   8D5424 1C       lea edx,dword ptr ss:
004056E5   8BF8            mov edi,eax
004056E7   52            push edx
004056E8   E8 F49D1800   call dumped_.0058F4E1
004056ED   03F8            add edi,eax                  //第六位+第十四位
004056EF   83C4 08         add esp,8
004056F2   83FF 09         cmp edi,9                      ; 结果等于9
004056F5   74 09         je short dumped_.00405700
004056F7   5F            pop edi
004056F8   5E            pop esi
004056F9   33C0            xor eax,eax
004056FB   5B            pop ebx
004056FC   83C4 18         add esp,18
004056FF   C3            retn
00405700   807E 0C 56      cmp byte ptr ds:,56   ; 第十三位为V
00405704   74 09         je short dumped_.0040570F
00405706   5F            pop edi
00405707   5E            pop esi
00405708   33C0            xor eax,eax
0040570A   5B            pop ebx
0040570B   83C4 18         add esp,18
0040570E   C3            retn
0040570F   8A4E 0E         mov cl,byte ptr ds:
00405712   33C0            xor eax,eax
00405714   80F9 33         cmp cl,33                      ; 第十五位为3
00405717   5F            pop edi
00405718   5E            pop esi
00405719   5B            pop ebx
0040571A   0F94C0          sete al
0040571D   83C4 18         add esp,18
00405720   C3            retn

=====================
算法总结:

注册码长度20位
第二位+第一位=11
第十九位+第二十位=14
第六位+第十四位=9
第十三位为V
第十五位为3

如注册码:83xxx6xxxxxxV33xxx86

[ 本帖最后由 wan 于 2007-1-17 13:22 编辑 ]

ZHOU2X 发表于 2007-1-17 12:48:16

学习中……支持!!!!顺便贴个E语言注册机源码:P

.版本 2

.子程序 _按钮1_被单击
.局部变量 zzi1, 整数型
.局部变量 zzi2, 整数型
.局部变量 code, 文本型

置随机数种子 ()
zzi1 = 取随机数 (1, 9)
zzi2 = 取随机数 (1, 9)
.判断循环首 (zzi1 + zzi2 ≠ 11)
    zzi1 = 取随机数 (1, 9)
    zzi2 = 取随机数 (1, 9)
.判断循环尾 ()
code = 到文本 (zzi1) + 到文本 (zzi2) + 到文本 (取随机数 (100, 999))
.判断循环首 (zzi1 + zzi2 ≠ 9)
    zzi1 = 取随机数 (1, 9)
    zzi2 = 取随机数 (1, 9)
.判断循环尾 ()
code = code + 到文本 (zzi1) + 到文本 (取随机数 (100000, 999999)) + “V” + 到文本 (zzi2) + “3” + 到文本 (取随机数 (100, 999))
.判断循环首 (zzi1 + zzi2 ≠ 14)
    zzi1 = 取随机数 (1, 9)
    zzi2 = 取随机数 (1, 9)
.判断循环尾 ()
code = code + 到文本 (zzi1) + 到文本 (zzi2)
编辑框1.内容 = code


[ 本帖最后由 ZHOU2X 于 2007-1-17 13:08 编辑 ]

madshime 发表于 2007-1-18 03:04:54

004056CF   51            push ecx
004056D0   885C24 1D       mov byte ptr ss:,bl
004056D4   884424 10       mov byte ptr ss:,al
004056D8   885C24 11       mov byte ptr ss:,bl
004056DC   E8 009E1800   call dumped_.0058F4E1
004056E1   8D5424 1C       lea edx,dword ptr ss:
004056E5   8BF8            mov edi,eax
004056E7   52            push edx
004056E8   E8 F49D1800   call dumped_.0058F4E1
004056ED   03F8            add edi,eax                  //第六位+第十四位 --->这里怎么看的呢?偶很菜。能不能指教一下。。。
004056EF   83C4 08         add esp,8
004056F2   83FF 09         cmp edi,9                      ; 结果等于9
004056F5   74 09         je short dumped_.00405700
004056F7   5F            pop edi
004056F8   5E            pop esi
004056F9   33C0            xor eax,eax
004056FB   5B            pop ebx
004056FC   83C4 18         add esp,18
004056FF   C3            retn
00405700   807E 0C 56      cmp byte ptr ds:,56   ; 第十三位为V---》》》这里又怎么看呢?


谢谢你的破文。。。指教一下

wan 发表于 2007-1-18 08:07:49

to madshime

004056C1   8A56 05         mov dl,byte ptr ds:   //ds: =第六位
004056C4   8A46 0D         mov al,byte ptr ds://ds:=第十四位

00405700   807E 0C 56      cmp byte ptr ds:,56//ds:=第十三位

Lancia 发表于 2007-1-19 11:43:23

非常不错!感谢!!!

hunter 发表于 2007-1-21 22:24:30

支持原创

god888 发表于 2007-2-26 10:58:15

不错,学习了。

ToT 发表于 2007-2-26 16:11:43

赞!和2.0的算法好像一模一样的没变啊

xwwx 发表于 2008-5-2 22:46:04

OD载入,下断bp MessageBoxA很容易来到算法关键。。。
楼主能指点一下么,我下断后,到不了楼主所在的地方。。。。。。郁闷

傻人有傻福 发表于 2008-5-3 00:12:32

感谢楼主发表原创破文 我先下回来研究一下 不懂再来看大侠的破文了:loveliness:
页: [1] 2
查看完整版本: PDF2Word(pdf to word) 3.0 简单算法