飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 20069|回复: 5

[求助] 关于PDF2Word v3.0简单算法的疑问

[复制链接]

该用户从未签到

发表于 2007-5-11 21:49:18 | 显示全部楼层 |阅读模式
我其实刚刚接触算法 好多东西都不是很明白  最近正在看《飘云阁论坛07版破解基础教程 》的算法部分 找了个简单的试试手

PDF2Word v3.0简单算法 开始就碰到了问题 按作者提供的注册码注册竟然提示注册失败  用OD脱壳后又无法运行 以为碰到自效验的软件了

刚想放手  不过我用Import REConstructor v1.6 修复后竟然成功了 Microsoft Visual C++ 6.0写的 这里我碰到第一个问题 注册时有错误提示

但是用OD查字符却查不出来  只能按作者说的下这个断点 BP MessageBoxA  在堆栈窗口看到如下数据
0012E134   00405E35  /CALL 到 MessageBoxA 来自 1_.00405E2F
0012E138   003004E8  |hOwner = 003004E8 ('Please register VeryPDF PDF2W...',class='#32770',parent=00450332)
0012E13C   011A0058  |Text = "Your registration key is wrong, please double check following issues:",LF,"1. Please copy and paste your registration key into PDF2Word to avoid spelling mistake.",LF,"2. You are using an old version of PDF2Word product, please downloa"...
0012E140   005E181C  |Title = "Wrong License Key"
0012E144   00000010  \Style = MB_OK|MB_ICONHAND|MB_APPLMODAL
0012E148   0012E290

0012E134   00405E35  /CALL 到 MessageBoxA 来自 1_.00405E2F 这里遇到第二个问题 在这个地方 右键 竟然没有反汇编中跟随 这个选象  在这里又耽误了好长时间  我以前破解过一个类似的软件 在窗口里 有那个选象 直接就来到程序的领空了 这里没有 这是为什么呢 ??

我只好记下00405E2F这个地址 跟过去后 找到了作者开始讲解的地方   我发现了一处问题   看下面代码

00405620    83EC 18                     sub     esp, 18
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 [esp+24]
0040562E    57                          push    edi
0040562F    8BFE                        mov     edi, esi
00405631    F2:AE                       repne   scas byte ptr es:[edi]
00405633    F7D1                        not     ecx
00405635    49                          dec     ecx
00405636    83F9 14                     cmp     ecx, 14
00405639    74 07                       je      short 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 [esi]
00405644    8A4E 01                     mov     cl, byte ptr [esi+1]
00405647    8D5424 0C                   lea     edx, dword ptr [esp+C]
0040564B    32DB                        xor     bl, bl
0040564D    52                          push    edx
0040564E    884424 1C                   mov     byte ptr [esp+1C], al
00405652    885C24 1D                   mov     byte ptr [esp+1D], bl
00405656    884C24 10                   mov     byte ptr [esp+10], cl
0040565A    885C24 11                   mov     byte ptr [esp+11], bl
0040565E    E8 AE9E1800                 call    0058F511
00405663    8BF8                        mov     edi, eax
00405665    8D4424 1C                   lea     eax, dword ptr [esp+1C]
00405669    50                          push    eax
0040566A    E8 A29E1800                 call    0058F511
0040566F    03F8                        add     edi, eax
00405671    83C4 08                     add     esp, 8
00405674    83FF 0B                     cmp     edi, 0B
00405677    74 09                       je      short 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 [esi+12]
00405685    8A56 13                     mov     dl, byte ptr [esi+13]
00405688    8D4424 0C                   lea     eax, dword ptr [esp+C]
0040568C    884C24 18                   mov     byte ptr [esp+18], cl
00405690    50                          push    eax
00405691    885C24 1D                   mov     byte ptr [esp+1D], bl
00405695    885424 10                   mov     byte ptr [esp+10], dl
00405699    885C24 11                   mov     byte ptr [esp+11], bl
0040569D    E8 6F9E1800                 call    0058F511
004056A2    8D4C24 1C                   lea     ecx, dword ptr [esp+1C]
004056A6    8BF8                        mov     edi, eax
004056A8    51                          push    ecx
004056A9    E8 639E1800                 call    0058F511
004056AE    03F8                        add     edi, eax                             //第19位和第20位相加  怎么知道这是19 20位而不是其他位呢
004056B0    83C4 08                     add     esp, 8                              
004056B3    83FF 0D                     cmp     edi, 0D                            //作者这里上OE而我的是OD难道软件已经做了修改??
004056B6    74 09                       je      short 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 [esi+5]
004056C4    8A46 0D                     mov     al, byte ptr [esi+D]
004056C7    8D4C24 0C                   lea     ecx, dword ptr [esp+C]
004056CB    885424 18                   mov     byte ptr [esp+18], dl
004056CF    51                          push    ecx
004056D0    885C24 1D                   mov     byte ptr [esp+1D], bl
004056D4    884424 10                   mov     byte ptr [esp+10], al
004056D8    885C24 11                   mov     byte ptr [esp+11], bl
004056DC    E8 309E1800                 call    0058F511
004056E1    8D5424 1C                   lea     edx, dword ptr [esp+1C]
004056E5    8BF8                        mov     edi, eax
004056E7    52                          push    edx
004056E8    E8 249E1800                 call    0058F511
004056ED    03F8                        add     edi, eax
004056EF    83C4 08                     add     esp, 8
004056F2    83FF 09                     cmp     edi, 9
004056F5    74 09                       je      short 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 [esi+C], 56
00405704    74 09                       je      short 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    807E 0E 33                  cmp     byte ptr [esi+E], 33
00405713    74 09                       je      short 0040571E
00405715    5F                          pop     edi
00405716    5E                          pop     esi
00405717    33C0                        xor     eax, eax
00405719    5B                          pop     ebx
0040571A    83C4 18                     add     esp, 18
0040571D    C3                          retn


