C 特徵碼查詢 附加案例

2021-10-10 06:49:27 字數 1356 閱讀 5361

#include #include #include using namespace std;

//引數分別為:程序控制代碼、特徵碼、偏移、讀取長度、開始掃瞄位地置、掃瞄結束位置

uintptr_t hanshu_dizhi; //記錄特徵碼對應的位址

uintptr_t scanaddress(handle process, char *markcode, int noffset, unsigned long dwreadlen = 4, uintptr_t startaddr = 0x400000, uintptr_t endaddr = 0x7fffffff, int instructionlen = 0)

; //將引數nptr字串根據引數base來轉換成長整型數

m_code[i] = (byte)::strtol(c, null, 16);

} //每次讀取遊戲記憶體數目的大小

const dword pagesize = 4096;

/查詢特徵碼/

//每頁讀取4096個位元組

byte *page = new byte[pagesize];

uintptr_t tmpaddr = startaddr;

//定義和特徵碼一樣長度的標識

int compare_one = 0;

while (tmpaddr <= endaddr)

{ ::readprocessmemory(process, (lpcvoid)tmpaddr, page, pagesize, 0); //讀取0x400000的記憶體資料,儲存在page,長度為pagesize

//在該頁中查詢特徵碼

for (int i = 0; i < pagesize; i++)

{ if (m_code[0] == page[i])//有乙個位元組與特徵碼的第乙個位元組相同,則搜尋

除錯輸出 (78414633)我腦子抽了一直以為錯了  然後用系統自帶的計算器將這個轉為16進製制  算出4ac8329  (對應 上圖紅色部分04 ac  83  29) 對應(0x0042578f位址)修改也是對著這個位址修改的。

2020/11/5 但是感覺缺點東西 如果能直接返回出 0x0042578f 這個位址太棒了,看看這兩天能不能研究出來

2020/11/5 感謝(id南南)解決了上述問題,在函式中 已經取到特徵碼對應的位址   hanshu_dizhi來記錄這個位址

C 特徵碼定位

include include include bool getprocessmodulehandle dword pid,const char szmodulename,moduleentry32 pmodule 獲取模組資訊的 bool stringtobyte const char inbuf...

windows 根據特徵碼查詢核心任意函式

在windows平台做逆向 外掛程式等,經常需要呼叫很多未匯出的核心函式,怎麼方便 快速查詢了?可以先用ida等工具檢視硬編碼,再根據硬編碼定位到需要呼叫的函式。整個思路大致如下 1 先查詢目標模組 遍歷模組的方式有多種。既然通過驅動在核心程式設計,這裡選擇遍歷driverobject的driver...

C 獲取多個物理唯一碼案例

本地ip getip cpu編碼 getcpuid getmacaddress 本地ip getipaddress 磁碟型號 getdiskid 系統使用者名稱 getusername 系統型別 cmd命令 systeminfo 方法如下 string getcpuid moc null mc nu...