飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 5713|回复: 17

[原创] [PDF阅读工具]Foxit Reader v2.2 Build2129 的标志位方式爆破

[复制链接]

该用户从未签到

发表于 2007-11-26 14:38:30 | 显示全部楼层 |阅读模式
[PDF阅读工具]Foxit Reader v2.2 Build2129 的标志位方式爆破

软件下载: http://www.foxitsoftware.com/
注册限制: 非Pro版本使用工具菜单下的最后4项功能时,会在你的PDF文件中加入它的广告水印。
软件介绍: 一款超一流的PDF浏览、简易修改工具。

将Foxit_Reader.exe文件拖入到OD中后,F9键运行,然后点击[help]菜单中的[Install License Key]这一项,在弹出的注册窗口中随便输入点信息,点击[Register the Key]按钮,弹出了注册错误的对话框。

OK,就从弹出的对话框这里入手,下 BP MessageBoxA 断点后,再次重复上面的步骤,这时程序被断在了User32的领空下,Alt+F9键后,返回到了其自身的领空下,使用F8键走出 3 个call子程序后,便回到了这里:

>>>>>>
(前面代码省略)
00459EBB   .  E8 D0E10200       call    Foxit_Re.00488090            ;  这个call决定了eax的结果
00459EC0   .  83C4 40           add     esp, 40
00459EC3   .  A3 482B8D00       mov     dword ptr [8D2B48], eax
00459EC8   .  85C0              test    eax, eax                     ;  eax and eax = 0 ?
00459ECA   .  75 1F             jnz     short Foxit_Re.00459EEB      ;  不为0,则成功,跳走
00459ECC   .  83CB FF           or      ebx, FFFFFFFF
00459ECF   .  53                push    ebx
00459ED0   .  50                push    eax
00459ED1   .  68 80080000       push    880
00459ED6   .  E8 38F02F00       call    Foxit_Re.00758F13
00459EDB   .  8B4C24 10         mov     ecx, dword ptr [esp+10]      ;  走完3个子call后,来到了这里:
00459EDF   .  51                push    ecx                          ; /FileName
00459EE0   .  FF15 14E57A00     call    dword ptr [<&KERNEL32.Delete>; \DeleteFileA
00459EE6   .  E9 35010000       jmp     Foxit_Re.0045A020
00459EEB   >  BE 58E38400       mov     esi, Foxit_Re.0084E358       ;  来到这里:
(后面代码省略)
>>>>>>

从上面,可以一面了然的发现00459EBB处的call    Foxit_Re.00488090很关键,在这里F2键下断后,再次重复上面的步骤,便被断在了这里,然后F7键进入,这时在OD的[信息窗口]中发现调用这个注册Call的地方有两处,即为:[本地调用来自 00423D7E, 00459EBB],而00459EBB这处已经知道,于是转到00423D7E这处,再看看:

>>>>>>
(前面代码省略)
00423D7E  |.  E8 0D430600       call    Foxit_Re.00488090            ;  就是这个call ;在这里同样F2键下断点
00423D83  |.  83C4 24           add     esp, 24
00423D86  |.  A3 482B8D00       mov     dword ptr [8D2B48], eax      ;  [8D2B48]是关键,存放注册是否成功的标志
00423D8B  |.  85C0              test    eax, eax                     ;  若注册成功,不为0
00423D8D  |.  5F                pop     edi
00423D8E      74 55             je      short Foxit_Re.00423DE5      ;  为0,则跳走
00423D90  |.  53                push    ebx
00423D91  |.  56                push    esi
00423D92  |.  BE 58E38400       mov     esi, Foxit_Re.0084E358       ;  ASCII "2006/09/29"
00423D97  |.  8D8424 88000000   lea     eax, dword ptr [esp+88]
00423D9E  |>  8A10              /mov     dl, byte ptr [eax]          ;  读入key文件中的日期
00423DA0  |.  8A1E              |mov     bl, byte ptr [esi]          ;  2006/09/29
00423DA2  |.  8ACA              |mov     cl, dl
00423DA4  |.  3AD3              |cmp     dl, bl                      ;  两日期比较
00423DA6      75 1E             jnz     short Foxit_Re.00423DC6      ;  不等,跳走(不能跳)
00423DA8  |.  84C9              |test    cl, cl                      ;  cl and cl = 0 ?
00423DAA  |.  74 16             |je      short Foxit_Re.00423DC2     ;  为0,跳走(必须跳)
00423DAC  |.  8A50 01           |mov     dl, byte ptr [eax+1]
00423DAF  |.  8A5E 01           |mov     bl, byte ptr [esi+1]
00423DB2  |.  8ACA              |mov     cl, dl
00423DB4  |.  3AD3              |cmp     dl, bl
00423DB6  |.  75 0E             |jnz     short Foxit_Re.00423DC6
00423DB8  |.  83C0 02           |add     eax, 2
00423DBB  |.  83C6 02           |add     esi, 2
00423DBE  |.  84C9              |test    cl, cl
00423DC0  |.^ 75 DC             \jnz     short Foxit_Re.00423D9E
00423DC2  |>  33C0              xor     eax, eax
00423DC4  |.  EB 05             jmp     short Foxit_Re.00423DCB
00423DC6  |>  1BC0              sbb     eax, eax
00423DC8  |.  83D8 FF           sbb     eax, -1
(后面代码省略)
>>>>>>

同样,在00423D7E处F2键下断点,然后Ctrl+F2键,让OD重新载入该程序,这时便被断在了上面的这个call处,F7键进入后,来到这里:



>>>>>>
00488090      8B4C24 04         mov     ecx, dword ptr [esp+4]
00488094      81EC 04010000     sub     esp, 104
(后面代码省略)
>>>>>>

将上面的代码修改为如下(即位标志位修改):

>>>>>>
00488090      B8 FFFFFFFF       mov     eax, -1
00488095      C3                retn
00488096      90                nop
00488097      90                nop
00488098      90                nop
00488099      90                nop
(后面保持一样)
>>>>>>



然后两次F8键走出这个call后,回来:

>>>>>>
(前面代码省略)
00423D7E  |.  E8 0D430600       call    Foxit_Re.00488090            ;  已被修改为上面的代码▲
00423D83  |.  83C4 24           add     esp, 24
00423D86  |.  A3 482B8D00       mov     dword ptr [8D2B48], eax      ;  [8D2B48]是关键,存放注册是否成功的标志
00423D8B  |.  85C0              test    eax, eax                     ;  若注册成功,不为0
(中间代码省略)
00423DA6      75 1E             jnz     short Foxit_Re.00423DC6      ;  这里还要作一定修改
00423DA8  |.  84C9              |test    cl, cl
00423DAA  |.  74 16             |je      short Foxit_Re.00423DC2     ;  这是跳向成功的地方
(后面代码省略)
>>>>>>



将上面的00423DA6处的: jnz     short Foxit_Re.00423DC6

修改为:               nop
                       nop
或者是:               jmp     short Foxit_Re.00423DC2

到此,便成功的让软件注册为Pro版本了! 可在bout窗口中发现不同哟~!



如果,你还想在点击注册窗口中的注册按钮时,也随时显示注册成功对话框,还需将:

>>>>>>
00459EBB   .  E8 D0E10200       call    Foxit_Re.00488090            ;  已被标志位修改的这个call
00459EC0   .  83C4 40           add     esp, 40
00459EC3   .  A3 482B8D00       mov     dword ptr [8D2B48], eax
00459EC8   .  85C0              test    eax, eax                     ;  eax and eax = 0 ?
00459ECA   .  75 1F             jnz     short Foxit_Re.00459EEB      ;  不为0,则成功,跳走
00459ECC   .  83CB FF           or      ebx, FFFFFFFF
00459ECF   .  53                push    ebx
00459ED0   .  50                push    eax
00459ED1   .  68 80080000       push    880
00459ED6   .  E8 38F02F00       call    Foxit_Re.00758F13
00459EDB   .  8B4C24 10         mov     ecx, dword ptr [esp+10]      ;  弹出注册错误对话框的地方
00459EDF   .  51                push    ecx
00459EE0   .  FF15 14E57A00     call    dword ptr [<&KERNEL32.Delete>
00459EE6   .  E9 35010000       jmp     Foxit_Re.0045A020
00459EEB   >  BE 58E38400       mov     esi, Foxit_Re.0084E358       ;  跳来到这里
00459EF0   .  8D8424 FC000000   lea     eax, dword ptr [esp+FC]
00459EF7   >  8A10              mov     dl, byte ptr [eax]
00459EF9   .  83CB FF           or      ebx, FFFFFFFF
00459EFC   .  8ACA              mov     cl, dl
00459EFE   .  3A16              cmp     dl, byte ptr [esi]
00459F00      75 1C             jnz     short Foxit_Re.00459F1E      ;  这里还要作一定修改
00459F02   .  84C9              test    cl, cl
00459F04   .  74 14             je      short Foxit_Re.00459F1A      ;  这是跳向成功的地方
>>>>>>



将上面的00459F00处的: jnz     short Foxit_Re.00459F1E

修改为:               nop
                       nop
或者是:               jmp     short Foxit_Re.00459F1A



然后,再在[8D2B48]这个关键地方(因为:这就是存放注册成功与否的标志)下[内存写入断点],将软件完整运行一次后,发现其结果并没有被修改,确定软件没有暗桩,OK,至此软件被成功标志位爆破了! 又当了一次伟大的爆破者,呵呵~~   我爆破,所以我光荣!

FoxitReaderV22.rar

20.78 KB, 下载次数: 21, 下载积分: 飘云币 -2 枚

评分

参与人数 1威望 +20 收起 理由
tigerisme + 20 鼓励,期待更多文章

查看全部评分

PYG19周年生日快乐!

该用户从未签到

发表于 2007-11-26 15:12:22 | 显示全部楼层
学习下`~~~
PYG19周年生日快乐!
  • TA的每日心情
    开心
    2024-5-1 14:44
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2007-11-26 18:53:06 | 显示全部楼层
    专业爆破,呵呵/:L
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-11-26 20:21:10 | 显示全部楼层
    提示: 作者被禁止或删除 内容自动屏蔽
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-11-26 22:55:31 | 显示全部楼层
    努力看懂大大的教學
    學習中
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2019-11-7 21:14
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2007-11-26 23:14:29 | 显示全部楼层
    不错,通俗易懂,学习一下。
    PYG19周年生日快乐!
  • TA的每日心情

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

    [LV.3]偶尔看看II

    发表于 2007-11-27 00:47:39 | 显示全部楼层
    写得很细,最喜欢这种暴破了/:good
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-11-27 15:57:05 | 显示全部楼层
    不错学习一下!!!!!1谢谢!!!!!!!!1
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2017-9-5 12:21
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2007-11-27 23:29:37 | 显示全部楼层
    这个软件很好用!
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-11-29 21:44:38 | 显示全部楼层
    在确定版本没有问题以后,按照破文上的步骤,走到返回程序领空时地址不正确,反正和教程不符...

    我的还没3个字程序就RETN跑了..郁闷..





    00758EAC  |.  85F6          TEST ESI,ESI                             ;  Foxit_Re.008D273C
    00758EAE  |.  8BF8          MOV EDI,EAX
    00758EB0  |.  74 05         JE SHORT Foxit_Re.00758EB7
    00758EB2  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]
    00758EB5  |.  8906          MOV DWORD PTR DS:[ESI],EAX
    00758EB7  |>  837D FC 00    CMP DWORD PTR SS:[EBP-4],0
    00758EBB  |.  74 0B         JE SHORT Foxit_Re.00758EC8
    00758EBD  |.  6A 01         PUSH 1                                   ; /Enable = TRUE
    00758EBF  |.  FF75 FC       PUSH DWORD PTR SS:[EBP-4]                ; |hWnd
    00758EC2  |.  FF15 20E87A00 CALL DWORD PTR DS:[<&USER32.EnableWindow>; \EnableWindow
    00758EC8  |>  8B4D F0       MOV ECX,DWORD PTR SS:[EBP-10]
    00758ECB  |.  6A 01         PUSH 1
    00758ECD  |.  E8 F4FEFFFF   CALL Foxit_Re.00758DC6
    00758ED2  |.  8BC7          MOV EAX,EDI
    00758ED4  |.  5F            POP EDI
    00758ED5  |.  5E            POP ESI
    00758ED6  |.  5B            POP EBX
    00758ED7  |.  C9            LEAVE
    00758ED8  \.  C2 0C00       RETN 0C
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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