91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

實現HOOK其他進程的Messagebox(2) DLL注入工具

發布時間:2020-10-16 04:10:37 來源:網絡 閱讀:977 作者:天晴V587 欄目:安全技術

DLL注入工具(遠程線程技術簡單的MFC CListCtrl控件知識)


DLL文件已經編寫好、測試程序也很簡單、現在就是解決將DLL注入到目標進程中、、

這里采用遠程線程注入技術、、本來WIN32控制臺就可以、、為了學習下MFC就做了一個簡單的MFC框架去實現注入、、

DLL注入工具大概是這樣:

1   枚舉出所有進程(沒做到實時不過添加了一個刷新按鈕)、、

2   實現對所選中進程注入DLL、、

工具截圖如下:

實現HOOK其他進程的Messagebox(2) DLL注入工具


下面結合代碼記錄、、

首先運行此工具、得到當前所有進程、、、使用CreateToolhelp32Snapshot函數、、

先在初始化的函數中將列表框的風格初始化好、、

        DWORD ListStyle;

        ListStyle=::GetWindowLong(m_List.m_hWnd,GWL_STYLE);  //獲得窗口風格

        ListStyle|=LVS_REPORT | LVS_SHOWSELALWAYS | LVS_EDITLABELS;

        SetWindowLong(m_List.m_hWnd,GWL_STYLE,ListStyle);

        ListStyle=m_List.GetExtendedStyle(); //  CListCtrl   m_List ;

        ListStyle|=LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES;  //高亮網格

        m_List.SetExtendedStyle (ListStyle);

      m_List.SetTextColor (RGB(0,0,0));  //字體顏色

      m_List.SetTextBkColor (RGB(128,252,0)); //字體背景顏色

初始化列表框后開始獲取進程填充到列表中、、、先添加好 列 名稱、、

  CRect RectList;

  m_List.GetWindowRect (&RectList); //得List窗口的尺寸放于RectList中、、

  m_List.InsertColumn(0,"序號",LVCFMT_CENTER,100);// RectList.Width()

  m_List.InsertColumn(1,"進程名稱",LVCFMT_LEFT,180);

  m_List.InsertColumn(2,"進程ID",LVCFMT_LEFT,RectList.Width()-299);

  SetWindowText("Windows當前所有進程");//程序主窗口的名稱、、

獲取所有進程的代碼、、

  char itoc[5];

  CString s;

  int i=0;

  HANDLE  Hsnap =   CreateToolhelp32Snapshot  (TH32CS_SNAPPROCESS,  0);

  for (BOOL bNext = Process32First(Hsnap,&PE32); bNext; bNext = Process32Next(Hsnap,&PE32))

  {

           sprintf(itoc,"%d",i);  //將int轉成char[];   序號1、2、3、、、

           m_List.InsertItem(i,itoc);  //向第i行寫入itoc、、

           s.Format("%s",PE32.szExeFile); //將char[]轉換為Cstring   進程名字、、

           m_List.SetItemText(i,1,s);//向第i行第1列寫入s、、

           sprintf(itoc,"%d",PE32.th42ProcessID);//將DWORD 轉成char[];  進程ID

           m_List.SetItemText(i,2,itoc);// 向第i行第2列寫入itoc、、

           i++;

  }

  CString total;

  total.Format("%d",m_List.GetItemCount());//獲取行數代表進程數、、格式化到total中、

  SetDlgItemText(IDC_Total2,total); // 給文本框賦值Cstring類型數據、、SetDlgItemText  即界面 左下角的框框、、

  CloseHandle(Hsnap);   //關閉句柄、

現在所有進程已經得到、、接下來就是對其中選中的某一進程進行注入工作、、

首先給列表框添加消息、、雙擊即可、、

而在此消息中我們要得到被選中的那一行所在的進程的ID、也就是那一行第二列的數據、

void CMyDllInjectDlg::OnClickList(NMHDR* pNMHDR, LRESULT* pResult)

{

        bMouseDown = true;  //這個變量是用來判斷用戶是否選中沒選中則不可進行操作、還可以用函數GetItemState判斷是否選中

        NM_LISTVIEW*  pNMListView  = (NM_LISTVIEW*)  pNMHDR;

   // NM_LISTVIEW這個結構有以下成員(NMHDRhdr; int iItem; int iSubItem; UINT uNewState;

 //UINT uOldState; UINT uChanged; POINT ptAction; LPARAM lParam;);

 //轉換為NM_LISTVIEW*類型、、獲取選中的行號列號(這里我們不需要列號肯定是獲取第二列)

    CString csID  =  m_List.GetItemText  (pNMListView->iItem,2); //得到被選中的行的對應的進程ID

    iID  =  atoi(csID);   //CString到int  將ID轉成int類型的全局變量、、

    ProcessName   =  m_List.GetItemText  (pNMListView->iItem,1); //得到進程名字、用于本進程不結束自己、(為HOOK OpenProcess  醞釀一下)

    *pResult = 0; //將指針pResult所指位置的內容置0  函數自動生成的以免指針沒有初始化、、

}

好了 進程ID 得到了 接下來 就可以實現對此進程 進行注入了


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

和平县| 金昌市| 措勤县| 本溪市| 分宜县| 南通市| 阜新市| 元谋县| 富锦市| 崇左市| 永新县| 景宁| 四子王旗| 铜川市| 河北区| 平邑县| 怀化市| 玉龙| 深泽县| 江西省| 娄底市| 黄龙县| 陇西县| 荥经县| 临潭县| 合江县| 南雄市| 潍坊市| 大同县| 永胜县| 宝应县| 乡宁县| 大关县| 绥芬河市| 离岛区| 新野县| 万全县| 彰化市| 永康市| 太白县| 沈阳市|