y03051022 发表于 2024-1-29 16:11

函数在内存中的偏移怎么计算

在x64环境下 已知两个函数在IDA中的偏移,已知其中1个函数在内存中的位置,怎么计算另1个函数的位置。
在不使用PE解析的情况下,有什么公式吗

爱飞的猫 发表于 2024-1-29 16:20

拿地址相减得到偏移,然后你已知地址A,加上去不就行了吗

除非这两个函数跨段/跨模块了。

BonnieRan 发表于 2024-1-29 16:24

函数在内存的地址=程序/so库基址+函数偏移
已知函数在内存的地址-该函数的偏移=其程序/so的基址
基址+另一个函数的偏移=其在内存的地址
thumb指令好像要+1还是-1来的,以前在论坛看到过相关的帖子,我忘了

y03051022 发表于 2024-1-29 16:26

爱飞的猫 发表于 2024-1-29 16:20
拿地址相减得到偏移,然后你已知地址A,加上去不就行了吗

除非这两个函数跨段/跨模块了。

跨段了有什么办法吗,我用偏移+A的地址 这中方式计算出来的不对

冥界3大法王 发表于 2024-1-29 16:36

没给限定的定语,所以不确定因素很多。

minibeetuaman 发表于 2024-1-29 17:08

直接在内存里面搜索特征码吧

sai609 发表于 2024-1-29 18:08

计算出来干嘛用

y03051022 发表于 2024-1-29 21:54

sai609 发表于 2024-1-29 18:08
计算出来干嘛用

想从这个函数里取数据

y03051022 发表于 2024-1-29 21:56

冥界3大法王 发表于 2024-1-29 16:36
没给限定的定语,所以不确定因素很多。

大佬,是windows x64环境 这两个函数是在一个dll里面

y03051022 发表于 2024-1-29 21:58

冥界3大法王 发表于 2024-1-29 16:36
没给限定的定语,所以不确定因素很多。

大佬,是win x64环境 两个函数是在1个dll里面
页: [1] 2
查看完整版本: 函数在内存中的偏移怎么计算