免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动!

内容参考于:图灵Python学院

本人写的内容纯属胡编乱造,全都是合成造假,仅仅只是为了娱乐,请不要盲目相信。第一次接触安卓逆向写的很烂,后面有机会再全部重写。

工具下载:

链接:https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd=6tw3

提取码:6tw3

复制这段内容后打开百度网盘手机App,操作更方便哦

上一个内容:28.安卓逆向-抓包-实战2

上一个内容里写了找anti-token(登录标志)没找完,只是找到了它,没有进一步分析,本次接着继续

首先来到获取anti-token值的位置,如下图红框方法,上一个内容中可以知道它的如参数hi请求地址和false

然后开始分析它,参数z在下图红框位置进行了使用,然后下图红框的if里调用了h方法

然后双击h进入h方法里,如下图,下图红框返回了true,现在的if是if(!false&&!true),所以if里面的代码不会执行

也就是下图红框里的代码不会执行

如下图,接下来hookf方法看看它是什么

双击f进入f方法,发现它是一个接口,方法名字是f,没法搜

然后点击反混淆

代码就会变成下图的样子了,这样就可以去搜索了

如下图红框,搜索出了一个接口的实现

然后它又调用了下图红框的方法

继续双击进入

最终来到一个native的方法,目前来说就没法追了,后面会写怎样去看native的方法

然后现在尝试hook deviceInfo2方法看看它的返回值和入参,如下图点击复制为Frida片段

然后可以通过hook看到它的返回值是我们想要的,如下图

然后接下来尝试使用Frida调用这方法,通过模拟调用可以正常得到

Frida代码,为避免被句柄代码没法运行,包名不正确

function hookPxx(){
    var result = null;
    Java.perform(function (){

            let SecureNative = Java.use("com.xunmeng.xxx.secure.SecureNative");

            let BaseApplication = Java.use("com.xunmeng.xxx.basekit.BaseApplication")
            var context = BaseApplication.getContext()

            let time = Java.use("com.xunmeng.xxx.basekit.util.TimeStamp")
            let _ts = time.getRealLocalTime().longValue();
            let Long = Java.use("java.lang.Long");
            // 上下文、时间戳
            result = SecureNative.deviceInfo2(context, Long.valueOf(_ts));

    })
    return result

}

rpc.exports = {
    xialuo:hookPxx
}

Python rpc Frida代码

# -*- coding: utf-8 -*-
import frida
import requests
import json

session = frida.get_usb_device().attach('com.xunmeng.xxx')# 通过app的包名得到一个frida
with open("./pdd-rpc.js",encoding='utf-8') as f:
    jsCode = f.read()
# print("加载代码", jsCode)
script = session.create_script(jsCode)#得到一个Frida脚本
script.load()#加载脚本
res = script.exports.xialuo()#调用脚本里的方法
# print(res)



headers = {
    "Host": "api.xxx.com",
    "etag": "fZX3dcnP",
    "accesstoken": "GI7ZRD2AZFBTAHZH354CHXM76VJMGRPKUAVYJB7XUHDAKIQB3NUQ123e577",
    "referer": "Android",
    "lat": "R4FW4U75DUVAGAPHUESC6Y73I4FQBXVH2BYLRADYR23WRGJN6SZQ123e577",
    "al-sa": "{\"ads\":\"!!!;B:kp#&!\\-/ju6E!!#&!\\\\/I0h0=!!\"}",
    "p-appname": "pinduoduo",
    "p-proc-time": "3908001",
    "x-pdd-info": "bold_free%3Dfalse%26bold_product%3D%26front%3D1",
    "x-pdd-queries": "width=1080&height=2236&net=1&brand=google&model=Pixel+4&osv=10&appv=6.26.0&pl=2",
    "x-yak-llt": "1729768744077",
    "p-proc": "main",
    "p-mediainfo": "player=1.0.3&rtc=1.0.0",
    "x-b3-ptracer": "hctrue67687bf104c6491db0c2420ca0",
    "user-agent": "android Mozilla/5.0 (Linux; Android 10; Pixel 4 Build/QQ3A.200705.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/74.0.3729.186 Mobile Safari/537.36  phh_android_version/6.26.0 phh_android_build/43953171301671e3b3baf01f859eed5581323a9e phh_android_channel/hw pversion/0",
    "pdd-config": "V4:001.062600",
    "multi-set": "1,0",
    "content-type": "application/json;charset=UTF-8",
    "anti-token": res,
    "vip": "81.69.105.47"
}
cookies = {
    "acid": "1f0bdb7edf06a93ff54bff400ea44ab3",
    "api_uid": "CiR1DWcaHK+gdwC6G5v9Ag=="
}
url = "https://api.xxx.com/search"
params = {
    "source": "index",
    "pdduid": "2656368057317"
}
data = {
    "install_token": "377c48c8-9dc1-4114-ba4d-7faa2972bfd3",
    "item_ver": "lzqq",
    "list_id": "51MO72nF",
    "track_data": "refer_page_id,10002_1730123512416_1951733667;refer_search_met_pos,3",
    "search_met": "history",
    "max_offset": "0",
    "source": "index",
    "sort": "default",
    "exposure_offset": "0",
    "q": "手机",
    "page_sn": "10015",
    "page_id": "search_result.html",
    "size": "20",
    "requery": "0",
    "page": "1",
    "engine_version": "2.0",
    "is_new_query": "1",
    "back_search": "false"
}
data = json.dumps(data, separators=(',', ':'))
response = requests.post(url, headers=headers, cookies=cookies, params=params, data=data)

print(response.text)
print(response)


img

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部