1 Android SO加壳要是对针对以下两点
1. 对elf文件加壳及针对so文件
2. 对于在so加载,调用机制做特殊处理
2 加壳思路
简单 : 加密 + 拆解 + 混淆
复杂 : StolenCode 在VM中进行
如果想要自己写一套加壳工具的话,第一步必须要了解elf文件结构,了解so库的加载机制,然后自己写套加壳工具
解读
其实so库就相当于android中library库,在android runtime时期被加载进来通过java层去调用,所要对elf文件加壳后还需要一些特殊的处理 。
比如:
1。 在load so库以后,会将so中信息存储在一个全局的链表中,保证脱壳后的so文件可以被全局的链表访问到
2。android中so文件被java层调用有两种方式 :
1. registerNative注册
2. 通过java命名规则命名
因此在加壳的时候必须要保证所有的库函数都能被掉用,剩下的就只需要通过过反调试(Anti tricks)的方法增加破解者耐心,最后耗死他,比如现在的我。
3 对于新人来说一定会有几个问题
1 so中信息存储到全局的链表,链表在哪里?
2 registerNative 注册又是在哪里 ?
本文详细介绍了Android系统中SO库的加壳原理和技术实现过程,包括对ELF文件的处理和SO加载机制的特殊处理。文章还探讨了加壳的不同策略,从简单的加密和混淆到复杂的虚拟机操作,并强调了在实施过程中需要考虑的关键因素。

被折叠的 条评论
为什么被折叠?



