为了账号安全,请及时绑定邮箱和手机立即绑定

你好,请问在ios中怎么获得模块基址和模块长度?

你好,请问在ios中怎么获得模块基址和模块长度?

iOS
素胚勾勒不出你 2023-04-30 11:07:52
想做内存自校验,因为iOS架上app不支持动态链接库,所以就是想计算内存中可执行文件的SHA1~所以想取得可执行文件的基址和长度~或者要求再低点取得函数指针和函数在内存中的长度也行,做函数自校验也够用了~RT,求指导~
查看完整描述

1 回答

?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

[Update]
最近正好回头研究,发现还有更好的方法来做的。验证模块基址还是有其他简单方法的:

static void baseaddr(const char *cls, const char *sel){
    Dl_info info;
    IMP imp= class_getClassMethod(objc_getClass(cls), sel_registerName(sel));    if (dladdr(imp, &info)){        printf("fbase: %s\n", info.dli_fbase);
    }
}

使用方法如下:

baseaddr("NSURLConnection","initWithRequest:delegat:");
查看完整回答
反对 回复 2023-05-02
  • 1 回答
  • 0 关注
  • 286 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信