我目前正在研究一些系統級代碼,我希望能夠識別來自加載的二進制文件的內存部分以檢測損壞或修改的指令等內容;獲取二進制指令的內存地址
本質上,我所追求的是一種在使用C++的Win32中獲取指向範圍指令的指針。這有點類似於要求一個指向.text段的開始和結束的函數指針。我對exe格式的理解是,.text部分是存儲指令的地方,而.data部分則包含全局變量之類的東西。不幸的是,我發現這裏可能有0個提示(我沒有看到win32函數調用,TIB中沒有任何內容等)。
任何人都可以指示我在哪裏可以找到/計算此信息?
P.S.我明白,如果任何人惡意更改代碼,他們可能會發現此代碼並進行更改;我仍然對如何根據自己的好奇心獲取這些信息的細節感興趣。
另一個新的信息。嗯,你知道如果一個句柄只是第一頁的內存地址,確保你總是關閉句柄的目的是什麼?我假設操作系統必須跟蹤頁面分開打開的次數,否則有什麼意義?只是在這裏好奇。 – Tom 2011-03-25 23:14:27
一般來說,它的確如此,但GetModuleHandle(作爲特例)不會增加句柄的引用計數。 – 2011-03-28 17:16:30
您正在討論與HANDLE非常不同的HMODULE。 – 2011-04-05 21:49:16