- UID
 - 28352
 
 注册时间2007-2-21
阅读权限40
最后登录1970-1-1
独步武林 
   
 
 
 
TA的每日心情  | 开心 2024-5-1 14:44 | 
|---|
 
  签到天数: 2 天 [LV.1]初来乍到  
 | 
 
【破文标题】Ap Document To PDF V2.1算法分析 
【破文作者】tianxj 
【作者邮箱】[email protected] 
【作者主页】WwW.ChiNaPYG.CoM 
【破解工具】PEiD,OD 
【破解平台】D-Windows XP sp2 
【软件名称】Ap Document To PDF V2.1 
【软件大小】1.3 MB  
【软件语言】英文  
【软件类别】国外软件 / 共享软件 / 文字处理 
【更新时间】2007-01-18 
【原版下载】自己找一下 
【保护方式】注册码 
【软件简介】文档转换工具。可以将你的文档批量转换成可搜索的PDF文件。允许将任何windows应用程序的文档转换成上百种文件类型,包括可搜索的PDF, DOC, TIFF, JPEG, RTF, HTML等等。只要应用程序支持打印功能,就能转换成PDF文档。对于PDF文档,甚至提供了多种选项:字体嵌入、分辨率、页面尺寸、文档信息、安全书签、自动链接、多语言等。是制作专业级PDF文档的最佳选择。  
Picture To Video Converter图片视频转换器的应用被设计为一个易于使用的工具,加入图片一起视频过渡效果。 
【破解声明】我是一只小菜鸟,偶得一点心得,愿与大家分享:) 
-------------------------------------------------------------- 
【破解内容】 
-------------------------------------------------------------- 
************************************************************** 
一、运行程序,进行注册,输入错误的注册信息进行检测,有提示信息 
"Series number error,please check it and try again." 
************************************************************** 
二、用PEiD对ApDocToPDF.exe查壳,为 ASPack 2.12 -> Alexey Solodovnikov 
************************************************************** 
三、带壳调试,运行OD,打开ApDocToPDF.exe,输入注册信息,F12暂停,alt+K 
调用堆栈 , 项目 14 
 地址=0012F0D8 
 堆栈=00409317 
 程序过程 / 参数=? ApDocToP.004C22F8 
 调用来自=ApDocToP.00409312 
 结构=0012F0D4 
