某音提取真机cookie,cookie参数解密
本文目的:将手机上的某音缓存数据提取成我们常用的json格式ck。
某音将部分数据缓存至本地,其中包含了ck(device信息、token、app版本信息等),可以通过安卓程序将数据提取出来用于平时测试。因为该数据是缓存在应用的独立数据目录 安卓默认是不允许app互相访问独立数据,这里需要手机root后才可以提取。
缓存文件目录:/data/data/com.ss.android.ugc.aweme/shared_prefs
我们主要提取这五个文件 缓存文件包含数据
ttnetCookieStore.xml cookie,涉及敏感数据,数据需解码(下方代码里的decode方法)
token_shared_preference.xml x-tt-token
wschannel_multi_process_config.xml 登录的设备信息,包含device_id install_id 应用版本 手机版本等查询通用参数。
applog_stats.xml mac_addr fingerprint_codes等
LoginSharePreferences.xml 最后登录的账号信息
ttnetCookieStore.xml 部分内容如下:
<string name="http://snssdk.com/|odin_tt">aced000573720031636f6d2e6279746564616e63652e6672616d65776f726b732e626173656c69622e6e6574776f726b2e687474702e622e6858765a0a7f563d0c0300014a00016378707400076f64696e5f74747400806162663762643132383666343137303631623636346364333664313662386635613232303532633739643464346662333563643361646561646337323037373135336335336532323036623437393530643836393566363162643764656630346337336636656466646633653336356530626235613666383164343433633163707074000b2e736e7373646b2e636f6d77080000000005265c007400012f70770f000000010000010000017a6585797578</string>
提取到的内容部分需要解密。
解密python代码:
def decode_cookie(str):length = len(str)newData = ""i = 0while(i<length):newChar = (int(str[i],16)<<4) + (int(str[i+1],16))newData += chr(newChar)i=i+2return newData
解密java代码:
/*** cookie解密* @param str cookie密文* @return*/public static String decodeCookie(String str){String cookieStr = "";int i = 0;while(i < str.length()){char c1 = str.charAt(i);int num1 = Integer.parseInt(String.valueOf(c1),16);char c2 = str.charAt(i+1);int num2 = Integer.parseInt(String.valueOf(c2),16);int newChar = (num1<<4) + num2;cookieStr += (char) Integer.parseInt(String.valueOf(newChar));i=i + 2;}return cookieStr;}
解密结果:
’ sr 1com.bytedance.frameworks.baselib.network.http.b.hXvZ
V= J cxpt odin_ttt abf7bd1286f417061b664cd36d16b8f5a22052c79d4d4fb35cd3adeadc72077153c53e2206b47950d8695f61bd7def04c73f6edfdf3e365e0bb5a6f81d443c1cppt .snssdk.com &\ t /pw zeyux
但是我们发现他还是有些其它地方乱码了,但是蓝色方框是我们的结果,其实这是因为他解密之后是一个protobuf格式,我们只需要再次分割拿出来就可以了。具体完整代码都是读取文件和正则匹配或者分割下就好了,关键是ck这里加密,主要给出解密代码.
wschannel_multi_process_config.xml 部分内容如下:
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<boolean name="key_enable_offline_detect" value="false" />
<string name="ws_apps">[{"channel_id":1239108,"app_id":1128,"device_id":"61919431820","install_id":"3149472127268080","urls":["wss:\/\/frontier-aweme.snssdk.com\/ws\/v2"],"app_version":160501,"platform":0,"fpid":9,"app_kay":"e1bd35ec9db7b8d846de66ed140b1ad9","extra":"ws_connect_protocol=0&os_api=25&device_type=MI%206&manifest_version_code=160502&dpi=480&is_guest_mode=0&is_background=1&app_name=aweme&version_name=16.5.1&ts=1624900639&sid=&cpu_support64=true&ttnet_ignore_offline=1&app_type=normal&ac=wifi&appTheme=dark&channel=xiaomi_1128_64&update_version_code=16519900&host_abi=arm64-v8a&_rticket=1624900639691&device_platform=android&iid=3149472127268080&ttnet_heartbeat_interval=30&ne=1&version_code=160501&cdid=903a39a1-841c-4a7c-89d3-9337ec85eec9&openudid=f4135260f97231ac&device_id=61919431820&resolution=1080*1920&ping-interval=30&language=zh&device_brand=Xiaomi&os_version=7.1.1&aid=1128&minor_status=0"}]</string>
</map>
其中ws_apps包含json数据,但是需要解析
[{"channel_id":1239108,"app_id":1128,"device_id":"61919431820","install_id":"3149472127268080","urls":["wss:\/\/frontier-aweme.snssdk.com\/ws\/v2"],"app_version":160501,"platform":0,"fpid":9,"app_kay":"e1bd35ec9db7b8d846de66ed140b1ad9","extra":"ws_connect_protocol=0&os_api=25&device_type=MI%206&manifest_version_code=160502&dpi=480&is_guest_mode=0&is_background=1&app_name=aweme&version_name=16.5.1&ts=1624900639&sid=&cpu_support64=true&ttnet_ignore_offline=1&app_type=normal&ac=wifi&appTheme=dark&channel=xiaomi_1128_64&update_version_code=16519900&host_abi=arm64-v8a&_rticket=1624900639691&device_platform=android&iid=3149472127268080&ttnet_heartbeat_interval=30&ne=1&version_code=160501&cdid=903a39a1-841c-4a7c-89d3-9337ec85eec9&openudid=f4135260f97231ac&device_id=61919431820&resolution=1080*1920&ping-interval=30&language=zh&device_brand=Xiaomi&os_version=7.1.1&aid=1128&minor_status=0"}]
java中通过方法可以解析
String str = "[{"channel_id":1239108,"app_id":1128,"device_id":"61919431820","install_id":"3149472127268080","urls":["wss:\\/\\/frontier-aweme.snssdk.com\\/ws\\/v2"],"app_version":160501,"platform":0,"fpid":9,"app_kay":"e1bd35ec9db7b8d846de66ed140b1ad9","extra":"ws_connect_protocol=0&os_api=25&device_type=MI%206&manifest_version_code=160502&dpi=480&is_guest_mode=0&is_background=1&app_name=aweme&version_name=16.5.1&ts=1624900639&sid=&cpu_support64=true&ttnet_ignore_offline=1&app_type=normal&ac=wifi&appTheme=dark&channel=xiaomi_1128_64&update_version_code=16519900&host_abi=arm64-v8a&_rticket=1624900639691&device_platform=android&iid=3149472127268080&ttnet_heartbeat_interval=30&ne=1&version_code=160501&cdid=903a39a1-841c-4a7c-89d3-9337ec85eec9&openudid=f4135260f97231ac&device_id=61919431820&resolution=1080*1920&ping-interval=30&language=zh&device_brand=Xiaomi&os_version=7.1.1&aid=1128&minor_status=0"}]";String json = org.apache.commons.lang.StringEscapeUtils.unescapeHtml(str);
最后拿到参数数据:
[{"channel_id":1239108,"app_id":1128,"device_id":"61919431820","install_id":"3149472127268080","urls":["wss:\/\/frontier-aweme.snssdk.com\/ws\/v2"],"app_version":160501,"platform":0,"fpid":9,"app_kay":"e1bd35ec9db7b8d846de66ed140b1ad9","extra":"ws_connect_protocol=0&os_api=25&device_type=MI%206&manifest_version_code=160502&dpi=480&is_guest_mode=0&is_background=1&app_name=aweme&version_name=16.5.1&ts=1624900639&sid=&cpu_support64=true&ttnet_ignore_offline=1&app_type=normal&ac=wifi&appTheme=dark&channel=xiaomi_1128_64&update_version_code=16519900&host_abi=arm64-v8a&_rticket=1624900639691&device_platform=android&iid=3149472127268080&ttnet_heartbeat_interval=30&ne=1&version_code=160501&cdid=903a39a1-841c-4a7c-89d3-9337ec85eec9&openudid=f4135260f97231ac&device_id=61919431820&resolution=1080*1920&ping-interval=30&language=zh&device_brand=Xiaomi&os_version=7.1.1&aid=1128&minor_status=0"}]
或者使用完整的解析代码:
/*** 解析某音xml参数* @param douyinParamXml* @return* @throws DocumentException*/public static String parseParamsXml(String douyinParamXml) throws DocumentException {//1.创建Reader对象SAXReader reader = new SAXReader();//2.加载xml//读取XML文件,获得document对象//Document document = reader.read(new File("C:\\Users\\Administrator\\Desktop\\wschannel_multi_process_config.xml"));//解析XML形式的文本,得到document对象Document document = DocumentHelper.parseText(douyinParamXml);//3.获取根节点Element rootElement = document.getRootElement();Iterator iterator = rootElement.elementIterator();while (iterator.hasNext()){Element stu = (Element) iterator.next();List<Attribute> attributes = stu.attributes();for (Attribute attribute : attributes) {if ("ws_apps".equalsIgnoreCase(attribute.getValue())){String json = stu.getStringValue();return json;}}}return null;}
某音提取真机cookie,cookie参数解密相关推荐
- 抖音提取ttnetCookieStore.xml,cookie参数PHP解密
抖音提取ttnetCookieStore.xml部分参数片段如下: <string name="http://snssdk.com/|odin_tt">aced0005 ...
- 小程序真机测试「启动参数」解析出错问题
写小程序2年了 前两天才碰到的这个问题 以前没出错过 话不多说 直接上图 1.小程序 - 启动参数图例 2 2.微信开发者工具-模拟器输出参数-正常图例 这是没问题! 3.真机测试-输出参数-错误 ...
- 提取谷歌游览器Cookie的五重境界
经常玩爬虫的童鞋都知道cookie的重要性,目前为止大部分网站都仍然使用cookie标识登录状态,只有少部分网站升级到使用jwt记录登录状态. 提取cookie作用不言而喻,那么提取cookie有哪些 ...
- 使用抖音开发工具真机调试Android可以,而ios不行,而预览可以
首先检查抖音版本是否太低咯, 其次是点击真机调试,点击切换至旧版真机调试即可
- Xcode 真机调试: AVAudioPlayer 模拟器有声音,真机耳机有声音,扬音器没有声音的解决办法
Xcode 真机调试: AVAudioPlayer 模拟器有声音,真机耳机有声音,扬音器没有声音解决办法 1.在创建:AVAudioPlayer前,加入以下代码 AVAudioSession *au ...
- 荣耀note10无缘鸿蒙,赵明确认荣耀NOTE10 真机参数疑似全曝光!
近日荣耀总裁赵明公开表示,GPU Turbo之后,荣耀还会有更多"非常吓人"的产品和技术与大家见面.荣耀NOTE10就是其中之一,这款手机荣耀准备了两年,大家可以期待下.随后有网友 ...
- APP自动化测试系列之adb连接真机和模拟器
VOL 160 21 2020-09 今天距2021年101天 这是ITester软件测试小栈第160次推文 点击上方蓝字"ITester软件测试小栈"关注我,每周一.三.五早上 ...
- 移动端真机调试,手机端调试,移动端调试
移动端真机调试方法 一.chrome真机调试:局限性:只能调试手机端的chrome浏览器,其他浏览器均不适用:优点是: 简单快捷: 二.spy-debugger调试:spy-debugger,安装稍微 ...
- 微信H5移动端真机调试--vConsole
在移动端实际开发中,还是会碰到一些棘手的bug,想看看到底哪里出了问题,苦于移动端不能F12啊.友好的微信给我们提供了这么一个入口,使开发者可以真机调试.给微信开发者点赞.然后就可以看到你打印的内容及 ...
最新文章
- oracle11g资源过低,Sun Cluster3.3+Oracle11g配置数据库资源问题
- 用开源的人工标注数据来增强RoFormer-Sim
- ApacheSkyWalking APM 生态衍生多语言监控, 支持 .NET Core
- 2.Linux 高性能服务器编程 --- IP 协议详解
- win7下安装openSSH
- 计算机网络:王道考研
- java毕业设计开题报告基于SSM学生成绩管理系统
- 2022 东北四省赛 VP记录/补题
- 利用mlxtend进行数据关联分析
- Android Studio的报错提示:Error while Launching activity
- 通过wireshark抓包对nmap一些原理分析
- 【电子书资源】 PDF格式 持续更新
- 关于“W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168d-1.fw for module r8169”问题的解决
- 计算机电池维修方案,解决方案:计算机主板电池已耗尽,如果不更换电池该怎么办?如何更换电池...
- [树莓派1] 硬件选购指南
- 大数据分析及挖掘技术
- Android向SDCard中上传文件时报错:Failed to push items
- excel中如何将数字转换成文本
- MobileNetV1实战:使用MobileNetV1实现植物幼苗分类
- 用arduino IDE开发esp8266 wifi