1. 公告

    • 黑夜给了我黑色的眼睛去寻找光明,阳光给了我明亮的眼睛我却是去寻找黑暗,所以我只有在夜里才出现真实的自己。(菩提本不树,明镜亦非台,本来无一物,何处染尘埃。)
  2. 写作时间

    << 2008-4 >>

    Sun

    Mon

    Tue

    Wed

    Thu

    Fri

    Sat

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

  3. 原创下载

  4. 最新文章

  5. 最新评论

  6. 文章归档

  7. Statistics

    • 文章总数:154
    • 评论总数:47
    • 引用总数:0
    • 浏览总数:121178
    • 留言总数:0
    • 当前样式:4u-HK
    • 当前语言:zh-CN
  8. 友情链接

  9. 反向链接

破解屏幕录象S-Demo

S-Demo是做动画教程时用的比较多的一款录象屏幕的软件。网上下的很多的教程都是用的这款工具来进行录象屏幕的。

使用PEID首先进行查壳。

Microsoft Visual C++ 6.0 [Overlay] //没加壳,Overlay表示附加数据。估计是在录象后生成出来的程序前有一个播放器,录象的数据跟随播放器后进行加载上去的。

使用OD进行加载后下硬件断点拦截提示框函数:bp MessageBoxA (区分大小写)。运行后出现了程序要求输入密码,随便输入一个试炼码。

77D5058A >  8BFF            mov     edi, edi
77D5058C    55              push    ebp
77D5058D    8BEC            mov     ebp, esp
77D5058F    833D BC04D777 0>cmp     dword ptr [77D704BC], 0
77D50596    74 24           je      short 77D505BC
77D50598    64:A1 18000000  mov     eax, dword ptr fs:[18]
77D5059E    6A 00           push    0
77D505A0    FF70 24         push    dword ptr [eax+24]
77D505A3    68 240BD777     push    77D70B24
77D505A8    FF15 C812D177   call    dword ptr [<&KERNEL32.Interlocke>; kernel32.InterlockedCompareExchange
77D505AE    85C0            test    eax, eax
77D505B0    75 0A           jnz     short 77D505BC

断在了USER32.dll里,这个DLL就是Messagebox API函数所在的DLL。双击红色断下处取消断点后按ALT+F9返回到用户。(注意:在按下组合键后需要点击程序出现的提示框“PassWord”,OD才能进行返回用户。)

00401FF9  |. /74 5B         je      short 00402056    //关键跳
00401FFB  |. |6A 01         push    1
00401FFD  |. |E8 80900000   call    <jmp.&MFC42.#6334_CWnd::UpdateDa>
00402002  |. |8D45 98       lea     eax, dword ptr [ebp-68]
00402005  |. |68 AC504100   push    004150AC                         ; /src = "Clayman"
0040200A  |. |50            push    eax                              ; |dest
0040200B  |. |E8 3A940000   call    <jmp.&MSVCRT.strcpy>             ; \strcpy
00402010  |. |8D46 60       lea     eax, dword ptr [esi+60]
00402013  |. |50            push    eax                              ; /src
00402014  |. |8D45 CC       lea     eax, dword ptr [ebp-34]          ; |
00402017  |. |50            push    eax                              ; |dest
00402018  |. |E8 2D940000   call    <jmp.&MSVCRT.strcpy>             ; \strcpy
0040201D  |. |8D45 98       lea     eax, dword ptr [ebp-68]
00402020  |. |50            push    eax
00402021  |. |8D45 CC       lea     eax, dword ptr [ebp-34]
00402024  |. |50            push    eax
00402025  |. |E8 24FEFFFF   call    00401E4E
0040202A  |. |FFB6 A4000000 push    dword ptr [esi+A4]               ; /s2
00402030  |. |8D45 CC       lea     eax, dword ptr [ebp-34]          ; |
00402033  |. |50            push    eax                              ; |s1
00402034  |. |FF15 E0234100 call    dword ptr [<&MSVCRT._stricmp>]   ; \_stricmp
0040203A  |. |83C4 20       add     esp, 20
0040203D  |. |85C0          test    eax, eax
0040203F  |. |74 15         je      short 00402056                                                        //关键跳
00402041  |. |6A 40         push    40
00402043  |. |68 A4504100   push    004150A4                         ;  ASCII "Player"
00402048  |. |68 94504100   push    00415094                         ;  ASCII "Password Wrong!"
0040204D  |. |8BCE          mov     ecx, esi
0040204F  |. |E8 28900000   call    <jmp.&MFC42.#4224_CWnd::MessageB>  //调用函数弹出错误提示
00402054  |. |EB 07         jmp     short 0040205D
00402056  |> \8BCE          mov     ecx, esi

{小知识:
           je 相等则跳转
          jne 不相等则跳转
          jmp 无条件跳转
在编写程序的时候,如果直接任何保护措施都不用的使用if  xxxx = xxxx then xxxx else xxxx;来进行判断注册码的话是很容易被破解的,转换后的都将变成 JNE OR JE
}

直接将00401FF9地址上的JE改为JMP强行跳转后保存修改即可。

您或许还对以下的内容感兴趣:

如果您拥有一个BLOG,如果您的BLOG的PV/IP/PR还算不错,如果您打算用您所拥有的BLOG来赚钱,那么我来告诉您几个赚钱的方法:

1、透过 Google AdSense 使您的BLOG产生收益

2、您还可以通过申请TextLinkAds投放者来直接出售链接位从而产生收入。