吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 11200|回复: 15
收起左侧

[原创] AP PDF Password Recovery 算法分析

  [复制链接]
GCCG 发表于 2009-11-6 17:51
本帖最后由 GCCG 于 2009-11-6 18:04 编辑

【文章标题】: AP PDF Password Recovery 算法分析
【软件名称】: AP PDF Password Recovery
【下载地址】: http://www.adultpdf.com/
【加壳方式】: 未加壳
【编写语言】: delphi
【使用工具】: OD+dede
【操作平台】: XP SP3
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【软件简介】:
    The PDF Password Recovery can be used to decrypt protected Adobe Acrobat PDF files, which have "owner" password set, preventing the file from editing(changing), printing, selecting text and graphics(and copying them into the Clipboard), or adding/changing annotations and form fields. Pdf decrypt is being done instantly. Decrypted file can be opened in any PDF viewer(e.g. Adobe Acrobat Reader)without any restrictions -- i.e. with edit/copy/print functions enabled. All versions of Adobe Acrobat are supported.
    The standard security provided by PDF consists of two different methods and two different passwords. A PDF document may be protected by password for opening ('user' password) and the document may also specify operations that should be restricted even when the document is decrypted: printing; copying text and graphics out of the document; modifying the document; and adding or modifying text notes and AcroForm fields (using 'owner' password).
【详细过程】
  前几天下载一个PDF文件,被加密了,不能打印、不能复制、不能文字识别、不能快照、而且有背景水印,只能阅读,非常不清晰。
  
  于是在网上搜到一个AP PDF Password Recovery软件,该软件不同于一般的暴力破解pdf 它能瞬间解除pdf的加密限制。
  
  软件需要注册,delphi写的,未加壳,首先用dede载入,找到注册按钮事件地址:00409520
  
  OD载入,在00409520下断,输入假注册码16位(后面有分析):123456789ABCDEFG,断在下面:
  
  
  00409520  /.  55            push ebp
  00409521  |.  8BEC          mov ebp,esp
  00409523  |.  83C4 C4       add esp,-3C
  00409526  |.  53            push ebx
  00409527  |.  56            push esi
  00409528  |.  57            push edi
  00409529  |.  8BD8          mov ebx,eax
  0040952B  |.  BE E41C4C00   mov esi,AP_PDF_P.004C1CE4
  00409530  |.  8D7D C4       lea edi,[local.15]
  00409533  |.  B8 A81F4C00   mov eax,AP_PDF_P.004C1FA8
  00409538  |.  E8 878A0A00   call AP_PDF_P.004B1FC4
  
  F8 跟踪,来到
  
  00409554  |.  E8 53C10700   call AP_PDF_P.004856AC            ;  取注册码
  00409559  |.  66:C747 10 08>mov word ptr ds:[edi+10],8
  0040955F  |.  837D FC 00    cmp [local.1],0                   ;  注册码是否为空
  00409563  |.  74 05         je short AP_PDF_P.0040956A
  00409565  |.  8B4D FC       mov ecx,[local.1]
  00409568  |.  EB 03         jmp short AP_PDF_P.0040956D
  0040956A  |>  8D4E 47       lea ecx,dword ptr ds:[esi+47]
  0040956D  |>  51            push ecx
  0040956E  |.  53            push ebx
  0040956F  |.  E8 50FFFFFF   call AP_PDF_P.004094C4            ;  注册算法处,F7进入
  00409574  |.  83C4 08       add esp,8
  00409577  |.  3C 01         cmp al,1                          ;  若al不等于1 注册失败
  
  
  在0040956F 处F7进入 算法非常简单,如下:
  
  004094C4  /$  55            push ebp
  004094C5  |.  8BEC          mov ebp,esp
  004094C7  |.  53            push ebx
  004094C8  |.  56            push esi
  004094C9  |.  57            push edi
  004094CA  |.  8B5D 0C       mov ebx,[arg.2]                 ;  注册码放入EBX
  004094CD  |.  85DB          test ebx,ebx                    ;  注册码是否为空
  004094CF  |.  74 0C         je short AP_PDF_P.004094DD      ;  注册码为空则eax置0,并返回,注册失败
  004094D1  |.  53            push ebx
  004094D2  |.  E8 B1870A00   call AP_PDF_P.004B1C88          ;  取注册码长度
  004094D7  |.  59            pop ecx
  004094D8  |.  83F8 10       cmp eax,10                      ;  注册码长度是否为16位
  004094DB  |.  74 04         je short AP_PDF_P.004094E1      ;  注册码不是16位 则注册失败
  004094DD  |>  33C0          xor eax,eax
  004094DF  |.  EB 39         jmp short AP_PDF_P.0040951A
  004094E1  |>  0FBE73 06     movsx esi,byte ptr ds:[ebx+6]   ;  第七位的ASCII码值放入ESI
  004094E5  |.  8BC6          mov eax,esi                     ;  第七位的ASCII码值放入EAX
  004094E7  |.  0FBE7B 0E     movsx edi,byte ptr ds:[ebx+E]   ;  第十五位的ASCII码值放入EDI
  004094EB  |.  03C7          add eax,edi                     ;  第七位和第十五位的ASCII码值相加后放入EAX
  004094ED  |.  3D 9B000000   cmp eax,9B                      ;  第七位和第十五位的ASCII码值相加后是否等于9B
  004094F2  |.  75 24         jnz short AP_PDF_P.00409518     ;  不等于9B 注册失败
  004094F4  |.  8BCE          mov ecx,esi                     ;  第七位的ASCII码值放入ECX
  004094F6  |.  2BCF          sub ecx,edi                     ;  第七位与第十五位的ASCII码值相减,放入ECX
  004094F8  |.  8BC1          mov eax,ecx                     ;  将相减结果放入EAX
  004094FA  |.  99            cdq                             ;  如果EAX<80000000h 则将EDX置零,否则将FFFFFFFF放入EDX
  004094FB  |.  33C2          xor eax,edx                     ;  将上次相减结果与EDX异或,结果存入EAX
  004094FD  |.  2BC2          sub eax,edx                     ;  异或结果再减去EDX值,放入EAX
  004094FF  |.  83C0 41       add eax,41                      ;  EAX+41
  00409502  |.  0FBE53 09     movsx edx,byte ptr ds:[ebx+9]   ;  第十位ASCII值放入EDX中
  00409506  |.  3BC2          cmp eax,edx                     ;  比较上次运算结果与EDX是否相等
  00409508  |.  75 0E         jnz short AP_PDF_P.00409518     ;  不等,则注册失败
  0040950A  |.  8B45 08       mov eax,[arg.1]
  0040950D  |.  C680 34030000>mov byte ptr ds:[eax+334],1
  00409514  |.  B0 01         mov al,1                        ;  置al=1
  
  算法总结:
  
  0. 注意以下使用的均为16进制(ASCII也为16进制)
  
  1. 注册码长度应为16位
  
  2. 设Reg7,Reg10,Reg15分别代表注册码的第七、第十、第十五位,ASC()代表取该位注册码的ASCII值,则以上算法可描述为:
  
     ASC(Reg7)+ASC(Reg15)=9B   ...............................................①
     
     IF ASC(Reg7)-ASC(Reg15)<80000000h then
        EDX=00000000
     Else
        EDX=FFFFFFFF
     End IF

     
     ASC(Reg10)={[ASC(Reg7)-ASC(Reg15)] Xor EDX}-EDX +41 .....................②
  
  
  3.只要满足以上 ①、②两个等式,则注册成功。
  
  算法超简单,看过觉得幼稚,莫怪,让各位见笑了。注册机见附件。
  
