首页
论坛
专栏
课程

[求助]地址问题

2020-3-25 23:01 473

[求助]地址问题

2020-3-25 23:01
473
请问:为什么有的游戏数据是动态地址却可以用一个静态地址加多层偏移表示?比如[[[111111]+10]+20]+30
想了想是不是数组(全局或者局部),数组中嵌套了一个数组中再嵌套一个数组-----数组(数组(数组)) 1111111是一个指针变量地址



2020安全开发者峰会(2020 SDC)议题征集 中国.北京 7月!

最新回复 (8)
monvvv 2020-3-25 23:07
2
0
一般游戏都会维护一个全局变量
恺因 2020-3-25 23:12
3
0
monvvv 一般游戏都会维护一个全局变量
然后呢?
yeyeshun 2 2020-3-26 08:39
4
0
我理解的是这样的伪代码:
struct A
{
  int nA;
  char* str;
}
struct B
{
  int nB;
  struct A* a;
}
struct C
{
  int nC;
  struct B* b;
}
struct C* c = 0;
void main()
{
  c = new struct C();
  c->b = new struct B();
  c->b->a = new struct A();
  c->b->a->str = new char[16];
}
c->b->a->str 这样的,就类似于你的[[[111111]+10]+20]+30。
柒雪天尚 2020-3-26 08:42
5
0
yeyeshun 我理解的是这样的伪代码: struct A { int nA; char* str; } struct B { int nB; struct A* a; } st ...
又是要是用这种模式开发,得多出多少代码来?
yeyeshun 2 2020-3-26 08:43
6
0
开发的话,使用这种的便于管理,反而会节省代码
逻辑错误 1 2020-3-26 09:17
7
0
大多都是C++开发的, 找到类的指针以后, 其他的都是类里面的成员, 一般情况下游戏只要不更新, 偏移就不会变.
很多人都有过找ecx或者esi的经历, 就是在找类的指针, 回溯很多层才能找到, 然后根据指针, 一层层的剥开, 直到找到想要的数据.
恺因 2020-3-26 11:25
8
0
逻辑错误 大多都是C++开发的, 找到类的指针以后, 其他的都是类里面的成员, 一般情况下游戏只要不更新, 偏移就不会变. 很多人都有过找ecx或者esi的经历, 就是在找类的指针, 回溯很多层才能找到, 然 ...
如何解释偏移有很多层呢?
killpy 2 2020-3-26 14:02
9
0
有点意思
游客
登录 | 注册 方可回帖
返回