把最后的86该成85后就注册成功了
发现注册信息保存在同文件下的config文件里 内容如下

[FontNameMapping]
FontCount=3
DefaultFontName=Times New Roman

PdfFontName1=Helvetica
OsFontName1=Times New Roman

PdfFontName2=Times-Roman
OsFontName2=Times New Roman

PdfFontName3=BickleyScriptLetPlain
OsFontName3=Script
[VeryPDF_PDF2Word]
Used=6
Regcode=381116111111V3311185

清楚后又可注册   

思路很乱 我写下我遇到的难题

1.注册时有错误提示但是用OD查字符却查不出来 ??

2这里遇到第二个问题 在这个地方 右键 竟然没有反汇编中跟随 这个选象  在这里又耽误了好长时间  我以前破解过一个类似的软件 在窗口里 有那个选象 直接就来到程序的领空了 这里没有 这是为什么呢 ??

3.作者这里上OE而我的是OD难道软件已经做了修改??

4.第19位和第20位相加    怎么知道这是19和20位而不是其他位呢??
希望得到大家的指点特别是第四个   谢谢

[ 本帖最后由 千里之外 于 2007-5-11 21:53 编辑 ]
PYG19周年生日快乐!

该用户从未签到

发表于 2007-5-17 19:14:25 | 显示全部楼层

回复 #1 千里之外 的帖子

不知答得对不对,也请大家指证

1.注册时有错误提示但是用OD查字符却查不出来 ??
  答:a对于这种软件,有可能作者在处理关健的程序代码时做了加密手脚,也就是加密重要源代码
      b对于VB程序,由于是双字节处理方式,要用unicode方式才能查看到
      c加了壳,有时虽然在EPID上看到好像是没壳的,例如明明显示vC++ 但是实际上程序还是加了壳,对于如何判断,也只能在调试时才能却定
            
  
2这里遇到第二个问题 在这个地方 右键 竟然没有反汇编中跟随 这个选象  在这里又耽误了好长时间  我以前破解过一个类似的软件 在窗口里 有那个选象 直接就来到程序的领空了 这里没有 这是为什么呢 ??
  答:这个我没遇到过,不知???还请各位解答!

3.作者这里上OE而我的是OD难道软件已经做了修改??
  答:有可能,但也不一定,如果作者的数是按一机一码来给的话,就同就很正常了

4.第19位和第20位相加    怎么知道这是19和20位而不是其他位呢??
希望得到大家的指点特别是第四个   谢谢
  答:这个只有在跟入每个call前,从入口参数以及出口参数来却定call的功能了,多跟些软件就能一眼就能看出


不知说对没有,请指正,同共学习
PYG19周年生日快乐!
  • TA的每日心情

    2016-6-2 20:34
  • 签到天数: 10 天

    [LV.3]偶尔看看II

    发表于 2007-5-18 14:33:28 | 显示全部楼层
    2.可以alt+f9或ctrl+f9返回,或者直接ctrl+g输入地址下断返回

    4.往上看代码,反汇编为十六进制
    00405682    8A4E 12                     mov     cl, byte ptr [esi+12]  //ptr 19位
    00405685    8A56 13                     mov     dl, byte ptr [esi+13] //ptr 20位
    PYG19周年生日快乐!

    该用户从未签到

     楼主| 发表于 2007-5-18 20:07:52 | 显示全部楼层
    谢谢两位兄弟的帮助/:09
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2024-12-6 09:28
  • 签到天数: 121 天

    [LV.7]常住居民III

    发表于 2007-6-3 09:47:58 | 显示全部楼层
    2楼兄弟说的好啊,
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-12-10 21:19:10 | 显示全部楼层
    不错
    学习了/:018 /:018 /:018
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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