Android的四大组件是哪几个
- 活动
- 广播提供者
- 服务
- 内容提供者
Android系统架构有几层
- 1.应用层
- framework(应用框架层)
- C++/虚拟机层
- 4.硬件层
- 5.内核驱动层
抓包工具用过吗?
- 用过wireshark(tcp/udp/http都支持) fiddler(http/https) Charles(http/https)
hook有哪些?
- Android Java层hook是xposed修改app_process进程 注入到zygote修改了执行流程 在调用java方法时执行自己的方法 完成Hook
- 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肯定会用到 可以从这方面入手