今天在國外一款軟體上遇到一種按鈕,禁止狀態下無法對其操作(EnableWindow解除禁止)和設定標題SetWindowTextA。

請問這種它是如何實作的,并且怎么進行外部操作?
uj5u.com熱心網友回復:
在線求助!!!!!uj5u.com熱心網友回復:
spy++ 看看, 是不是 ‘按鈕’ ?uj5u.com熱心網友回復:
你是注入控制的?uj5u.com熱心網友回復:
那個程式的按鈕使能 是由 條件控制的 如void CMainFrame::OnUpdateEditCopy(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
BOOL state=FALSE;
// if data on CB
// COleDataSource* pHMIcb=COleDataSource::GetClipboardOwner();
// if(pHMIcb!=NULL) goto enable;// already has !
// multi,nodrive,nodir
if(!CheckCurrentSelection(FALSE,TRUE,TRUE)) goto enable;//multi selection
state=TRUE;
//
enable:
pCmdUI->Enable(state);
}
而 OnUpdate 是 OnIdle 中 呼叫的, 所以
1 滿足條件
2 截獲 上 2個 On。
uj5u.com熱心網友回復:
灰色按鈕克星試試。或者od除錯exe看內部流程
要么他內部有個定時器檢查,不斷的檢查 狀態
uj5u.com熱心網友回復:
在視窗訊息程序中屏蔽了WM_ENABLE 訊息,你要用做個DLL注入到行程,用SetWindowLong接管視窗的訊息回圈
uj5u.com熱心網友回復:
OD反匯編一下uj5u.com熱心網友回復:
對的,首先你要確定別人用什么UI做的,如果用的是DirectUI,這個按鈕就沒有句柄
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/89702.html
標籤:基礎類
