開發所用到工具和方法


  1. 關於windows窗體
  2. 簡介:大家都知道基於windows系統的交互都基於窗體(window)的,所以window是交互界面,或者交互入口,在windows中基礎編程中句柄表示各種類,對象,資源的實例,那么窗體也是有句柄的,窗體的中的控件一定有句柄?(答案下面揭曉)
  3. 窗體的分析方式
    1. Spy++:Spy++是一個基於 Win32(最新版本支持Win64) 的實用工具,它提供系統的進程、線程、窗口和窗口消息的圖形視圖(百度抄的),這個工具是微軟自家,微軟自家的沒什么說的,功能很強大,它可以分析窗體句柄,捕獲消息,查看線程等功能,
      1. 使用方法:
        image
      2. 分解示例
        image
    2. 通過上述示例我們可以得到winrar界面的窗體(句柄)結構,以及屬性信息,通過這些屬性信息就可以在篩選出我們需要的窗體了
    1. inspect32:inspect32也是一個窗體信息查看的,它和spy不同的是它可以查看菜單
    2. image
  4. 關於無句柄窗體(DUI)
    1. 最近這個幾年發展起來的技術,大家可以百度"無句柄窗體",這種窗體的好處很多,我比較喜歡的性能好,保密性好這個兩方面的
    2. DUI窗體沒有子控件句柄,要想獲取信息就必須實現屏幕取詞,HOOK ExtTextOut,TextOut,DrawText等字符繪制函數,獲取相應的位置的字符串,然后篩選獲取相應的信息
      image
  5. 按鈕點擊的實現
    1. 通過窗體消息

    SendMessage(hWnd,WM_LBUTTONDOWN, 0x0000001, lprama);按下鼠標左鍵

    SendMessage (hWnd,WM_LBUTTONUP, 0x0000000, lprama);放開鼠標左鍵

    其中lprama為位置參數,構造方法 int lprama = ((y << 16) | (x & 0xffff));

    1. 移動鼠標,發送點擊事件

      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);

      放開鼠標左鍵

  6. 文本設置實現
    1. 通過窗體消息

      WinAPIHelper.SendMessage(hwnd, WinAPIHelper.WM_SETTEXT, IntPtr.Zero, new StringBuilder(text));

    2. 模擬鍵盤

      WinAPIHelper.SetForegroundWindow(hwnd);//設置焦點

      SendKeys.SendWait(text);//發送鍵盤

     

  7. .Net 全局鈎子的實現
    1. 簡介:.net由於是托管代碼,基於fx運行時(虛擬機),無法實現全局鈎子,由於.netdll沒有dllMain函數,所以無法實現遠程注入
    2. DLL注入
      1. 上面說的無法實現遠程,我這里來說P話?不是的,我這里說的注入混合型dll,大家可以百度,非托管dll可以通過DllMain,調用托管Dll實現托管到非托管的連接調用
    3. EasyHook

/Files/Rolends/開發所用到工具和方法.doc 后綴為docx,由於不能上傳docx故改之

 

QQ 討論組廣告群發工具(已開發完成)索引


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM