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

C++獲取當(dāng)前進(jìn)程IAT的方法

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

本文實例講述了C++獲取當(dāng)前進(jìn)程IAT的方法,分享給大家供大家參考。

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

復(fù)制代碼 代碼如下:
#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就是一個導(dǎo)入函數(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++程序設(shè)計有所幫助。

相關(guān)文章

  • C++ Boost Archive超詳細(xì)講解

    C++ Boost Archive超詳細(xì)講解

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

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

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

    C++ string和wstring相互轉(zhuǎn)換方式

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

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

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

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

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

    c++獲取進(jìn)程信息列表和進(jìn)程所調(diào)用的dll列表

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

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

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

    C++私有繼承(三)

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

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

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

    C++繼承模式詳解

    繼承機(jī)制是面向?qū)ο蟪绦蛟O(shè)計使代碼可以復(fù)用的最重要的手段,它允許程序員在保持原有的特性基礎(chǔ)上進(jìn)行擴(kuò)展,增加功能,這樣產(chǎn)生新的類,稱作是派生類。繼承呈現(xiàn)了面向?qū)ο蟪绦蛟O(shè)計的層析結(jié)構(gòu),體現(xiàn)了由簡單到復(fù)雜的認(rèn)知過程。繼承是類設(shè)計層次的復(fù)用。
    2021-12-12

最新評論

于田县| 龙口市| 香港| 色达县| 穆棱市| 图木舒克市| 横山县| 安陆市| 和田市| 木兰县| 长武县| 晋江市| 云阳县| 册亨县| 那曲县| 读书| 黔西| 南安市| 龙游县| 九江市| 英德市| 内江市| 红安县| 湖州市| 工布江达县| 临清市| 抚远县| 额敏县| 罗田县| 调兵山市| 和龙市| 博湖县| 湟中县| 上杭县| 鄂伦春自治旗| 宁国市| 启东市| 华亭县| 鹿邑县| 涿州市| 安陆市|