美文网首页
移动app中so文件的执行顺序

移动app中so文件的执行顺序

作者: 静析机言 | 来源:发表于2019-03-27 12:14 被阅读0次

    根据linker源码,so的执行顺序为:

    .preinit_array->-> .init->->.init array->->JNI_Onload->->java_com_XXX; 但so是不会执行 .preinit_array 的, 可以忽略。

    还有我们在脱壳的过程中会在一些系统级的.so中下断点比如:fopen,fget,dvmdexfileopen,等等

    而.init以及.init_array一般会作为壳的入口地方,那我们索性叫它外壳级的.so文件

    这里归纳为三类:

    应用级别的:java_com_XXX;

    外壳级别的:JNI_Onload,.init,.init_array;

    系统级别的:fopen,fget,dvmdexfileopen;

    对于在应用级别的和系统级别的就不说了比较简单容易理解。看到上面的.so的加载执行过程我们知道如果说反调试放在外壳级别的.so文件的话,我们就会遇程序在应用级核心函数一下断点就退出的尴尬,事实上多数的反调试会放在这,那么过反调试就必须要在这些地方下断点。

    相关文章

      网友评论

          本文标题:移动app中so文件的执行顺序

          本文链接:https://www.haomeiwen.com/subject/mzfzvqtx.html