算法在计算机领域指的是对特定问题的解决方案的一系列指令化描述。算法必须是明确且有穷的,即一个算法必须要有明确的定义,一定的输入在有限的步骤内可以获得要求的输出。
1.抓包确定目标参数
2.jadx 发现是否有壳 回填
2.jadx java层 hook 动静态 分析 参数加密地方
3.参数加密属于so层 找出对应的so文件 也就是 native 属于哪个so
4.进入so层 ida分析 打开确定是否混淆 是否动态加载
进入SO层分析
参
init.array so 初化 shift F7
data 字段查看信息
进入方法
DCD sub_939D8+1
看见了混淆
F5查看伪代码
修复参数
JNI_OnLoad函数注册
.data.rel.ro 注册函数信息
是否要抠出来算法
其他问题
应对检测 root检测
应对反调试 – 单独开一篇文章讲解
风控分析相关文章
https://bbs.pediy.com/thread-263401.htm
https://bbs.pediy.com/thread-260547.htm
FART脱壳的步骤主要分为三步:
1.内存中DexFile结构体完整dex的dump
2.主动调用类中的每一个方法,并实现对应CodeItem的dump
3.通过主动调用dump下来的方法的CodeItem进行dex中被抽取的方法的修复