ida相关
反f5怎么解决
JUMPOUT案例: 雷速体育ida需要安装keypatch插件,修改汇编的跳转指令
asm区别是这个需要技术地址,而JUMPOUT是把地址给出来的
so加固的脱壳和修复
案例:川观新闻
.text段是可以用ida f5反编译的,但是seg段不能,所以看到这个就说明so是加固了的,因为不能反编译关键函数
so加载前和加载后的视图是不一样的,加载前是链接视图,加载后是执行视图,链接视图是以节(section)为单位,执行视图是以段(segment)为单位。链接视图就是在链接时用到的视图,而执行视图则是在执行时用到的视图。而我们从内存中dump出来的so是执行视图,没有节头表,ida是识别不了的,需要进行修复。
用sofixer工具可以对dump下来的so进行修复
frida检测
frida的检测方式总结以及应对方案
端口检测frida默认端口是27042,修改端口即可
maps文件检测maps文件用于显示当前app加载的依赖库文件检测最终是要比对字符串,hook libc.so中的strstr(是否有字符串)、strcmp(字符串是否相同)
ptrace占坑ptrace只能附加1个进程,如果app自己写了个进程附加自己,就不能被frida附加了,这个过掉的方式很简单,就是frida以spawn方式启动,在启动的时候就被frida附加了,就不会被app的进程附加了。
pthread_create杀进程这里最简单的是将检测函数替换为空函数
task目录检测
frida持久化
一、frida持久化介绍
hook的前提需要将代码或者能够完成hook功能的东西,注入到目标进程中,安卓中注入的方式:zygote注入(比如xposed)、ptrace注入(比如frida)、文件感染(修改dex文件,加一行代码system.loadlibrary(“xxx.so”))等
frida-server利用ptrace注入,需要root权限为了方便hook代码修改,还设计成了需要与pc端连接
frida-gadget当hook代码修改测试完毕,可以通过它来实现免root、脱离pc,但是它本身没有注入功能,需要打包到app中
魔改系统在app启动过程中,自动加载frida-gadget,就可以不用修改app了,更通用。
二、修改app启动流程
打开app时判断是否启用持久化/frameworks/base/core/java/android/app/ActicityThread.java在以上文件中,添加代码
具体看视频
逆向ollvm的非通用方法
案例: luckin coffee
一、
使用unicorn调用算法
使用capstone解析
二、unicorn调用算法首先先用frida_dump.js(https://github.com/lasting-yang/frida_dump) 把so dump出来。然后python安装unicorn库
对于32位的so,so中函数的偏移需要加1。
脱壳
一、随记
一个16进制字符对应4个bit位,两个16进制字符就是1个字节,如b8就是占用1个字节
快速建站
注册github,然后创建一个仓库
安装配置hexo,这里不赘述
每日发帖:
1$ hexo cl //清清除缓存文件 (db.json) 和已生成的静态文件 (public)。
1hexo g // 生成静态文件。
1hexo s //本地运行
1hexo d //部署到服务器
修改主题相关
修改主页图片和头像,需要到对应的主题/source/img中去添加图片,然后把路径改为/img/图片.jpg