功能限制的程式

看雪資料發表於2015-11-15

功能限制的程式  【習題】

  這種程式一般是DEMO版或選單中部分選項是灰色。有些DEMO版本的部分功能裡面根本就沒有。而有些程式功能全有,只要註冊後就正常了。

  你使用這些DEMO程式部分被禁止的功能時,會跳出提示框,說這是DEMO版等話,它們一般都是呼叫MessageBox[A]DialogBox[A]等函式。你可在W32DASM反彙編它,一般能找到如下字串:"Function Not Avaible in Demo" 或 "Command Not Avaible" 或 "Can't save in Shareware/Demo"等,這些CALL會被相應的呼叫,可作為你破解的一指示器。

  另外,就是選單中部分選項是灰色的不能用,一般它們是透過如下兩種函式實現的:

(1)EnableMenuItem

允許、禁止或變灰指定的選單條目
BOOL EnableMenuItem(
HMENU hMenu, // 選單控制程式碼
UINT uIDEnableItem, // 選單ID,形式為:充許,禁止,或灰
UINT uEnable //選單專案旗幟
);

Returns
在ASM程式碼形式如下:
PUSH uEnable    //uEnable=0 則選單選項允許
PUSH uIDEnableItem
PUSH hWnd
CALL [KERNEL32!EnableMenuItem]

(2)EnableWindow

允許或禁止滑鼠和鍵盤控制指定視窗和條目(禁止時選單變灰)
BOOL EnableWindow(
HWND hWnd, // 視窗控制程式碼
BOOL bEnable // 允許/禁止輸入
);
Returns
如視窗以前被禁止則返回一TRUE,否則返回 FALSE

 

相關文章