-
-
未解决
[求助][求助]android so壳中对不同版本的stl适配
-
发表于:
2020-11-24 18:07
1891
-
未解决 [求助][求助]android so壳中对不同版本的stl适配
大神们好,我想请问一个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版本的解释,如下图
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!