==============================================================- 004091E4    55                  PUSH    EBP
 
 - 004091E5    8BEC                MOV     EBP, ESP
 
 - 004091E7    83C4 D0             ADD     ESP, -30
 
 - 004091EA    53                  PUSH    EBX
 
 - 004091EB    8BD8                MOV     EBX, EAX
 
 - 004091ED    B8 3C5C4C00         MOV     EAX, ApDocToP.004C5C3C
 
 - 004091F2    E8 FDB00A00         CALL    ApDocToP.004B42F4
 
 - 004091F7    66:C745 E4 1400     MOV     WORD PTR [EBP-1C], 14
 
 - 004091FD    33D2                XOR     EDX, EDX
 
 - 004091FF    8955 FC             MOV     DWORD PTR [EBP-4], EDX
 
 - 00409202    8D55 FC             LEA     EDX, DWORD PTR [EBP-4]
 
 - 00409205    FF45 F0             INC     DWORD PTR [EBP-10]
 
 - 00409208    8B83 F4020000       MOV     EAX, DWORD PTR [EBX+2F4]
 
 - 0040920E    E8 75E40700         CALL    ApDocToP.00487688
 
 - 00409213    66:C745 E4 0800     MOV     WORD PTR [EBP-1C], 8
 
 - 00409219    837D FC 00          CMP     DWORD PTR [EBP-4], 0
 
 - 0040921D    74 05               JE      SHORT ApDocToP.00409224          ; //注册码为空则跳
 
 - 0040921F    8B4D FC             MOV     ECX, DWORD PTR [EBP-4]           ; //试练码
 
 - 00409222    EB 05               JMP     SHORT ApDocToP.00409229
 
 - 00409224    B9 645A4C00         MOV     ECX, ApDocToP.004C5A64
 
 - 00409229    51                  PUSH    ECX
 
 - 0040922A    53                  PUSH    EBX
 
 - 0040922B    E8 58FFFFFF         CALL    ApDocToP.00409188                ; //关键CALL
 
 - 00409230    83C4 08             ADD     ESP, 8
 
 - 00409233    3C 01               CMP     AL, 1
 
 - 00409235    0F85 C3000000       JNZ     ApDocToP.004092FE                ; //关键跳转
 
 - 0040923B    6A 40               PUSH    40
 
 - 0040923D    68 BC5A4C00         PUSH    ApDocToP.004C5ABC                ; ASCII "Registered Version"
 
 - 00409242    68 655A4C00         PUSH    ApDocToP.004C5A65                ; ASCII "Thank you register Ap DoumentToPDF software,if you have any problem,contact us please."
 
 - 00409247    8BC3                MOV     EAX, EBX
 
 - 00409249    E8 4E4B0800         CALL    ApDocToP.0048DD9C
 
 - 0040924E    50                  PUSH    EAX
 
 - 0040924F    E8 A4900B00         CALL    ApDocToP.004C22F8                ; JMP 到 USER32.MessageBoxA
 
 - 00409254    8D55 D0             LEA     EDX, DWORD PTR [EBP-30]
 
 - 00409257    52                  PUSH    EDX
 
 - 00409258    68 CF5A4C00         PUSH    ApDocToP.004C5ACF                ; ASCII "Software\AdultPDF\Doc2PDF"
 
 - 0040925D    68 02000080         PUSH    80000002
 
 - 00409262    E8 97870B00         CALL    ApDocToP.004C19FE                ; JMP 到 advapi32.RegCreateKeyA
 
 - 00409267    837D D0 00          CMP     DWORD PTR [EBP-30], 0
 
 - 0040926B    74 3C               JE      SHORT ApDocToP.004092A9
 
 - 0040926D    837D FC 00          CMP     DWORD PTR [EBP-4], 0
 
 - 00409271    74 05               JE      SHORT ApDocToP.00409278
 
 - 00409273    8B45 FC             MOV     EAX, DWORD PTR [EBP-4]
 
 - 00409276    EB 05               JMP     SHORT ApDocToP.0040927D
 
 - 00409278    B8 E95A4C00         MOV     EAX, ApDocToP.004C5AE9
 
 - 0040927D    50                  PUSH    EAX
 
 - 0040927E    E8 FDAC0A00         CALL    ApDocToP.004B3F80
 
 - 00409283    59                  POP     ECX
 
 - 00409284    40                  INC     EAX
 
 - 00409285    50                  PUSH    EAX
 
 - 00409286    837D FC 00          CMP     DWORD PTR [EBP-4], 0
 
 - 0040928A    74 05               JE      SHORT ApDocToP.00409291
 
 - 0040928C    8B55 FC             MOV     EDX, DWORD PTR [EBP-4]
 
 - 0040928F    EB 05               JMP     SHORT ApDocToP.00409296
 
 - 00409291    BA F15A4C00         MOV     EDX, ApDocToP.004C5AF1
 
 - 00409296    52                  PUSH    EDX
 
 - 00409297    6A 01               PUSH    1
 
 - 00409299    6A 00               PUSH    0
 
 - 0040929B    68 EA5A4C00         PUSH    ApDocToP.004C5AEA                ; ASCII "Serial"
 
 - 004092A0    8B45 D0             MOV     EAX, DWORD PTR [EBP-30]
 
 - 004092A3    50                  PUSH    EAX
 
 - 004092A4    E8 6D870B00         CALL    ApDocToP.004C1A16                ; JMP 到 advapi32.RegSetValueExA
 
 - 004092A9    8B4D D0             MOV     ECX, DWORD PTR [EBP-30]
 
 - 004092AC    51                  PUSH    ECX
 
 - 004092AD    E8 46870B00         CALL    ApDocToP.004C19F8                ; JMP 到 advapi32.RegCloseKey
 
 - 004092B2    33D2                XOR     EDX, EDX
 
 - 004092B4    8B83 08030000       MOV     EAX, DWORD PTR [EBX+308]
 
 - 004092BA    8B08                MOV     ECX, DWORD PTR [EAX]
 
 - 004092BC    FF51 64             CALL    DWORD PTR [ECX+64]
 
 - 004092BF    66:C745 E4 2000     MOV     WORD PTR [EBP-1C], 20
 
 - 004092C5    BA F25A4C00         MOV     EDX, ApDocToP.004C5AF2           ; ASCII "Close"
 
 - 004092CA    8D45 F8             LEA     EAX, DWORD PTR [EBP-8]
 
 - 004092CD    E8 9A6A0B00         CALL    ApDocToP.004BFD6C
 
 - 004092D2    FF45 F0             INC     DWORD PTR [EBP-10]
 
 - 004092D5    8B10                MOV     EDX, DWORD PTR [EAX]
 
 - 004092D7    8B83 00030000       MOV     EAX, DWORD PTR [EBX+300]
 
 - 004092DD    E8 D6E30700         CALL    ApDocToP.004876B8
 
 - 004092E2    FF4D F0             DEC     DWORD PTR [EBP-10]
 
 - 004092E5    8D45 F8             LEA     EAX, DWORD PTR [EBP-8]
 
 - 004092E8    BA 02000000         MOV     EDX, 2
 
 - 004092ED    E8 1E6C0B00         CALL    ApDocToP.004BFF10
 
 - 004092F2    C783 4C020000 01000>MOV     DWORD PTR [EBX+24C], 1
 
 - 004092FC    EB 35               JMP     SHORT ApDocToP.00409333
 
 - 004092FE    6A 10               PUSH    10
 
 - 00409300    68 2B5B4C00         PUSH    ApDocToP.004C5B2B                ; ASCII "Error"
 
 - 00409305    68 F85A4C00         PUSH    ApDocToP.004C5AF8                ; ASCII "Series number error,please check it and try again."
 
 - 0040930A    8BC3                MOV     EAX, EBX
 
 - 0040930C    E8 8B4A0800         CALL    ApDocToP.0048DD9C
 
 - 00409311    50                  PUSH    EAX
 
 - 00409312    E8 E18F0B00         CALL    ApDocToP.004C22F8                ; JMP 到 USER32.MessageBoxA
 
 - 00409317    FF4D F0             DEC     DWORD PTR [EBP-10]
 
 - 0040931A    8D45 FC             LEA     EAX, DWORD PTR [EBP-4]
 
 - 0040931D    BA 02000000         MOV     EDX, 2
 
 - 00409322    E8 E96B0B00         CALL    ApDocToP.004BFF10
 
 - 00409327    8B4D D4             MOV     ECX, DWORD PTR [EBP-2C]
 
 - 0040932A    64:890D 00000000    MOV     DWORD PTR FS:[0], ECX
 
 - 00409331    EB 1A               JMP     SHORT ApDocToP.0040934D
 
 - 00409333    FF4D F0             DEC     DWORD PTR [EBP-10]
 
 - 00409336    8D45 FC             LEA     EAX, DWORD PTR [EBP-4]
 
 - 00409339    BA 02000000         MOV     EDX, 2
 
 - 0040933E    E8 CD6B0B00         CALL    ApDocToP.004BFF10
 
 - 00409343    8B4D D4             MOV     ECX, DWORD PTR [EBP-2C]
 
 - 00409346    64:890D 00000000    MOV     DWORD PTR FS:[0], ECX
 
 - 0040934D    5B                  POP     EBX
 
 - 0040934E    8BE5                MOV     ESP, EBP
 
 - 00409350    5D                  POP     EBP
 
 - 00409351    C3                  RETN
 
 - =========================================================================
 
 - 00409188    55                  PUSH    EBP
 
 - 00409189    8BEC                MOV     EBP, ESP
 
 - 0040918B    53                  PUSH    EBX
 
 - 0040918C    56                  PUSH    ESI
 
 - 0040918D    57                  PUSH    EDI
 
 - 0040918E    8B5D 0C             MOV     EBX, DWORD PTR [EBP+C]
 
 - 00409191    85DB                TEST    EBX, EBX
 
 - 00409193    74 0C               JE      SHORT ApDocToP.004091A1
 
 - 00409195    53                  PUSH    EBX
 
 - 00409196    E8 E5AD0A00         CALL    ApDocToP.004B3F80
 
 - 0040919B    59                  POP     ECX
 
 - 0040919C    83F8 10             CMP     EAX, 10
 
 - 0040919F    74 04               JE      SHORT ApDocToP.004091A5          ; //注册码长度等于10h则跳
 
 - 004091A1    33C0                XOR     EAX, EAX
 
 - 004091A3    EB 39               JMP     SHORT ApDocToP.004091DE
 
 - 004091A5    0FBE73 07           MOVSX   ESI, BYTE PTR [EBX+7]            ; //ESI=注册码的第8个字符ASCII值
 
 - 004091A9    8BC6                MOV     EAX, ESI                         ; //EAX=ESI
 
 - 004091AB    0FBE7B 0A           MOVSX   EDI, BYTE PTR [EBX+A]            ; //EDI=注册码的第11个字符ASCII值
 
 - 004091AF    03C7                ADD     EAX, EDI                         ; //EAX=EAX+EDI
 
 - 004091B1    3D 9B000000         CMP     EAX, 9B                          ; //EAX与9B比较
 
 - 004091B6    75 24               JNZ     SHORT ApDocToP.004091DC          ; //不等则跳
 
 - 004091B8    8BCE                MOV     ECX, ESI                         ; //ECX=ESI=注册码的第8个字符ASCII值
 
 - 004091BA    2BCF                SUB     ECX, EDI                         ; //ECX=ECX-EDI
 
 - 004091BC    8BC1                MOV     EAX, ECX                         ; //EAX=ECX
 
 - 004091BE    99                  CDQ
 
 - 004091BF    33C2                XOR     EAX, EDX                         ; //EAX=EAX xor EDX
 
 - 004091C1    2BC2                SUB     EAX, EDX                         ; //EAX=EAX-EDX
 
 - 004091C3    83C0 41             ADD     EAX, 41                          ; //EAX=EAX+41
 
 - 004091C6    0FBE53 03           MOVSX   EDX, BYTE PTR [EBX+3]            ; //EDX=注册码的第4个字符ASCII值
 
 - 004091CA    3BC2                CMP     EAX, EDX                         ; //EAX与EDX比较
 
 - 004091CC    75 0E               JNZ     SHORT ApDocToP.004091DC          ; //不等则跳
 
 - 004091CE    8B45 08             MOV     EAX, DWORD PTR [EBP+8]
 
 - 004091D1    C680 34030000 01    MOV     BYTE PTR [EAX+334], 1
 
 - 004091D8    B0 01               MOV     AL, 1
 
 - 004091DA    EB 02               JMP     SHORT ApDocToP.004091DE
 
 - 004091DC    33C0                XOR     EAX, EAX
 
 - 004091DE    5F                  POP     EDI
 
 - 004091DF    5E                  POP     ESI
 
 - 004091E0    5B                  POP     EBX
 
 - 004091E1    5D                  POP     EBP
 
 - 004091E2    C3                  RETN
 
  复制代码 **************************************************************   
