对chap532程序时间限制的破解分析

14 篇文章 0 订阅
13 篇文章 0 订阅

//以后不会写这样的文章了,截图太麻烦了

程序下载: http://115.com/file/belwaox2

打开程序,明显有限制

 

首先 Peid 检测程序编程语言是Borland C++,运行程序。

 

程序调用了系统时间函数 GetLocalTime,这样才能判断当前时间是否过期

GetLocalTime 函数原型

VOID GetLocalTime(

    LPSYSTEMTIME lpSystemTime         // 存放系统时间结构的地址
   );     


OD载入程序

 

命令行下断点

bp GetLocalTime

 

 

F9运行立即中断

注意它是cw3220.dll的调用,点右键-反汇编中跟随。


 

 

来到

因为不是程序领空,所以Ctrl+F9根据 OD信息框提示返回程序领空。

0040108A  |.  E8 3F040000   CALL <JMP.&cw3220._getdate> //调用运行库中的GetLocalTime函数。
0040108F  |.  59            POP ECX                                  ;  0012FD98
00401090  |.  817D F8 CD070>CMP DWORD PTR SS:[EBP-8],7CD  //比较7D4(2004)和7CD9(1997)
00401097  |.  7F 0F         JG SHORT chap532.004010A8  //大于则跳到错误提示处。
00401099  |.  68 74204000   PUSH chap532.00402074                    ; /Text = "Within Demonstration Time"
0040109E  |.  6A 65         PUSH 65                                  ; |ControlID = 65 (101.)
004010A0  |.  53            PUSH EBX                                 ; |hWnd
004010A1  |.  E8 5E040000   CALL <JMP.&USER32.SetDlgItemTextA>       ; \SetDlgItemTextA
004010A6  |.  EB 23         JMP SHORT chap532.004010CB
004010A8  |>  68 00100000   PUSH 1000  //错误提示。                  ; /Style = MB_OK|MB_SYSTEMMODAL
004010AD  |.  68 CA204000   PUSH chap532.004020CA                    ; |Title = "Bad Luck"
004010B2  |.  68 8E204000   PUSH chap532.0040208E                    ; |Text = "The demonstration period for this program has been exceeded"
004010B7  |.  6A 00         PUSH 0                                   ; |hOwner = NULL
004010B9  |.  E8 52040000   CALL <JMP.&USER32.MessageBoxA>           ; \MessageBoxA
004010BE  |.  68 D3204000   PUSH chap532.004020D3                    ; /Text = "Demonstration Period Exceeded"
004010C3  |.  6A 65         PUSH 65                                  ; |ControlID = 65 (101.)
004010C5  |.  53            PUSH EBX                                 ; |hWnd
004010C6  |.  E8 39040000   CALL <JMP.&USER32.SetDlgItemTextA>       ; \SetDlgItemTextA


00401097  |.  7F 0F         JG SHORT chap532.004010A8  //大于则跳到错误提示处。

修改为

00401097      90            NOP
00401098      90            NOP


 

成功

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值