我目前正在研究一些系统级代码,我希望能够识别来自加载的二进制文件的内存部分以检测损坏或修改的指令等内容;获取二进制指令的内存地址
本质上,我所追求的是一种在使用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