首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

VC把内联汇编注入写入游戏的时候 变量是怎么办的啊

2013-10-05 
VC把内联汇编注入写入游戏的时候 变量是怎么处理的啊。DWORD a 0x11int b 0x11__declspec(naked) voi

VC把内联汇编注入写入游戏的时候 变量是怎么处理的啊。


DWORD a = 0x11;
int b = 0x11;
__declspec(naked) void Code()
{
        __asm
        {
                mov eax,a  //这样写不行啊
                push b  //这样写不行啊
        }
}

把内联汇编注入写入别的进程(WriteProcessMemory)的时候  变量是怎么处理的啊。
比如 mov eax,0x11    这个0x11每次都会变。。每次都要重新获取  不能使用常量。。 一开始我是把他定义成变量 。。int a = 0x11   

但是生成的代码就变成了 mov eax,[变量a的地址]
a的地址是我们自己程序的地址。。写入到游戏后  肯定用这个地址就访问不到了。。。   

我也尝试在目标进程分配一块内存VirtualAllocEx  把我们的变量数据写进去 但是返回是依然是地址依然是变量。。依旧没有解决 **********************
当然可以在进程内存固定的空白内存处写入  。。。但总感觉这不是最终办法。。是个临时应变的。。。

有同学解答一下嘛
[解决办法]
《Windows PE权威指南》
[解决办法]
即然都是内嵌汇编, 那完全可以先把变量的值, 转换成常量, 再注入到其它程序中.

热点排行