Android的四大组件是哪几个

    • 活动
    • 广播提供者
    • 服务
    • 内容提供者

    Android系统架构有几层

    • 1.应用层
      1. framework(应用框架层)
      1. C++/虚拟机层
    • 4.硬件层
    • 5.内核驱动层

    抓包工具用过吗?

    • 用过wireshark(tcp/udp/http都支持) fiddler(http/https) Charles(http/https)

    hook有哪些?

    1. Android Java层hook是xposed修改app_process进程 注入到zygote修改了执行流程 在调用java方法时执行自己的方法 完成Hook
    2. Android C++层Hook有got hook inline hook got hook是hookso库加载时的got表(类似PE文件的导入表) inline hook修改函数内部的arm指令完成hook

    dexhunter的原理

    • dexhunter是android二代壳的通用脱壳机
    • dexhunter原理 就是hook类加载的函数defineClass defineClassNative在dex文件内存加载时 在内存中完成对dex文件的重构

    apktool的源码有看过吗?

    • 使用git下载过 写dex解析的时候看过一小部分APKtool源码有很多值得借鉴的地方 比如资源的解析dex文件的解析当遇到反编译出错时改源码才是王道

    linker源码有阅读过吗?

    • 了解过,和linux下的Id的源码,类似windows下的PE加载器linker对so文件进行了加载和解释linker源码非常值得阅读因为要想写so加固和分析so加固之后的程序 就需要对linker有一定的了解 就像windows写壳 如果对PE加载器不了解不理解 很难写出壳

    linux下遍历进程的函数是什么

    • linux下遍历进程使用的文件操作的函数 遍历了proc文件目录下的所有数字即可 如果想遍历详细的信息需要再读取数字目录下的文件 命令行信息是cmdline状态信息是status如果要读取进程内存需要使用ptrace附加进程 读取mem

    android加固的原理?

    • 最早的加固就是自己的dex替换源程序的 然后程序运行时动态解密加载源dex一般是在自己实现的application中的

    attachBaseContext或者是onCreate方法中执行

    android最早的入口函数是什么

    • 一般是入口类中的onCreate方法 如果加固了是自己实现的application中的attachBaseContext方法 之后application中的onCreate方法

    android加固的特征是什么

    • 不同厂商加固之后都会有对应的so文件 比如360加固 里面有libjiagu.so文件

    so加固的特征是什么

    • 会自己实现一个Loader对so文件加壳 抹去导入信息elf文件格式畸形化

    制作一个手机助手 有什么思路

    • 因为手机助手的功能基本上用adb都可以实现 所以猜测手机助手背后就是使用adb从这一点开始分析adb抓包分析看看有没有执行一些adb命令 然后再下断点CreateProcessA/W或者send看看有没有创建cmd执行命令或者是网络连接发送数据 然后再分析手机助手的安装文件夹 看看有什么动态库以及库的导出函数 根据这些再去进一步分析 等了解了手机助手的原理之后 再动手写代码

    如果分析wifi共享精灵 有什么思路

    • 如果分析WIFI共享精灵 我会从开启WIFI热点这个功能入手 先补充一下开启热点的知识 然后根据开启热点的流程中用到的API然后下断开始分析 感觉基本的开启热点会访问网卡 建立服务器 网络相关的socket api肯定会用到 可以从这方面入手