首页
社区
课程
招聘
未解决 [求助][求助]android so壳中对不同版本的stl适配
发表于: 2020-11-24 18:07 1899

未解决 [求助][求助]android so壳中对不同版本的stl适配

2020-11-24 18:07
1899

大神们好,我想请问一个so加固的问题,如果有空请帮忙指导下
目前情况:实现so壳加载内存中的so。
问题:在android7以上的版本 dlopen返回的是handle指针,而不是soinfo结构体,而handle指针是存放在g_soinfo_handles_map这个容器内的,而如果要从这个容器内取得soinfo的信息,势必要使用stl中的std::unordered_map容器类,所以势必在Application.mk中声明APP_STL:=c++_static,而这个可能会与原始so使用不同的stl版本有差异(例如原始so使用的gnustl_static),这导致无法运行。
请教下,如何去适配这种情况,或者如何更好的以c的指令去获取g_soinfo_handles_map的key,value,壳代码全部使用c语言,这样就不会有stl不适配的问题。

 

ps:我查了谷歌官网对同一个应用不同的stl版本的解释,如下图


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 4324
活跃值: (3830)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
soinfo这个数据结构不是ndk里的吧,楼主做了版本适配?
2020-11-25 17:31
0
雪    币: 4392
活跃值: (881)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
guijingwen soinfo这个数据结构不是ndk里的吧,楼主做了版本适配?
自定义linker当然要实现自定义一套soinfo把
2020-11-26 11:28
0
雪    币: 4324
活跃值: (3830)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
Adench 自定义linker当然要实现自定义一套soinfo把
怎么让系统找到自己加载的so呢?
2020-11-26 22:42
0
游客
登录 | 注册 方可回帖
返回
//