拆解时间限制&&菜单功能限制

计时器:应用程序可以通过接管系统的计时器中断来维护一个计时器,

  常见的函数有setTime() :应用程序可在初始化时条用这个API。若计时器超市,系统会想申请该计时器的窗口过程发送消息WM_TIMER,或者条用程序提供的那个回调函数。

1、 SetTimer函数
1>   API函数SetTimer的原型

    UINT_PTRSetTimer(
      HWND hWnd,              // 窗口句柄
      UINT_PTR nIDEvent,      // 定时器ID,多个定时器时,可以通过该ID判断是哪//个定时器
      UINT uElapse,           // 时间间隔,单位为毫秒
      TIMERPROC lpTimerFunc   // 回调函数
    );

   2、宫精度的多媒体计时器

   3、GetTickCount()函数

   4、timeGetTime()函数

  

004010C2       .  8B7424 08            mov esi,dword ptr ss:[esp+0x8]                ;  kernel32.BaseThreadInitThunk; Case 110 (WM_INITDIALOG) of switch 004010A5
004010C6       .  6A 00                push 0x0                                      ; /Timerproc = NULL
004010C8       .  68 E8030000          push 0x3E8                                    ; |Timeout = 1000. ms
004010CD       .  6A 01                push 0x1                                      ; |TimerID = 0x1
004010CF       .  56                   push esi                                      ; |hWnd = 00401000
004010D0       .  FF15 30204000        call dword ptr ds:[<&USER32.SetTimer>]        ; \SetTimer
004010D6       .  A1 04304000          mov eax,dword ptr ds:[0x403004]

有两种解除方法:直接JMP跳过;利用WM_TIMER消息,查看VC的头文件;

 

菜单功能限制

功能受限制分为两种:试用版和正式半的软件是两个完全不同的软件

                                    另一种试用版和正式版是同一个文件,只是没有注册,禁止了某些功能

 

相关函数:EnableMenultem()函数 将软件菜单和窗口灰化

hMenu:菜单句柄。
ulDEnableltem:指定将使其有效、无效或变灰的菜单项,按参数uEnable确定的含义。此参数可指定菜单条、菜单或子菜单里的菜单项。
uEnable:指定控制参数uIDEnableltem如何解释的标志,指示菜单项有效、无效或者变灰。此参数必须是MF_BYCOMMAND或MF_BYPOSITION,MF_ENABLED和MF_DISABLE或MF_GRAYED的组合。

EnableWinsow()函数

允许或禁止指定窗口

拆解限制保护

004011E3       .  6A 01                push 0x1                                      ; /Flags = MF_BYCOMMAND|MF_GRAYED|MF_STRING   将push 0x1 改为 push 0x0
004011E5       .  68 459C0000          push 0x9C45                                   ; |ItemID = 9C45 (40005.)
004011EA       .  50                   push eax                                      ; |hMenu = 4BB2909F
004011EB       .  FF15 9C404000        call dword ptr ds:[<&USER32.EnableMenuItem>]  ; \EnableMenuItem
004011F1       .  5E                   pop esi                                       ;  kernel32.74558484
004011F2       .  B8 01000000          mov eax,0x1
004011F7       .  C2 1000              retn 0x10

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值