【破解总结】 
-------------------------------------------------------------- 
【算法总结】 
1、注册码长度必须为16位 
2、注册码的第8个字符和第11个字符ASCII值之和必须等于9Bh 
3、注册码的第8个字符和第11个字符ASCII值之差加上41h必须等于第4个字符ASCII值 
-------------------------------------------------------------- 
【算法注册机】 
VB代码 
Private Sub Command1_Click() 
C11 = Int(Rnd() * 10) 
C8 = Chr(&H9B - Asc(C11)) 
C4 = Chr(Asc(C8) - Asc(C11) + &H41) 
Text1.Text = Int(Rnd() * 10) & Int(Rnd() * 10) & Int(Rnd() * 10) & C4 & Int(Rnd() * 10) & Int(Rnd() * 10) & Int(Rnd() * 10) & C8 & Int(Rnd() * 10) & Int(Rnd() * 10) & C11 & Int(Rnd() * 10) & Int(Rnd() * 10) & Int(Rnd() * 10) & Int(Rnd() * 10) & Int (Rnd() * 10) 
End Sub 
-------------------------------------------------------------- 
【注册信息】 
一组可用的注册码:288x599i26292519 
保存在 
[HKEY_LOCAL_MACHINE\SOFTWARE\AdultPDF\Doc2PDF] 
-------------------------------------------------------------- 
感谢飘云老大、猫老大、Nisy老大以及很多前辈们的学习教程以及所有帮助过我的论坛兄弟姐妹们!谢谢 
-------------------------------------------------------------- 
【版权声明】破文是学习的手记,兴趣是成功的源泉;本破文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢! 
 
 
     _/_/_/   _/   _/   _/_/_/  
    _/   _/  _/  _/    _/        
   _/_/_/    _/_/     _/_/_/_/  
  _/         _/      _/    _/ 
 _/         _/      _/_/_/ _/    tianxj |   
 
 
 
 |