免责声明:
本公众号致力于安全研究和红队攻防技术分享等内容,本文中所有涉及的内容均不针对任何厂商或个人,同时由于传播、利用本公众号所发布的技术或工具造成的任何直接或者间接的后果及损失,均由使用者本人承担。请遵守中华人民共和国相关法律法规,切勿利用本公众号发布的技术或工具从事违法犯罪活动。最后,文中提及的图文若无意间导致了侵权问题,请在公众号后台私信联系作者,进行删除操作。
部可信环境,所以本身也没有在代码层面考虑。)作者在2022年5月21日发行的v.2.3.1版本中就提出了针对调度通讯应启用accessToken并建议生产环境自定义accessToken,但大部分应用程序在使用该组件时均采用默认配
在日常逆向APP过程中,少不了各种Java、Native的Hook,Frida作为当下非常流行的Hook框架自然得到不少人的青睐,但现在已经是2024年啦,现在无论大小app都有各种检测、加壳、反抓包、反frida、反xposed,目前也有很多大佬写过反反frida调试的文章,本文就先讲讲基础的frida编译。
在Netty的启动流程中ChannelInitializer#initChannel方法负责将用户配置的handler添加到ServerSocketChannel的pipeline
Frida编译的环境配置在frida官网已经给出
https://frida.re/docs/building
本次我选择ubuntu系统,至于原因嘛,因为用的人多,别人踩过的坑我就不踩了嘿嘿
下载链接:https://releases.ubuntu.com/,如果访问不了嫌下载速度慢的老登也可以选择国内的镜像地址下载
中科大源
http://mirrors.ustc.edu.cn/ubuntu-releases/20.04/
南京大学
http://mirrors.nju.edu.cn/ubuntu-releases/20.04/
上海交通大学
http://ftp.sjtu.edu.cn/ubuntu-releases/20.04/
清华大学
https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/20.04/
阿里云开源镜像站
http://mirrors.aliyun.com/ubuntu-releases/20.04/
浙江大学
http://mirrors.zju.edu.cn/ubuntu-releases/20.04/
各个版本下载网址:
http://mirrors.melbourne.co.uk/ubuntu-releases/
下载镜像啥的就不讲了,直接快进到补环境
更新apt
apt update
安装第三方库
sudo apt-get install build-essential curl git lib32stdc++-9-dev
libc6-dev-i386 nodejs npm python3-dev python3-pip
sudo apt-get install flex bison
一段时间后运行完没报错就是ok啦
拉取frida源码
我这里拉取的是15.0.14
git clone -b 15.0.14 --recurse-submodules https://github.com/frida/frida
一段时间后没有报错桌面又出现frida文件夹就是ok了
编译frida-server
下载然后下载NDK,并解压
https://dl.google.com/android/repository/android-ndk-r22-linux-x86_64.zip
并将其添加到环境变量中,向当前用户的.bashrc中写入以下内容,并执行source ~/.bashrc,当然也可以直接在shell中执行
export ANDROID_NDK_ROOT=/home/b17/Desktop/android-ndk-r22
export PATH=$ANDROID_NDK_ROOT:$PATH
然后执行ndk-build --v,如果有版本信息输出,说明环境变量配置生效了
安装node
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
nvm install node
cd Frida
make -f Makefile.toolchain.mk
同时也可以自行下载toolchain和sdk,其中的日期为frida中releng/deps.mk中的frida_deps_version
https://build.frida.re/deps/20210708/toolchain-linux-x86_64.tar.bz2
https://build.frida.re/deps/20210708/sdk-linux-x86_64.tar.bz2
https://build.frida.re/deps/20210708/sdk-android-arm.tar.bz2
https://build.frida.re/deps/20210708/sdk-android-arm64.tar.bz2
运行releng/setup-env.sh
记得回到frida文件夹,然后开始编译frida-server等,直接输make回车则会提示支持的编译
make core-android-arm
make core-android-arm64
make core-android-x86
make core-android-x86_64
最终的编译产物在frida/build/frida-android-arm64/bin
其中碰到坑可以用这两个办法结合解决,新建文件frida-version.h,修改frida/releng/frida.mk文件
https://github.com/frida/frida/commit/e4c6a1e646666284ea77c36d61f20558504847b5
https://blog.csdn.net/weixin_56039202/article/details/126097980
常规编译的frida-server中会存在很多的特征可以被识别,例如本地文件:
/data/local/tmp/re.frida.server/frida-agent-64.so
maps表:frida注入设置进程
Maps中存在frida特征
接下来我们根据huluwa大佬的办法来修改frida源码,目前由于某些特殊原因大佬只保留了一个版本的patch文件,我们可以跟着学习下都修改了什么地方,frida版本不同代码也会不同不可完全套用还是需要自己研究
https://github.com/AAAA-Project/Patchs/tree/master/strongR-frida/frida-core
自动修改方式
cd frida/frida-core
git clone https://github.com/hluwa/Patchs.git
git config --global user.email '1111@qq.com'
git config --global user.name 'b17'
git am Patchs/strongR-frida/frida-core/*.patch
再次编译前记得安装lief 命令python3 -m pip install life
编译后再次查看maps发现使用的so名称已经随机化
原文始发于微信公众号(Lambda小队):Frida环境搭建和简单调试
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论