-
關於windows窗體
-
簡介:大家都知道基於windows系統的交互都基於窗體(window)的,所以window是交互界面,或者交互入口,在windows中基礎編程中句柄表示各種類,對象,資源的實例,那么窗體也是有句柄的,窗體的中的控件一定有句柄?(答案下面揭曉)
-
窗體的分析方式
-
Spy++:Spy++是一個基於 Win32(最新版本支持Win64) 的實用工具,它提供系統的進程、線程、窗口和窗口消息的圖形視圖(百度抄的),這個工具是微軟自家,微軟自家的沒什么說的,功能很強大,它可以分析窗體句柄,捕獲消息,查看線程等功能,
-
通過上述示例我們可以得到winrar界面的窗體(句柄)結構,以及屬性信息,通過這些屬性信息就可以在篩選出我們需要的窗體了
-
inspect32:inspect32也是一個窗體信息查看的,它和spy不同的是它可以查看菜單
-
-
關於無句柄窗體(DUI)
-
最近這個幾年發展起來的技術,大家可以百度"無句柄窗體",這種窗體的好處很多,我比較喜歡的性能好,保密性好這個兩方面的
-
-
按鈕點擊的實現
-
通過窗體消息
SendMessage(hWnd,WM_LBUTTONDOWN, 0x0000001, lprama);按下鼠標左鍵
SendMessage (hWnd,WM_LBUTTONUP, 0x0000000, lprama);放開鼠標左鍵
其中lprama為位置參數,構造方法 int lprama = ((y << 16) | (x & 0xffff));
-
移動鼠標,發送點擊事件
WinAPIHelper.SetCursorPos(x, y); 設置鼠標位置 WinAPIHelper.mouse_event(WinAPIHelper.MouseEventFlag.LeftDown, 0, 0, 0, UIntPtr.Zero);按下鼠標左鍵
WinAPIHelper.mouse_event(WinAPIHelper.MouseEventFlag.LeftUp, 0, 0, 0, UIntPtr.Zero);
放開鼠標左鍵
-
-
文本設置實現
-
通過窗體消息
WinAPIHelper.SendMessage(hwnd, WinAPIHelper.WM_SETTEXT, IntPtr.Zero, new StringBuilder(text));
-
模擬鍵盤
WinAPIHelper.SetForegroundWindow(hwnd);//設置焦點
SendKeys.SendWait(text);//發送鍵盤
-
-
.Net 全局鈎子的實現
- 簡介:.net由於是托管代碼,基於fx運行時(虛擬機),無法實現全局鈎子,由於.net的dll沒有dllMain函數,所以無法實現遠程注入
-
DLL注入
- 上面說的無法實現遠程,我這里來說P話?不是的,我這里說的注入混合型dll,大家可以百度,非托管dll可以通過DllMain,調用托管Dll實現托管到非托管的連接調用
-
EasyHook
-
EasyHook 是 codeplex上的一個開源項目,它實現了windows 函數鈎子,不多說上鏈接http://easyhook.codeplex.com/,大家可下載源碼編譯源碼可讀性不錯,作者說的蠻牛X的,但是並不是那么完美,當Hook ExTextOu t函數時,中文亂碼,正在調試源碼,試圖找出問題
-
/Files/Rolends/開發所用到工具和方法.doc 后綴為docx,由於不能上傳docx故改之
QQ 討論組廣告群發工具(已開發完成)索引