跳到主要内容

Xserver

介绍​

XServer是一个用于对方法进行分析的Xposed插件,它针对的是“方法”接口。由于人类习惯函数式编程,为了可维护性,往往会把各个功能分别封装进各个类与方法,这成为了程序的弱点。

利用注入和反射,可以记录并拦截方法的调用,也可以在应用自身的运行环境中调用某个具体方法。这就可以对应用的分析起到辅助。

另外,XServer还通过HTTP和WebSocket提供远程动态操作界面,也提供RPC接口供其它工具调用应用内的方法。

下载地址​

xserver

Hook​

adb端口转发​

如果转发了8000端口本地还访问不到,那可能因为某些原因它初始化的时候没有在8000上,所以这个时候需要通过找PID的值进行转发。

adb forward tcp:8000 tcp:8000

image-20201225173817403

选择一个app​

image-20201226205653221

打开app​

image-20201226205725167

打开本地127.0.0.1:8000,即可成功hook的web界面了​

image-20201225174036773

使用​

模拟器设置好burp代理,打开测试的app​

主要介绍两个功能,一个是trace,访问地址是http://localhost:8000/tracer

一个是hook,访问地址是http://localhost:8000/invoke

加载所有方法​

image-20201226205846706

可以看到加载了136759个方法。

image-20201226205934246

输入规则过滤,并且hook​

这个靠猜,比如decode、decrypt、AES、DES等

image-20201226212638699

hook后运行app,发起网络请求​

可以看到明文数据,说明找到了对应的解密方式

image-20201226212558239

点击decrypt方法​

进入后,在框内输入加密后的内容,点击invoke即可解密,可以在burp中看到过程

image-20201226212916592

burp中看到的数据,后面app操作中所有解密的地方burp都能看到​

image-20201226213008870