大神们好,我想请问一个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版本的解释,如下图
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
guijingwen soinfo这个数据结构不是ndk里的吧,楼主做了版本适配?
Adench 自定义linker当然要实现自定义一套soinfo把