Frida环境搭建和简单调试

admin 2024年3月26日21:48:07评论6 views字数 3159阅读10分31秒阅读模式

免责声明:

本公众号致力于安全研究和红队攻防技术分享等内容,本文中所有涉及的内容均不针对任何厂商或个人,同时由于传播、利用本公众号所发布的技术或工具造成的任何直接或者间接的后果及损失,均由使用者本人承担。请遵守中华人民共和国相关法律法规,切勿利用本公众号发布的技术或工具从事违法犯罪活动。最后,文中提及的图文若无意间导致了侵权问题,请在公众号后台私信联系作者,进行删除操作。

0x01 前言

部可信环境,所以本身也没有在代码层面考虑。)作者在2022年5月21日发行的v.2.3.1版本中就提出了针对调度通讯应启用accessToken并建议生产环境自定义accessToken,但大部分应用程序在使用该组件时均采用默认配

在日常逆向APP过程中,少不了各种Java、Native的Hook,Frida作为当下非常流行的Hook框架自然得到不少人的青睐,但现在已经是2024年啦,现在无论大小app都有各种检测、加壳、反抓包、反frida、反xposed,目前也有很多大佬写过反反frida调试的文章,本文就先讲讲基础的frida编译。

0x02 启动流程

在Netty的启动流程中ChannelInitializer#initChannel方法负责将用户配置的handler添加到ServerSocketChannel的pipeline

Frida编译的环境配置在frida官网已经给出

https://frida.re/docs/building

Frida环境搭建和简单调试

本次我选择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

Frida环境搭建和简单调试

安装第三方库    

sudo apt-get install build-essential curl git lib32stdc++-9-dev     libc6-dev-i386 nodejs npm python3-dev python3-pipsudo apt-get install flex bison

一段时间后运行完没报错就是ok啦

Frida环境搭建和简单调试

拉取frida源码

我这里拉取的是15.0.14

git clone -b 15.0.14 --recurse-submodules https://github.com/frida/frida

一段时间后没有报错桌面又出现frida文件夹就是ok了

Frida环境搭建和简单调试

编译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-r22export PATH=$ANDROID_NDK_ROOT:$PATH

然后执行ndk-build --v,如果有版本信息输出,说明环境变量配置生效了    

Frida环境搭建和简单调试

安装node

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash

Frida环境搭建和简单调试

nvm install node

Frida环境搭建和简单调试

cd Fridamake -f Makefile.toolchain.mk

Frida环境搭建和简单调试

同时也可以自行下载toolchain和sdk,其中的日期为frida中releng/deps.mk中的frida_deps_version

Frida环境搭建和简单调试

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文件夹,然后开始编译frida-server等,直接输make回车则会提示支持的编译

make core-android-armmake core-android-arm64make core-android-x86make core-android-x86_64

最终的编译产物在frida/build/frida-android-arm64/bin

Frida环境搭建和简单调试

其中碰到坑可以用这两个办法结合解决,新建文件frida-version.h,修改frida/releng/frida.mk文件

https://github.com/frida/frida/commit/e4c6a1e646666284ea77c36d61f20558504847b5

https://blog.csdn.net/weixin_56039202/article/details/126097980

0x02 常规反反调试

常规编译的frida-server中会存在很多的特征可以被识别,例如本地文件:

/data/local/tmp/re.frida.server/frida-agent-64.so

Frida环境搭建和简单调试

maps表:frida注入设置进程    

Frida环境搭建和简单调试

Maps中存在frida特征

Frida环境搭建和简单调试

接下来我们根据huluwa大佬的办法来修改frida源码,目前由于某些特殊原因大佬只保留了一个版本的patch文件,我们可以跟着学习下都修改了什么地方,frida版本不同代码也会不同不可完全套用还是需要自己研究

https://github.com/AAAA-Project/Patchs/tree/master/strongR-frida/frida-core

自动修改方式

cd frida/frida-coregit clone https://github.com/hluwa/Patchs.gitgit 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名称已经随机化Frida环境搭建和简单调试

0x04

原文始发于微信公众号(Lambda小队):Frida环境搭建和简单调试

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年3月26日21:48:07
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Frida环境搭建和简单调试https://cn-sec.com/archives/2605469.html

发表评论

匿名网友 填写信息