原创 不生成導入表調用API函數

DWORD myGetApiAddr(HMODULE hModuleBaseAddr, PSTR lpApi) { PIMAGE_DOS_HEADER pDosHeader = NULL; PIMAGE_NT_HE

原创 Memory Management Functions--內存管理函數

IsBadReadPtr The IsBadReadPtr function verifies(證實) that the calling process has read access to the specified range

原创 PE --導出表

關於導出表的遍歷 1、序號表是函數名稱表到函數地址表的一箇中轉,也就是說,必須通過序號才能找到對應的函數的地址 2、比如 需要找的函數是 “function7” 它位於名字表的第4項,所以要去序號表中的第4項找這個函數的函

原创 PE--資源表

本來該用遞歸來寫的,奈何總是寫不出來,所以寫了一個遍歷3層結構的程序。以後來寫遞歸的 VOID _GetResourceInfo1(PVOID pFileBuffer) { PIMAGE_DOS_HEADER pD

原创 PE解析一

讀取文件到內存 LPVOID EXEToFileBuffer(LPCWSTR pFileName) { HANDLE hd = NULL; HANDLE hFileMapping = NULL; DWO

原创 靜態鏈接庫和動態鏈接庫編寫

一 、靜態鏈接庫 1.創建lib.cpp和lib.h文件和普通的控制檯的程序一樣的寫法即可 2.靜態庫的調用 a、把生成的.lib .h文件複製到調用文件中 b、包含這兩個文件 #include”x.h” #prag

原创 Dynamic-Link Library Functions--動態鏈接庫函數

GetModuleHandle The GetModuleHandle function returns a module handle for the specified module if the file has been

原创 1-3章筆記

CPoint CString CTime CRect 類 CTime time; time=CTime::GetCurrentTime(); MFC框架組成 1、必須含有一個CWinApp的派生類 2、必須在全局

原创 獲得KERNEL32.DLL模塊地址以及函數的地址

通過PEB獲得 DWORD getKernel32BaseAddrByPEB() { PVOID pPeb = NULL; PVOID pLdr = NULL; PVOID pFlink = NULL;

原创 File Functions--文件函數

CreateFile The CreateFile function creates or opens the following objects and returns a handle that can be used to

原创 Process and Thread Functions--進程線程函數

TlsAlloc The TlsAlloc function allocates(分配) a thread local storage (TLS) index. 原型: DWORD TlsAlloc(VOID); DWORD

原创 列表控件相關函數

獲取列表類CListCtrl pList=(CListCtrl )GetDlgItem(IDC_LIST); 獲取列表子列dwCount=pList->GetItemCount(); 插入列表子項pList->InsertIte

原创 通過PEB獲取模塊基址

PEB結構 typedef struct _PEB { // Size: 0x1D8 /*000*/ UCHAR InheritedAddressSpace; /*001*/ UCHAR ReadImageFileExecOpti

原创 PE--導入表

遍歷導入表信息 /////////////////讀取導入表信息/////////////////////// VOID _GetImportInfo(PVOID pFileBuffer) { PIMAGE_DOS_

原创 PE--重定位表

遍歷重定位表 ////////////////重定位表///////////////////////////////// VOID _GetRelocInfo(PVOID pFileBuffer) { PIMAGE_D