zyc900329 发表于 2021-12-6 01:26

看了好几天的反汇编视频 还是遇到一些看不明白的地方 求指点

本帖最后由 zyc900329 于 2021-12-6 01:29 编辑

看了好多天逆向反汇编的视频学习反汇编代码
想拿个游戏来实操试试

图片中的两个CALL该怎么理解?
看的教程都是类似这种call比如 call sub_180092200
还有好多人说尽量不要去看伪代码或者不要太信任伪代码,我一般都是一边看汇编代码看不太明白的话会去看一眼伪代码,这样应该比较更容易看懂汇编代码
mov   r10,
mov   rcx,
mov   , rcx
mov   r9d, eax
mov   r8d, r12d
mov   rdx, r13
mov   rcx, r15
call    qword ptr
这句代码的IDA里的伪代码是
(*(void (__fastcall **)(__int64 *, __int64, _QWORD, _QWORD, _QWORD, int, _QWORD))(*v13 + 584))(
      v13,
      a1,
      a2,
      v14,
      *(_QWORD *)(*v13 + 592),
      v17,
      0i64);
求个大神帮忙答复下
或者说该如何理解这些代码的意思。。。 彻底看不懂了

whatiwhere 发表于 2021-12-6 11:04

函数调用约定 卤煮 学的如何?

zyc900329 发表于 2021-12-6 14:24

本帖最后由 zyc900329 于 2021-12-6 14:30 编辑

whatiwhere 发表于 2021-12-6 11:04
函数调用约定 卤煮 学的如何?
学的好就不会来问这种问题了{:1_890:}
谢谢大哥 我去找点调用约定的资料看看去。。。

飘零星夜 发表于 2021-12-6 14:34

应该是在 r10+248h 上面存放了一个函数指针, call 就是调用这个指针指向德函数. //如果不对,记得@我,我也学习中

cndml 发表于 2021-12-6 19:00

本帖最后由 cndml 于 2021-12-6 19:08 编辑

这叫寄存器相对寻址,是汇编语言的操作数寻址方式,任何汇编语言的书开始就要讲的,你根本没看啊。汇编语言的操作数寻址方式大概有这么多
1、立即数寻址方式
2、寄存器寻址方式
3、内存直接寻址方式
4、寄存器间接寻址方式
5、寄存器相对寻址方式
6、基址变址寻址方式
7、相对基址变址寻址方式
8、比例变址寻址方式

gdf87521 发表于 2021-12-7 21:07

函数调用约定与传参返回值,学习学习{:301_1000:}
页: [1]
查看完整版本: 看了好几天的反汇编视频 还是遇到一些看不明白的地方 求指点