( 1 ) 导读( 2 ) 参考( 3 ) 在手机上布置Debian环境 (唯一需关注的关键)( 4 ) 在手机Debian中, 编译运行bcc helloworld( 5 ) 给手机的Debian配置独立的SSH( 6 ) 通过VSCODE SSH登陆到手机Debian, 进行开发.( 7 ) hook all syscall
..
查看手机内核对BPF支持情况手机为Pixel 6 / Kernel 5.10,需要的内核功能默认已打开,开箱即用.
uname
-
a
.
zcat
/
proc
config.gz | grep PROBE
下载eadb和debianfs-arm64-full.tar.gzhttps://github.com/tiann/eadb/releases
通过eadb安装debian环境
eadb
ssh root@
192.168
.x.x
p xxxx prepare
a debianfs
arm64
full.tar.gz
eadb是对adeb的重新实现(rust重写的),eadb的作用是可以给Android安装一个完整健全的arm debian环境.(注意:配置ssh密钥的过程这里略过,可通过Magisk模块完成.)
.x.x shell
像平时在ubuntu上那样布置eBPF-BCC的常规过程,在手机里中来一遍, 没什么不一样的.
git clone https:
github.com
iovisor
bcc.git
mkdir bcc
build; cd bcc
build
cmake ..
make
sudo make install
cmake
DPYTHON_CMD
=
python3 ..
# build python3 binding
pushd src
python
popd
编译安装后, 运行helloworld测试可以跑的话,到这就算成功了,缺陷是还没有IDE,不方便开发.
cd
bcc
examples
python hello_world.py
安装proxychains被墙的话,在手机Deabian里git和wget比较慢,还是要在手机Debian里配置proxychains之类的代理.
apt
get install proxychains
vim
etc
proxychains.conf
# ---- 配置proxychains.conf ----
socks5
.?.?
12345
# 填写代理ip端口
安装pip
proxychains apt
get install python3
pip
# 或者
proxychains wget https:
bootstrap.pypa.io
get
pip.py
proxychains python get
目的有了这个步骤, 就可以不用eadb了,后面可以直接拿vscode ssh登录到手机的Debian上...
在手机Debian中执行以下操作,配置ssh
get update
get install ssh
ssh
sshd_config
# 编辑详细服务配置
vim id_rsa.pub
# 手动粘贴导入公钥
cat id_rsa.pub >> ~
.ssh
authorized_keys
chmod
600
~
700
service ssh restart
# 手机每次重启后,第一次进入debian,可能都需要手动启动下ssh服务
sshd_config的详细配置
AuthorizedKeysFile .ssh
Port
11111
PubkeyAuthentication yes
PermitRootLogin yes
PasswordAuthentication yes
GSSAPIAuthentication no
# 加速SSH
UseDNS no
修改Debian的root密码需要重新修改Debian root密码,登ssh时需要.
passwd root
PC客户端上配置一下私钥,然后连接测试
$ ssh
add
# 密钥文件添加到ssh-agent
L
# 检查
$ ping
# 测试网络
$ ssh root@
p
Enter passphrase
for
key
'/home/ccc/.ssh/id_rsa'
:
root@
.x.x's password:
Last login: Fri Nov
11
12
25
33
2022
from
The programs included with the Debian GNU
Linux system are free software;
the exact distribution terms
each program are described
in
the
individual files
usr
share
doc
*
copyright.
Debian GNU
Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
root@localhost:~
#
安装vscode ssh插件..
客户端ssh配置..
连接后,可访问debian服务端上的文件,这个就是资源管理器..
打开bash..
安装Remote Development插件, 即远程开发插件..
安装python插件..
如果要debug启动python脚本, 想传递参数的话, 需要配置一个启动文件...
配置中,你可能还需要补充一下环境变量
"cwd"
"${fileDirname}"
,
"env"
: {
"PYTHONPATH"
"${workspaceFolder}${pathSeparator}${env:PYTHONPATH}"
},
最后用这个配置文件,调试启动python脚本...
项目推荐通过maiyao1988/ebpf-plugin项目,可一键一次性的HOOK全部syscall.代码逻辑清晰,可根据需求自由修改.(本文只关注eBPF亮点,无痕hook系统调用)..
项目地址https://github.com/maiyao1988/ebpf-plugin..
在手机Debian上运行一下, 看看效果
# mkdir bcc/my
# cd bcc/my
# git clone https://github.com/maiyao1988/ebpf-plugin
# cd ebpf-plugin
# python btrace.py -m64 -n com.android.bankabc
[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法
TrumpWY 60s明显不够啊