最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++獲取當前進程IAT的方法

 更新時間:2014年10月16日 10:53:06   投稿:shichen2014  
這篇文章主要介紹了C++獲取當前進程IAT的方法,實例講述了IAT(導入地址表)的獲取方法,在Windows應用程序開發(fā)中有著非常實用的應用價值,需要的朋友可以參考下

本文實例講述了C++獲取當前進程IAT的方法,分享給大家供大家參考。

具體實現(xiàn)方法如下:

復制代碼 代碼如下:
#include <windows.h>
#include <stdio.h>

int main(int argc, char* argv[])
{
 HMODULE hModule = ::GetModuleHandleA(NULL);
 IMAGE_DOS_HEADER* pDosHeader = (IMAGE_DOS_HEADER*)hModule;
 IMAGE_OPTIONAL_HEADER* pOpNtHeader = (IMAGE_OPTIONAL_HEADER*)((BYTE*)hModule + pDosHeader->e_lfanew + 24); //這里加24
 IMAGE_IMPORT_DESCRIPTOR* pImportDesc = (IMAGE_IMPORT_DESCRIPTOR*)((BYTE*)hModule + pOpNtHeader->DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress);

 while (pImportDesc->FirstThunk)
 {
  char* pszDllName = (char*)((BYTE*)hModule + pImportDesc->Name);
  printf("模塊名稱:%s\n", pszDllName);

  DWORD n = 0;
  //一個IMAGE_THUNK_DATA就是一個導入函數(shù)
  IMAGE_THUNK_DATA* pThunk = (IMAGE_THUNK_DATA*)((BYTE*)hModule + pImportDesc->OriginalFirstThunk);
  while (pThunk->u1.Function)
  {
   //取得函數(shù)名稱
   char* pszFuncName = (char*)((BYTE*)hModule+pThunk->u1.AddressOfData+2); //函數(shù)名前面有兩個..
   printf("function name:%-25s,  ", pszFuncName);
   //取得函數(shù)地址
   PDWORD lpAddr = (DWORD*)((BYTE*)hModule + pImportDesc->FirstThunk) + n; //從第一個函數(shù)的地址,以后每次+4字節(jié)
   printf("addrss:%X\n", lpAddr);
   n++; //每次增加一個DWORD
   pThunk++;
  }
  printf("\n");
  pImportDesc++;
 }
 return 0;
}

希望本文所述對大家的C++程序設計有所幫助。

相關文章

  • C++ Boost Archive超詳細講解

    C++ Boost Archive超詳細講解

    Boost是為C++語言標準庫提供擴展的一些C++程序庫的總稱。Boost庫是一個可移植、提供源代碼的C++庫,作為標準庫的后備,是C++標準化進程的開發(fā)引擎之一,是為C++語言標準庫提供擴展的一些C++程序庫的總稱
    2022-12-12
  • C++實現(xiàn)一行一行讀取文本的方法

    C++實現(xiàn)一行一行讀取文本的方法

    今天小編就為大家分享一篇C++實現(xiàn)一行一行讀取文本的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • C++ string和wstring相互轉換方式

    C++ string和wstring相互轉換方式

    這篇文章主要介紹了C++ string和wstring相互轉換方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • C語言修煉之路悟徹數(shù)組真妙理?巧用下標破萬敵上篇

    C語言修煉之路悟徹數(shù)組真妙理?巧用下標破萬敵上篇

    在C語言和C++等語言中,數(shù)組元素全為指針變量的數(shù)組稱為指針數(shù)組,指針數(shù)組中的元素都必須具有相同的存儲類型、指向相同數(shù)據(jù)類型的指針變量。指針數(shù)組比較適合用來指向若干個字符串,使字符串處理更加方便、靈活
    2022-02-02
  • C語言用棧和隊列實現(xiàn)的回文檢測功能示例

    C語言用棧和隊列實現(xiàn)的回文檢測功能示例

    這篇文章主要介紹了C語言用棧和隊列實現(xiàn)的回文檢測功能,結合具體實例形式分析了C語言棧和隊列的定義及使用棧和隊列進行回文檢測的操作技巧,需要的朋友可以參考下
    2017-06-06
  • c++獲取進程信息列表和進程所調用的dll列表

    c++獲取進程信息列表和進程所調用的dll列表

    這篇文章主要介紹了c++獲取進程信息列表和進程所調用的dll列表,大家參考使用吧
    2013-11-11
  • 基于C++泛型編程職工管理系統(tǒng)

    基于C++泛型編程職工管理系統(tǒng)

    這篇文章主要介紹了基于C++泛型編程職工管理系統(tǒng),前面介紹到了C++的泛型編程,并實現(xiàn)了萬能容器,不過那使用的是數(shù)組,今天呢咱帶大家實踐一下使用泛型技術,結合單鏈表實現(xiàn)一個職工管理系統(tǒng),需要的朋友可以參考一下
    2022-02-02
  • C++私有繼承(三)

    C++私有繼承(三)

    這篇文章主要介紹了C++私有繼承(三),前面的文章我們已經(jīng)介紹過了C++私有繼承(一)和(二),下面小編就繼續(xù)基于之前的內容繼續(xù)向大家介紹C++私有繼承,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-02-02
  • 打印菱形以及斐波納契數(shù)列的幾種解法介紹

    打印菱形以及斐波納契數(shù)列的幾種解法介紹

    本篇文章是對打印菱形及斐波納契數(shù)列的幾種解法進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • C++繼承模式詳解

    C++繼承模式詳解

    繼承機制是面向對象程序設計使代碼可以復用的最重要的手段,它允許程序員在保持原有的特性基礎上進行擴展,增加功能,這樣產(chǎn)生新的類,稱作是派生類。繼承呈現(xiàn)了面向對象程序設計的層析結構,體現(xiàn)了由簡單到復雜的認知過程。繼承是類設計層次的復用。
    2021-12-12

最新評論

隆昌县| 东港市| 大新县| 民和| 澎湖县| 汝南县| 洛扎县| 曲水县| 甘孜县| 阳江市| 沾益县| 宜都市| 杭州市| 军事| 芮城县| 商南县| 射洪县| 工布江达县| 岗巴县| 岳阳市| 娄底市| 博爱县| 惠州市| 鄂托克旗| 额尔古纳市| 招远市| 兴海县| 弥勒县| 金门县| 泽库县| 阜南县| 祁连县| 嘉善县| 黔西县| 宁河县| 万安县| 隆德县| 阿尔山市| 文化| 石渠县| 和林格尔县|