功能限制的程式
【習題】
這種程式一般是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。 |