侧边栏壁纸
  • 累计撰写 7 篇文章
  • 累计创建 1 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

闲鱼App逆向1:模拟器和抓包环境搭建

Faithlv
2023-09-20 / 0 评论 / 0 点赞 / 543 阅读 / 3157 字 / 正在检测是否收录...

模拟器安装

模拟器选择安装夜神模拟器,其他模拟器可能会有frida兼容问题,这里尽量减少变量。

注意模拟器安卓系统有32位和64位区别,这里要和后面frida的版本对应,这里选择32位的版本,后面部分脚本在32位才有作用。

修改模拟器代理,将模拟器的wifi代理设置为宿主机ip,端口设置为8888,后面charles抓包需要8888端口,修改代理参考 https://zhuanlan.zhihu.com/p/611867924

Charles安装

软件百度自行安装,这部分主要是安装证书,到宿主机和模拟器,否则https的包抓出来都是加密的

安装证书到本机

将证书 安装到模拟器,参考 https://zhuanlan.zhihu.com/p/611867924

frida框架

需要安装python环境,自行百度。

frida 安装

pip install frida-tools
pip install frida
frida-ps -U ## 验证安装

frida-ps -U 能列出进程就没问题

Charles抓包

使用frida+python不走spdy协议,淘宝系软件都会走spdy协议,导致charles会抓不到包,所以需要让app走http协议

运行下面python脚本,记得先启动app,否则会hook不到,该脚本让软件强制走http协议

该脚本只对32位的闲鱼有效,64位需要hook的方法可能变了,可以解包找到对应方法,替换该方法路径 Java.use("mtopsdk.mtop.global.SwitchConfig");

import frida, sys
def on_message(message, data):
    print("[%s] => %s" % (message, data))


pid = 0
device = frida.get_usb_device(1000)
process = device.enumerate_processes()

for data in process:
    print(data)
    if data.name == "闲鱼":
        pid = data.pid
        break
session = device.attach(pid)

uuid = '''
    Java.perform(
        function(){
                console.log("############################ Frida 开启 ############################");
                var session = Java.use("mtopsdk.mtop.global.SwitchConfig");
                if (session != undefined) {
                    console.log(`------>定位到类名: ${session}`);
                    session.A.implementation = function(){
                        console.log(`------>定位到函数: is_enableSpdy`);
                        return false;
                        }
                };
        }
    )
'''

script = session.create_script(uuid)
script.on('message', on_message)
script.load()
sys.stdin.read()

打开charles,随便点app就可以看到抓到的http请求。

参考

https://zhuanlan.zhihu.com/p/611867924

0
  • ${post.likes!0}

评论区