原创 不生成導入表調用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