使用android jni加固

一、为什么要使用jni加固

其实以前都不是很了解jni,没怎么用过。 因为jni的使用场景要么是提供超过java的性能,要么跨平台android、ios都可以使用。这种so在条件允许的情况会有人专门负责,不需要app层去处理。
之前做过一个android加固相关的,通过jni把部分重要的逻辑放到c层,这样可以防止app被反编译后轻易找到那部分逻辑。当然如果用c写觉得麻烦(涉及到java其他库依赖库或者模块依赖等),可以通过java->c->java 其实不用写什么c代码也可以起到加固作用。

二、使用jni加固的基本流程

  • 选定进入jni的入口
  • 选定so里面通过路径查找的java类 需要keep住
  • 基于以前破解的方法,制定恶意的逻辑。只要敢改代码二次打包,就入坑
  • 签名检验可以考虑下沉到so做

三、java->c->java注意点

1.findClass(path)不能混淆,不然找到该类。但是混淆后,容易被顾名思义。这时要处理,比如不混淆也看不懂的代码

2.抖一些小机灵,比如埋雷,只要被串改了就出问题之类的

你可能感兴趣的:(使用android jni加固)