c - 在内存地址读取数组

标签 c

这是用于注入(inject)的 .DLL。

给定以下代码:

if ( *(volatile unsigned long*)(0x13E81F4+(4 * *(volatile unsigned long*)0x13E81B0)) < 2)
{
    //...
}

有没有办法以更具可读性的方式编写它,例如:

if (array[i] < 2)
{
    //...
}

(同时仍然使用所需的内存地址)?

最佳答案

volatile unsigned long *p = (volatile unsigned long *)0x13E81F4;
volatile unsigned long *q = (volatile unsigned long *)0x13E81B0;

if ( p[4 * q[0]] < 2 )

关于c - 在内存地址读取数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29088696/

相关文章:

C程序将美元兑换成卢比

c - ProcessID困惑

在 C 中将大写字母转换为小写字母..(具有挑战性的)

从 APC 调用 LdrLoadDll 会导致访问冲突

c - 在哪里可以找到 -> 解引用运算符的源代码?

c++ - if语句中float的转换

c++ - 未评估的除以 0 是未定义的行为吗?

c - 为什么 fork() 之前的 printf() 甚至在 fork() 之后执行?

c - c中的矩阵位置访问

c - Eclipse:C 项目文件夹结构