IDA把一个结构变量翻译为函数指针

IDA对某个exe文件生成了如下伪代码:

int (__cdecl *off_C65BA0)(int, int, int) = &sub_8D000C;// weak

这个off_C65BA0用在以下语句中:

memcpy(&unk_28629D2, &off_C65BA0, 0x28u);

根据以上语句可知,off_C65BA0是一个结构变量。

已经分析出来unk_28629D2是一个长度为40个字节的结构变量,其类型名自定义为context_types__mcdu_action_direct_40_t。

因此,off_C65BA0也是与unk_28629D2同类型的结构变量。

off_C65BA0的初值恰好与函数sub_8D000C的起始地址相同,即是0x8D000C。

这样,off_C65BA0应定义为:

context_types__mcdu_action_direct_40_t G_C65BA0 = {0xC, 0, 0x8D, 0, };

上述memcpy的调用语句可替换为:

G_28629D2 = G_C65BA0;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值