--------------------------------------------------------------------------------
【版权声明】: 本文原创于吾爱破解论坛, 转载请注明作者并保持文章的完整, 谢谢!

                                                       2009年11月06日 17:43:23

AP PDF Password Recovery V3.1.0.rar

609.87 KB, 下载次数: 368, 下载积分: 吾爱币 -1 CB

Adult PDF Password Recovery 汉化版

注册机.rar

84.14 KB, 下载次数: 267, 下载积分: 吾爱币 -1 CB

Adult PDF Password Recovery 注册机

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

Hmily 发表于 2009-11-6 18:20
鼓励原创,加精华,再接再厉!
 楼主| GCCG 发表于 2009-11-6 18:30
鼓励原创,加精华,再接再厉!
Hmily 发表于 2009-11-6 18:20



多谢老大,头一次的精华,激动中....
hupan2008 发表于 2009-11-6 20:33
hupan2008 发表于 2009-11-6 20:35
膜拜LZ了 ,谢谢
leisurely 发表于 2009-11-8 23:47
支持一下原创,同时认真学习~~~~

谢谢分享~~~
Alar30 发表于 2009-11-8 23:58
来学习了哈
lovettww 发表于 2009-11-10 23:01
不知道注册机怎么写,不怎么会哦
海风心情 发表于 2010-4-3 15:16
太好了,正需要,感谢分享!
ok1022 发表于 2010-5-3 15:33
谢谢楼主,学习一下
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-15 14:44

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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