Fxmles 发表于 2021-7-19 18:22

[C++求助]dll注入到植物大战僵尸执行代码,游戏崩溃

我往植物大战僵尸里dll注入这个代码
                int* j;
                j = memory::P3((int*)0x6a9ec0, 0x82C, 0x2C);
                *j = 1;
游戏就崩溃了,提示Access Violation (code 0xc0000005) at address 0040C3FE in thread 29A4
有办法解决吗?开多线程也没用

18679528521 发表于 2021-7-19 19:00

内存访问错误自己看地址哪里错了,

Fxmles 发表于 2021-7-19 19:11

18679528521 发表于 2021-7-19 19:00
内存访问错误自己看地址哪里错了,

用ce改没问题

小白来学习 发表于 2021-7-19 21:45

可能是哪个数值错了吧----------------来自小白的提醒{:1_933:}

asd9988 发表于 2021-7-19 22:25

1、首先对比 j的值 和ce读取出来的是否一样
2、修改的时候 不如试试 *(DWORD*)(addr) = 1234;

18679528521 发表于 2021-7-19 22:42

确定是基址?

Jack 发表于 2021-7-19 22:49

内存访问出错.确定你有用virtualproject修改成可修改属性?

yaoaixgyx 发表于 2021-7-25 11:59

laravuel 发表于 2021-8-15 20:25

用VirtualProtectEx设置下你要修改的内存地址的写入权限试试呗

Tsihen 发表于 2021-9-20 21:44

在获取 j 的值后、修改 *j 之前使用
```cpp
// 需要引用 windows.h头文件
DWORD tmp = 0;
// 0x40 就是 PAGE_EXECUTE_READWRITE,使得相应的内存可读可写可执行

BOOL res = VirtualProtect((DWORD)j, sizeof(int), 0x40, &tmp);
// 当 res 为 S_OK 时表示没有错误
```
更改访问权限
页: [1]
查看完整版本: [C++求助]dll注入到植物大战僵尸执行代码,游戏崩溃