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

xuanze113 2013-08-21 02:19:24

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 把我们的变量数据写进去 但是返回是依然是地址依然是变量。。依旧没有解决 **********************
当然可以在进程内存固定的空白内存处写入 。。。但总感觉这不是最终办法。。是个临时应变的。。。

有同学解答一下嘛
...全文
220 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaohuh421 2013-08-21
  • 打赏
  • 举报
回复
即然都是内嵌汇编, 那完全可以先把变量的值, 转换成常量, 再注入到其它程序中.
赵4老师 2013-08-21
  • 打赏
  • 举报
回复
《Windows PE权威指南》

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