我正在做的是将 DLL 注入正在运行的进程中。然后我继续检查有关该过程的一些信息,例如版本等。我的问题是我似乎无法访问程序集文件中的字符串,其中包含我要仔细检查的修订号。这是我到目前为止所拥有的:
__declspec(naked) void CheckBuild()
{
char* revision;
__asm {
sub esp, __LOCAL_SIZE
pushad
pushfd
mov revision, dword ptr 0x5F5200
}
printf("Detected revision ID: %u\n", revision);
__asm {
popfd
popad
add esp, __LOCAL_SIZE
retn
}
}
对于这个培训内容,我通过 IDA 获得并使用 CheatEngine 和 OllyDbg 检查的字符串地址是不变的。
但是,无论我尝试什么,我总是得到十进制的 0x5F5200,这绝对不是我所期望的。我几乎尝试了一切,包括 lea 和其他人,但我仍然没有得到有效的字符串。
谁能指出我正确的方向?