-
-
[原创] 安卓协议逆向 mtxx 分析与实现
-
2023-1-10 14:36 8130
-
Kit
app 版本:9.5.3.0
设备:K40 刷 piexl 11 rom
抓包工具:Charles
反汇编工具:JEB、JADX
inject:frida
抓包
GET /v2/search/feeds.json?client_timestamp=1671885699194&client_timezone=GMT%2B8&is_gdpr=0&client_channel_id=taobao&client_model=M2012K11AC&local_abtest=%5B%5D&cpuModel=qcom-SM8250&client_brand=Redmi&resolution=1080*2278&client_id=1089867602&sigVersion=1.3&runtimeMaxMemory=512&ad_sdk_version=5.10.20&feed_sort=normal&is_test=0&keyword=%E7%BE%8E%E7%94%B2&client_network=wifi&ram=7611&cpuVendor=%E9%AB%98%E9%80%9A&count=12&version=9.5.3.0&search_type=0&is_basic=0&country_code=CN&app_hot_start_times=1&attachFlag=409&client_session=36454fcbf949454cd2afa56c6d22a166&is64Bit=0&client_is_root=1&client_operator=&gid=2863613419&is_close_global_ad=0&client_language=zh_CN&cn_switch_on=0&sig=2c49ce7212100885736aa5e79ac70dd8&sigTime=1671885699194&client_os=11&lang=1&is_privacy=0&user_agent=mtxx-9530-Xiaomi-M2012K11AC-android-11-285d5ace&is_ohos=0&sigEnv=0&appAreaType=1&personality_not_recommend=0&community_version=2.0.0&android_sdk_int=30&ad_personality_not_recommend=0&is_device_support_64=1 HTTP/1.1
ab_info: {"ab_codes":[{"code":15619,"count":0,"experiment_type":3,"status":5,"lr":0},{"code":19219,"count":0,"experiment_type":3,"status":1,"lr":0},{"code":16412,"count":0,"experiment_type":3,"status":5,"lr":0},{"code":16928,"count":0,"experiment_type":3,"status":5,"lr":0},{"code":19495,"count":0,"experiment_type":3,"status":1,"lr":0},{"code":19533,"count":4,"experiment_type":3,"status":1,"lr":1671885085070},{"code":10109,"count":0,"experiment_type":3,"status":5,"lr":0},{"code":16805,"count":0,"experiment_type":3,"status":5,"lr":0},{"code":12454,"count":0,"experiment_type":3,"status":5,"lr":0},{"code":19133,"count":0,"experiment_type":3,"status":1,"lr":0},{"code":12230,"count":0,"experiment_type":3,"status":5,"lr":0},{"code":17615,"count":0,"experiment_type":3,"status":5,"lr":0},{"code":17623,"count":0,"experiment_type":3,"status":5,"lr":0},{"code":13797,"count":0,"experiment_type":3,"status":5,"lr":0},{"code":12009,"count":0,"experiment_type":3,"status":5,"lr":0},{"code":13301,"count":0,"experiment_type":3,"status":5,"lr":0},{"code":14838,"count":0,"experiment_type":3,"status":5,"lr":0},{"code":15353,"count":0,"experiment_type":3,"status":5,"lr":0},{"code":14844,"count":0,"experiment_type":3,"status":5,"lr":0}],"last_access":1671885695251,"timeout":2047483000,"version":"5.6.1"}
User-Agent: mtxx-9530-Xiaomi-M2012K11AC-android-11-285d5ace
Host: api.xiuxiu.meitu.com
Connection: Keep-Alive
Accept-Encoding: gzip
traceIdHigh: 2863613419
traceIdLow: 1753099219224232333
一个个分析下来仅 sig、sigTime、client_session、client_timestamp 几个参数是会变动的,其余都应该是固定的
分析
拖入 jadx 先搜索 client_session 得到两个结果,非常好确认,定位到 com.meitu.meitupic.framework.util.g 类中:
1 2 3 4 | String k2 = k(currentTimeMillis); if (!TextUtils.isEmpty(k2)) { concurrentHashMap.put( "client_session" , k2); } |
大致判断 client_session 应该就是个时间戳,跟进 k 方法中看看:
1 2 3 4 5 6 7 8 9 10 11 12 13 | private static String k( long j2) { com.meitu.library.appcia.trace.b.i( 184462 ); if (!TextUtils.isEmpty(D) && D.length() > = 10 ) { int i2 = ( int ) (j2 % 10 ); StringBuilder sb = new StringBuilder(D.substring( 0 , 10 )); sb.replace(i2, i2 + 1 , String.valueOf(i2)); String a2 = com.meitu.library.util.a.a(sb.toString()); com.meitu.library.appcia.trace.b.b( 184462 ); return a2; } com.meitu.library.appcia.trace.b.b( 184462 ); return ""; } |
上 frida hook 直接看结果:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | function main() { Java.perform(function () { var client_session = Java.use( "com.meitu.meitupic.framework.util.g" ); client_session.k.implementation = function (arg1) { console.log( "++++++++++++++++++++++++++++++++++++++++" ) console.log( "args1: " + arg1) var result = this.k(arg1); console.log( "result: " + result) console.log( "++++++++++++++++++++++++++++++++++++++++" ) return result; } }); } setImmediate(main) |
输入烧烤 hook 结果:
args1: 1671893086682
result: 8479b44135cab6f54bf0c0a0f0274daa
对照其抓包结果 client_session 值校验无误,其中 arg1 就是 client_timestamp 值,一下解决两。
继续分析 sig。
通过上面分析的 com.meitu.meitupic.framework.util.g 查找 sig 得到了相关引用位置,最终定位到 com.meitu.secret.SigEntity 下的 generatorSig 方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | public static SigEntity generatorSig(@NonNull String str , @NonNull String[] strArr, @NonNull String str2, @NonNull Object obj) { b.i( 101093 ); if (!(obj instanceof Context)) { AndroidRuntimeException androidRuntimeException = new AndroidRuntimeException( "req ctx" ); b.b( 101093 ); throw androidRuntimeException; } byte[][] bArr = new byte[strArr.length]; for ( int i2 = 0 ; i2 < strArr.length; i2 + + ) { if (strArr[i2] = = null) { strArr[i2] = ""; } bArr[i2] = strArr[i2].getBytes(); } SigEntity buildSigEntity = buildSigEntity(ElfReader.b( str , bArr, str2, (Context) obj)); b.b( 101093 ); return buildSigEntity; } |
查看其参数:
参数一:String str, 参数二: String[] strArr, 参数三: String str2, 参数四: Object obj
看其上层调用:
SigEntity generatorSig = SigEntity.generatorSig(A2, (String[]) arrayList.toArray(new String[arrayList.size()]), com.meitu.meitupic.framework.common.c.a, BaseApplication.getApplication());
参数一、二为形参先放着,跟进参数三可得:
1 2 3 4 5 6 7 8 | public class c { public static String a; static { com.meitu.library.appcia.trace.b.i( 183635 ); a = "6184556633574670337" ; com.meitu.library.appcia.trace.b.b( 183635 ); } } |
可见参数三是一个固定值,再跟进看参数四:
1 2 3 4 5 6 | public static Application getApplication() { b.i( 82595 ); Application application = mBaseApplication; b.b( 82595 ); return application; } |
一个对象,返回的是 obj ,Java 中可通过对象的实例获取到对象的属性值,猜测其中藏有 sig 及 sigTime。
遇事不决,frida 最是直接:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | function main() { Java.perform(function () { var SigEntity = Java.use( "com.meitu.secret.SigEntity" ); SigEntity.generatorSig.overload( 'java.lang.String' , '[Ljava.lang.String;' , 'java.lang.String' , 'java.lang.Object' ).implementation = function (arg1, arg2, arg3, arg4) { console.log( "++++++++++++++++++++++++++++++++++++++++" ) console.log( "arg1: " , arg1) console.log( "arg2: " , arg2) console.log( "arg3: " , arg3) console.log( "arg4: " , arg4) var result = this.generatorSig(arg1, arg2, arg3, arg4); console.log( "result_sig: " , result.sig.value); console.log( "result_sigTime: " , result.sigTime.value); console.log( "++++++++++++++++++++++++++++++++++++++++" ) return result; } }); } setImmediate(main) |
输入烧烤 hook 结果:
arg1: search/feeds.json
arg2: 1671898697836,,GMT+8,0,2863613419,taobao,M2012K11AC,[],qcom-SM8250,0,Redmi,1080*2278,zh_CN,1089867602,0,512,5.10.20,11,normal,0,烧烤,1,0,wifi,mtxx-9530-Xiaomi-M2012K11AC-android-11-285d5ace,7611,高通,12,0,0,1,0,9.5.3.0,0,0,2.0.0,CN,1,409,30,0,9b2dc941affe929a86ca97227211d55b,0,1,1
arg3: 6184556633574670337
arg4: com.meitu.remote.hotfix.app.RemoteHotfixApplication@2d01c1
result_sig: 4e3a4cecec59b439a636ba7c01154225
result_sigTime: 1671898697866
对照其抓包结果 sig、sigTime值校验无误,其中参数一为固定值:search/feeds.json,参数二为查找的内容加一些手机相关字段。
frida 主动调用
参数都解决了,剩下就是批量抓包了,构建 frida rpc 脚本:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | rpc.exports = { "sig" : function (params) { var ret_dict = {}; Java.perform(function () { var SigEntity = Java.use( "com.meitu.secret.SigEntity" ); var arg1 = "search/feeds.json" ; var arg2 = params var arg3 = "6184556633574670337" ; var BaseApplication = Java.use( 'com.meitu.library.application.BaseApplication' ); var arg4 = BaseApplication.getApplication(); var result = SigEntity.generatorSig(arg1, arg2, arg3, arg4); ret_dict[ "sig" ] = result.sig.value; ret_dict[ "sigTime" ] = result.sigTime.value; console.log( "[*] sig:" , result.sig.value); console.log( "[*] sigTime:" , result.sig.value); }); return ret_dict; }, "cnt" : function (timestamp) { var ret_dict = null; Java.perform(function () { var client_session = Java.use( "com.meitu.meitupic.framework.util.g" ); ret_dict = client_session.k(timestamp); console.log( "ret_dict: " , ret_dict); }); return ret_dict; } } |
上 py 调用 rpc 脚本:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 | import frida import time import requests def on_message(message, data): print ( "[%s] => %s" % (message, data)) def inject_hook(): session = frida.get_usb_device().attach( 'com.mt.mtxx.mtxx' ) with open ( 'meitu/mt_rpc.js' , 'r' ) as f: js_code = f.read() script = session.create_script(js_code) script.on( 'message' , on_message) script.load() return script def get_sig(): params = [timestamp,' ',' GMT + 8 ',' 0 ',' 2863613419 ',' taobao ',' M2012K11AC ',' [] ',' qcom - SM8250 ',' 0 ',' Redmi', '1080*2278' , 'zh_CN' , '1089867602' , '0' , '512' , '5.10.20' , '11' , 'normal' , '0' ,key_word, '1' , '0' , 'wifi' , 'mtxx-9530-Xiaomi-M2012K11AC-android-11-285d5ace' , '7611' , '高通' , '12' , '0' , '0' , '1' , '2' , '9.5.3.0' , '0' , '0' , '2.0.0' , 'CN' , '1' , '409' , '30' , '0' ,client_session, '0' , '1' , '1' ] result = rpc_script.exports.a(params) return result def req(): url = "https://api.xiuxiu.meitu.com/v2/search/feeds.json" params = { "client_timestamp" : timestamp, "client_timezone" : "GMT+8" , "is_gdpr" : "0" , "client_channel_id" : "taobao" , "client_model" : "M2012K11AC" , "local_abtest" : "[]" , "cpuModel" : "qcom-SM8250" , "client_brand" : "Redmi" , "resolution" : "1080*2278" , "client_id" : "1089867602" , "sigVersion" : "1.3" , "runtimeMaxMemory" : "512" , "ad_sdk_version" : "5.10.20" , "feed_sort" : "normal" , "is_test" : "0" , "keyword" : key_word, "client_network" : "wifi" , "ram" : "7611" , "cpuVendor" : "高通" , "count" : "12" , "version" : "9.5.3.0" , "search_type" : "2" , "is_basic" : "0" , "country_code" : "CN" , "app_hot_start_times" : "1" , "attachFlag" : "409" , "client_session" : client_session, "is64Bit" : "0" , "client_is_root" : "1" , "client_operator" : "", "gid" : "2863613419" , "is_close_global_ad" : "0" , "client_language" : "zh_CN" , "cn_switch_on" : "0" , "sig" : sig[ 'sig' ], "sigTime" : sig[ 'sigTime' ], "client_os" : "11" , "lang" : "1" , "is_privacy" : "0" , "user_agent" : "mtxx-9530-Xiaomi-M2012K11AC-android-11-285d5ace" , "is_ohos" : "0" , "sigEnv" : "0" , "appAreaType" : "1" , "personality_not_recommend" : "0" , "community_version" : "2.0.0" , "android_sdk_int" : "30" , "ad_personality_not_recommend" : "0" , "is_device_support_64" : "1" , } response = requests.get(url = url, params = params) print (response.text) if __name__ = = '__main__' : rpc_script = inject_hook() key_word = "烧烤" now_time = round (time.time()) timestamp = str (now_time) client_session = rpc_script.exports.b(now_time) print ( "client_session: {}" . format (client_session)) sig = get_sig() print (sig[ 'sig' ]) req() |
结果如下,完美实现:
ret_dict: ff5a6e7b2fbfc04d8bccde169c4f6436
client_session: ff5a6e7b2fbfc04d8bccde169c4f6436
[] sig: d8e113b90ef5b440f8de162f4db41470
[] sigTime: d8e113b90ef5b440f8de162f4db41470
d8e113b90ef5b440f8de162f4db41470
{"degrade":0,"ret":0,"error_code":0,"error":"Ok","msg":"成功","data":{"next_cursor":"j4cjTo","items":[{"item_type":1,"corner_mark":"","scm":"60006.1.0.0$$$6693892116056133887||1||453||29||13||125||21||-1||-1||6693892115863195733||1671897700491||0||-1||-1||-1||-1||-1||19||7||102||1555939137||0","color_number":"#715A54","feed_id":6693892116056133887,"user":{"uid":1555939137,"screen_name":"夏小沫wendy","avatar_url":"http://maavatar1.meitudata.com/603a7042e9f8a6335.jpg","friendship_status":0,"identity_type":2,"identity_status":1},"medias":[{"media_id":6693892116169380187,"type":2,"url":"https://xiuxiu.video.xiuxiustatic.com/DVvzmNzujjde8L8vaZkfmDXvaZlo3_H264_1_219e9da90156b2.mp4?k=022a1103e61d528cccad388f53ce4bea&t=63a7cb24","duration":15.628000259399414,"dispatch_video":"{\"sourceUrl\":\"http://xiuxiu.video.xiuxiustatic.com/DVvzmNzujjde8L8vaZkfmDXvaZlo3.mp4?k=63d07a91fd880947db833f14dff6133c&t=63a7cb24\",\"paramUrl\":\"http://xx1.video.xiuxiustatic.com/DVvzmNzujjde8L8vaZkfmDXvaZlo3.mp4\",\"264\":{\"720\":\"http://xiuxiu.video.xiuxiustatic.com/DVvzmNzujjde8L8vaZkfmDXvaZlo3_H264_1_219e9da90156b2.mp4?k=022a1103e61d528cccad388f53ce4bea&t=63a7cb24\"},\"mid\":6857394548345161264}","template":{"id":6693892115863195733,"user":{"uid":1555939137,"type":0,"screen_name":"夏小沫wendy","avatar_url":"http://maavatar1.meitudata.com/603a7042e9f8a6335.jpg","country_id":0,"province_id":0,"city_id":0,"is_invited":0,"mt_num":0},"labels":[],"scheme":"","name":""},"bt_type":7,"bt_text":"使用配方","origin_pic":""}],"type":0,"is_liked":0,"is_favorited":0,"like_count":453,"text_link_params":[],"code":60006,"thumb":"https://xximg1.meitudata.com/QzPRdQRfGYxJDg99xj3Tdz9n65zZV.jpg","commend":{"width":1080,"height":1080,"dx":0,"dy":420,"ori_width":1080,"ori_height":1920},"commend_cover":{"width":1080,"height":1080,"dx":0,"dy":407,"ori_width":1080,"ori_height":1920},"comment":1,"width":1080,"height":1920,"caption":"有烧烤串串的夏天才完整\uD83C\uDF62","music":{"music_id":250103423},"tag_text":"使用量:1079","comment_count":29,"pic_comment_count":13,"stream_type":3,"from":"jdFz","template_use_count":1079,"clip_count":3,"has_pic_collection":0,"has_material":0},{"item_type":1,"corner_mark":"","scm":"60006.1.0.0$$$6800673325448190623||0||353||131||111||4546||4||-1||-1||6800672948862612910||1671897700491||0||-1||-1||-1||-1||-1||19||9||0||1702418669||0","color_number":"#8A622F","feed_id":6800673325448190623,"user":{"uid":1702418669,"screen_name":"是云纤呀","avatar_url":"http://maavatar1.meitudata.com/6321d8b9399fc8513.jpg","friendship_status":0,"identity_type":2,"identity_status":1},"medias":[{"media_id":6800673325745986380,"type":1,"template":{"id":6800672948862612910,"user":{"uid":1702418669,"type":0,"screen_name":"是云纤呀","avatar_url":"http://maavatar1.meitudata.com/6321d8b9399fc8513.jpg","country_id":0,"province_id":0,"city_id":0,"is_invited":0,"mt_num":0},"labels":[],"scheme":"","name":""},"bt_type":9,"bt_text":"使用配方","cover_color":"#B39779FF","gif":"http://xiuxiu.video.xiuxiustatic.com/68202471094904701691626073624.mp4?k=2360df466721770fab454ab510e6abc2&t=63a7cb24","origin_pic":"http://xximg1.meitudata.com/llp4jnwunb91o4LeovNCRxlJDmn3g.jpg"}],"type":0,"is_liked":0,"is_favorited":0,"like_count":353,"text_link_params":[],"code":60006,"thumb":"https://xximg1.meitudata.com/nwpQJKGTN0Y4qQp0XJ36H2je5DlGdo.jpg","commend":{"width":1030,"height":1030,"dx":5,"dy":0,"ori_width":1080,"ori_height":1030},"commend_cover":{"width":1030,"height":1030,"dx":5,"dy":0,"ori_width":1080,"ori_height":1030},"comment":1,"width":1080,"height":1030,"caption":"烧烤局|暖色调|美味时刻\n(图片来自网络)\n✨ 文案:希望我可以成为你生活的一部分\n✨ 一件导入图片即可\n@MT小助手 @MT情报局 @美图秀秀","tag_text":"使用量:15.1万","comment_count":131,"pic_comment_count":111,"stream_type":1,"from":"BNcD","template_use_count":150770,"clip_count":0,"has_pic_collection":0,"has_material":0},{"item_type":1,"corner_mark":"","scm":"60006.1.0.0$$$6734816817566209843||0||668||36||32||3874||6||-1||-1||6734816543292288045||1671897700491||0||-1||-1||-1||-1||-1||19||9||7817||1470392151||0","color_number":"#795729","feed_id":6734816817566209843,"user":{"uid":1470392151,"screen_name":"April清","avatar_url":"http://maavatar1.meitudata.com/5af6ec6600ecd6608.jpg","friendship_status":0,"identity_type":0,"identity_status":0},"medias":[{"media_id":6734816817674481546,"type":1,"template":{"id":6734816543292288045,"user":{"uid":1470392151,"type":0,"screen_name":"April清","avatar_url":"http://maavatar1.meitudata.com/5af6ec6600ecd6608.jpg","country_id":0,"province_id":0,"city_id":0,"is_invited":0,"mt_num":0},"labels":[],"scheme":"","name":""},"bt_type":9,"bt_text":"使用配方","cover_color":"#B39979FF","origin_pic":""}],"type":0,"is_liked":0,"is_favorited":0,"like_count":668,"text_link_params":[],"code":60006,"thumb":"https://xximg1.meitudata.com/bZKa8nzSzodjp33wLdLTaRwVgLz4Y.jpg","commend":{"width":1280,"height":1280,"dx":0,"dy":0,"ori_width":1280,"ori_height":1280},"commend_cover":{"width":1280,"height":1280,"dx":0,"dy":0,"ori_width":1280,"ori_height":1280},"comment":1,"width":1280,"height":1280,"caption":"\uD83E\uDD0E深夜食堂 | 烧烤撸串 | 美食滤镜\uD83E\uDD0E","tag_text":"使用量:5.4万","comment_count":36,"pic_comment_count":32,"stream_type":1,"from":"Jnfz","template_use_count":53973,"clip_count":0,"has_pic_collection":0,"has_material":0},{"item_type":1,"corner_mark":"","scm":"60006.1.0.0$$$6736200990377143287||1||743||13||0||150||0||-1||-1||6736200990221953863||1671897700491||0||-1||-1||-1||-1||-1||19||7||1||1051671670||0","color_number":"#4A6180","feed_id":6736200990377143287,"user":{"uid":1051671670,"screen_name":"寻味雅安(队长)","avatar_url":"http://maavatar1.meitudata.com/5f413c1419a4f1654.jpg","friendship_status":0,"identity_type":0,"identity_status":0},"medias":[{"media_id":6736200990482000990,"type":2,"url":"https://xiuxiu.video.xiuxiustatic.com/15qD6e6SaQwYBkRe05jsPa9DB0p4Z_H264_1_4576478cf7d39e.mp4?k=536c38a1adb2908d278ea446dce9042d&t=63a7cb24","duration":18.183332443237305,"dispatch_video":"{\"sourceUrl\":\"http://xiuxiu.video.xiuxiustatic.com/15qD6e6SaQwYBkRe05jsPa9DB0p4Z.mp4?k=b89e66ad20e6836c3c2d27a5ea08dc8a&t=63a7cb24\",\"paramUrl\":\"http://xx1.video.xiuxiustatic.com/15qD6e6SaQwYBkRe05jsPa9DB0p4Z.mp4\",\"264\":{\"720\":\"http://xiuxiu.video.xiuxiustatic.com/15qD6e6SaQwYBkRe05jsPa9DB0p4Z_H264_1_4576478cf7d39e.mp4?k=536c38a1adb2908d278ea446dce9042d&t=63a7cb24\"},\"mid\":6857567044931451349}","template":{"id":6736200990221953863,"user":{"uid":1051671670,"type":0,"screen_name":"寻味雅安(队长)","avatar_url":"http://maavatar1.meitudata.com/5f413c1419a4f1654.jpg","country_id":0,"province_id":0,"city_id":0,"is_invited":0,"mt_num":0},"labels":[],"scheme":"","name":""},"bt_type":7,"bt_text":"使用配方","origin_pic":""}],"type":0,"is_liked":0,"is_favorited":0,"like_count":743,"text_link_params":[],"code":60006,"thumb":"https://xximg1.meitudata.com/PRKzjdjH4qz9oDeD0XWu1bJp2949N.jpg","commend":{"width":1080,"height":1080,"dx":0,"dy":420,"ori_width":1080,"ori_height":1920},"commend_cover":{"width":1080,"height":1080,"dx":0,"dy":124,"ori_width":1080,"ori_height":1920},"comment":1,"width":1080,"height":1920,"caption":"不能错过的石棉烧烤,余生最想和谁去一次?","music":{"music_id":6736200990226148181},"tag_text":"使用量:17","comment_count":13,"pic_comment_count":0,"stream_type":3,"from":"WBi5","template_use_count":17,"clip_count":1,"has_pic_collection":0,"has_material":0},{"item_type":1,"corner_mark":"","scm":"60006.1.0.0$$$6681055958636976227||1||597||25||0||121||10||-1||-1||6681055958431455187||1671897700491||0||-1||-1||-1||-1||-1||19||7||8||1537953244||0","color_number":"#A28623","feed_id":6681055958636976227,"user":{"uid":1537953244,"screen_name":"\uD83D\uDC97菲’Texas","avatar_url":"https://xximg1.meitudata.com/Cover6734846030955959165.jpg","friendship_status":0,"identity_type":0,"identity_status":0},"medias":[{"media_id":6681055958775388362,"type":2,"url":"https://xiuxiu.video.xiuxiustatic.com/a433p3yCeEJoQ9pya1JCWvDY5zXk6_H264_1_16c097c5f37beb.mp4?k=ee460339acd989d99a6859d4e1e7c4b1&t=63a7cb24","duration":93.53,"dispatch_video":"{\"sourceUrl\":\"http://xiuxiu.video.xiuxiustatic.com/a433p3yCeEJoQ9pya1JCWvDY5zXk6.mp4?k=ce602178a2b693716ad616783f925a97&t=63a7cb24\",\"paramUrl\":\"http://xx1.video.xiuxiustatic.com/a433p3yCeEJoQ9pya1JCWvDY5zXk6.mp4\",\"264\":{\"720\":\"http://xiuxiu.video.xiuxiustatic.com/a433p3yCeEJoQ9pya1JCWvDY5zXk6_H264_1_16c097c5f37beb.mp4?k=ee460339acd989d99a6859d4e1e7c4b1&t=63a7cb24\"},\"mid\":6858691739818947828}","template":{"id":6681055958431455187,"user":{"uid":1537953244,"type":0,"screen_name":"\uD83D\uDC97菲’Texas","avatar_url":"https://xximg1.meitudata.com/Cover6734846030955959165.jpg","country_id":0,"province_id":0,"city_id":0,"is_invited":0,"mt_num":0},"labels":[],"scheme":"","name":""},"bt_type":7,"bt_text":"使用配方","origin_pic":""}],"type":0,"is_liked":0,"is_favorited":0,"like_count":597,"text_link_params":[],"code":60006,"thumb":"https://xximg1.meitudata.com/8pDDZD9cXO2y9XbxvLaNsYd3GyJ1Ee.jpg","commend":{"width":1080,"height":1080,"dx":0,"dy":420,"ori_width":1080,"ori_height":1920},"comment":1,"width":1080,"height":1920,"caption":"香脆美味\uD83E\uDD91秘制酱香烤鱿鱼\uD83E\uDD42胜于烧烤店美味","music":{"music_id":250103276},"tag_text":"使用量:43","comment_count":25,"pic_comment_count":0,"stream_type":3,"from":"LYuX","template_use_count":43,"clip_count":12,"has_pic_collection":0,"has_material":0},{"item_type":1,"corner_mark":"","scm":"60006.1.0.0$$$6699966838942483363||1||461||72||21||143||9||-1||-1||6699966838791488251||1671897700491||0||-1||-1||-1||-1||-1||19||7||469||1081313892||0","color_number":"#BBAB78","feed_id":6699966838942483363,"user":{"uid":1081313892,"screen_name":"70后缪姐","avatar_url":"http://maavatar1.meitudata.com/60e68fedcd6126786.jpg","friendship_status":0,"identity_type":2,"identity_status":0},"medias":[{"media_id":6699966839064118362,"type":2,"url":"https://xiuxiu.video.xiuxiustatic.com/Nx4PjOLUknaVKV1KqELtmZmq6DxlQ_H264_1_26c537abb8a53f.mp4?k=ec3c4850b3fa60d10efa6f42d3cefa77&t=63a7cb24","duration":18.716,"dispatch_video":"{\"sourceUrl\":\"http://xiuxiu.video.xiuxiustatic.com/Nx4PjOLUknaVKV1KqELtmZmq6DxlQ.mp4?k=51a064bafc27bb36bb6220adf5ee8f78&t=63a7cb24\",\"paramUrl\":\"http://xx1.video.xiuxiustatic.com/Nx4PjOLUknaVKV1KqELtmZmq6DxlQ.mp4\",\"264\":{\"720\":\"http://xiuxiu.video.xiuxiustatic.com/Nx4PjOLUknaVKV1KqELtmZmq6DxlQ_H264_1_26c537abb8a53f.mp4?k=ec3c4850b3fa60d10efa6f42d3cefa77&t=63a7cb24\"},\"mid\":6859061345255441389}","template":{"id":6699966838791488251,"user":{"uid":1081313892,"type":0,"screen_name":"70后缪姐","avatar_url":"http://maavatar1.meitudata.com/60e68fedcd6126786.jpg","country_id":0,"province_id":0,"city_id":0,"is_invited":0,"mt_num":0},"labels":[],"scheme":"","name":""},"bt_type":7,"bt_text":"使用配方","origin_pic":""}],"type":0,"is_liked":0,"is_favorited":0,"like_count":461,"text_link_params":[],"code":60006,"thumb":"https://xximg1.meitudata.com/l6zn3vJiJZgDNQyE639SRxR9E4GRz.jpg","commend":{"width":1080,"height":1080,"dx":0,"dy":420,"ori_width":1080,"ori_height":1920},"commend_cover":{"width":1080,"height":1080,"dx":0,"dy":166,"ori_width":1080,"ori_height":1920},"comment":1,"width":1080,"height":1920,"caption":"美食分享丨美食模板","music":{"music_id":6699966838938289058},"tag_text":"使用量:641","comment_count":72,"pic_comment_count":21,"stream_type":3,"from":"nNhJ","template_use_count":641,"clip_count":1,"has_pic_collection":0,"has_material":0},{"item_type":1,"corner_mark":"","scm":"60006.1.0.0$$$6786216361695668648||0||257||20||16||2581||8||-1||-1||6786216113573226915||1671897700491||0||-1||-1||-1||-1||-1||19||9||0||1577229028||0","color_number":"#88602D","feed_id":6786216361695668648,"user":{"uid":1577229028,"screen_name":"TangCherish","avatar_url":"http://maavatar1.meitudata.com/606f27f1d96b97707.jpg","friendship_status":0,"identity_type":0,"identity_status":0},"medias":[{"media_id":6786216361955715671,"type":1,"template":{"id":6786216113573226915,"user":{"uid":1577229028,"type":0,"screen_name":"TangCherish","avatar_url":"http://maavatar1.meitudata.com/606f27f1d96b97707.jpg","country_id":0,"province_id":0,"city_id":0,"is_invited":0,"mt_num":0},"labels":[],"scheme":"","name":""},"bt_type":9,"bt_text":"使用配方","cover_color":"#B39B79FF","gif":"http://xiuxiu.video.xiuxiustatic.com/67862163621067107271617960062.mp4?k=d4ebbb4dbd6a75b06d4a8e3cbaf773fc&t=63a7cb24","origin_pic":"http://xximg1.meitudata.com/zE2G2JWh1Pgg2ejm0lNfdY9oOya3z.jpg"}],"type":0,"is_liked":0,"is_favorited":0,"like_count":257,"text_link_params":[],"code":60006,"thumb":"https://xximg1.meitudata.com/yE2Z2BJh50G6ba8VjNKtdwkNx1WZE.jpg","commend":{"width":1308,"height":1308,"dx":0,"dy":170,"ori_width":1308,"ori_height":1648},"commend_cover":{"width":1308,"height":1308,"dx":0,"dy":170,"ori_width":1308,"ori_height":1648},"comment":1,"width":1308,"height":1648,"caption":"没有啤酒饮料的烧烤~\n周末愉快\n图片来自微博,侵删","tag_text":"使用量:4.9万","comment_count":20,"pic_comment_count":16,"stream_type":1,"from":"6QHo","template_use_count":48730,"clip_count":0,"has_pic_collection":0,"has_material":0},{"item_type":1,"corner_mark":"","scm":"60006.1.0.0$$$6973438690031860308||1||447||15||0||100||0||-1||-1||6973438689914419765||1671897700491||0||-1||-1||-1||-1||-1||19||7||0||1877722754||0","color_number":"#BE8D53","feed_id":6973438690031860308,"user":{"uid":1877722754,"screen_name":"TenieYoo","avatar_url":"http://maavatar1.meitudata.com/62810d327e7f89415.jpg","friendship_status":0,"identity_type":0,"identity_status":0},"medias":[{"media_id":6973438690535176995,"type":2,"url":"http://xiuxiu.video.xiuxiustatic.com/WR1jbabtJKbkz4RBVOfGvPEYPeGy_H264_1_22e46572e972e0.mp4?k=be7479f6e813642a12c3ef7daac45b64&t=63a7cb24","duration":40.233333587646484,"dispatch_video":"{\"sourceUrl\":\"http://xiuxiu.video.xiuxiustatic.com/WR1jbabtJKbkz4RBVOfGvPEYPeGy.mp4?k=5772b5f352066db78d2d97dcccd20e28&t=63a7cb24\",\"paramUrl\":\"http://xx1.video.xiuxiustatic.com/WR1jbabtJKbkz4RBVOfGvPEYPeGy.mp4\",\"264\":{\"720\":\"http://xiuxiu.video.xiuxiustatic.com/WR1jbabtJKbkz4RBVOfGvPEYPeGy_H264_1_22e46572e972e0.mp4?k=be7479f6e813642a12c3ef7daac45b64&t=63a7cb24\"},\"265\":{\"720\":\"http://xiuxiu.video.xiuxiustatic.com/WR1jbabtJKbkz4RBVOfGvPEYPeGy_H265_wz_22e46b5bb36e50.mp4?k=7138d3cf83359217bba942ee09c37721&t=63a7cb24\"},\"mid\":6973438687485916955}","template":{"id":6973438689914419765,"user":{"uid":1877722754,"type":0,"screen_name":"TenieYoo","avatar_url":"http://maavatar1.meitudata.com/62810d327e7f89415.jpg","country_id":0,"province_id":0,"city_id":0,"is_invited":0,"mt_num":0},"labels":[],"scheme":"","name":""},"bt_type":7,"bt_text":"使用配方","origin_pic":""}],"type":0,"is_liked":0,"is_favorited":0,"like_count":447,"text_link_params":[],"code":60006,"thumb":"https://xximg1.meitudata.com/lGL16E6Iq5NdNaQBaYEgtRX5m656N4.jpg","commend":{"width":1080,"height":1080,"dx":0,"dy":0,"ori_width":1080,"ori_height":1440},"commend_cover":{"width":1080,"height":1080,"dx":0,"dy":0,"ori_width":1080,"ori_height":1440},"comment":1,"width":1080,"height":1440,"caption":"Mini Vlog|这是什么破店⁉️这么好吃❤️\uD83D\uDD25","tag_text":"使用量:19","comment_count":15,"pic_comment_count":0,"stream_type":3,"from":"K5SX","template_use_count":19,"clip_count":17,"has_pic_collection":0,"has_material":0},{"item_type":1,"corner_mark":"","scm":"60006.1.0.0$$$6706854659074578749||1||2153||69||37||663||35||-1||-1||6706854659003275526||1671897700491||0||-1||-1||-1||-1||-1||19||7||340||63829469||0","color_number":"#9E8447","feed_id":6706854659074578749,"user":{"uid":63829469,"screen_name":"热爱生活的小虾虾","avatar_url":"http://maavatar1.meitudata.com/5e9fb54e830b8683.jpg","friendship_status":0,"identity_type":2,"identity_status":1},"medias":[{"media_id":6706854659242351043,"type":2,"url":"https://xiuxiu.video.xiuxiustatic.com/j5dgWWizXqLz26NpqEWCx2PERXLXO_H264_1_18e07224e44ac.mp4?k=bbdcabbc0e9a2823e5f0bf81eb055a6a&t=63a7cb24","duration":20.634000778198242,"dispatch_video":"{\"sourceUrl\":\"http://xiuxiu.video.xiuxiustatic.com/j5dgWWizXqLz26NpqEWCx2PERXLXO.mp4?k=0fcd303e22600576a5835721445fb6e4&t=63a7cb24\",\"paramUrl\":\"http://xx1.video.xiuxiustatic.com/j5dgWWizXqLz26NpqEWCx2PERXLXO.mp4\",\"264\":{\"720\":\"http://xiuxiu.video.xiuxiustatic.com/j5dgWWizXqLz26NpqEWCx2PERXLXO_H264_1_18e07224e44ac.mp4?k=bbdcabbc0e9a2823e5f0bf81eb055a6a&t=63a7cb24\"},\"mid\":6856918188199797819}","template":{"id":6706854659003275526,"user":{"uid":63829469,"type":0,"screen_name":"热爱生活的小虾虾","avatar_url":"http://maavatar1.meitudata.com/5e9fb54e830b8683.jpg","country_id":0,"province_id":0,"city_id":0,"is_invited":0,"mt_num":0},"labels":[],"scheme":"","name":""},"bt_type":7,"bt_text":"使用配方","origin_pic":""}],"type":0,"is_liked":0,"is_favorited":0,"like_count":2153,"text_link_params":[],"code":60006,"thumb":"https://xximg1.meitudata.com/nGOg66Flvn5l6qQ9ljf2jlEWLGyx.jpg","commend":{"width":1080,"height":1080,"dx":0,"dy":337,"ori_width":1080,"ori_height":1920},"commend_cover":{"width":1080,"height":1080,"dx":0,"dy":334,"ori_width":1080,"ori_height":1920},"comment":1,"width":1080,"height":1920,"caption":"不要吃外卖了!自己动手做","music":{"music_id":250104997},"tag_text":"使用量:3749","comment_count":69,"pic_comment_count":37,"stream_type":3,"from":"qjtL","template_use_count":3749,"clip_count":7,"has_pic_collection":0,"has_material":0},{"item_type":1,"corner_mark":"","scm":"60006.1.0.0$$$6756951631085727414||0||1605||5715||5569||44942||52||-1||-1||6756951413598483623||1671897700491||0||-1||-1||-1||-1||-1||19||9||131175||1075134424||0","color_number":"#7A3B29","feed_id":6756951631085727414,"user":{"uid":1075134424,"screen_name":"可颂\uD83E\uDD50","avatar_url":"http://maavatar1.meitudata.com/60695d40f2f9a1541.jpg","friendship_status":0,"identity_type":2,"identity_status":0},"medias":[{"media_id":6756951631240128739,"type":1,"template":{"id":6756951413598483623,"user":{"uid":1075134424,"type":0,"screen_name":"可颂\uD83E\uDD50","avatar_url":"http://maavatar1.meitudata.com/60695d40f2f9a1541.jpg","country_id":0,"province_id":0,"city_id":0,"is_invited":0,"mt_num":0},"labels":[],"scheme":"","name":""},"bt_type":9,"bt_text":"使用配方","cover_color":"#B38F79FF","gif":"http://xiuxiu.video.xiuxiustatic.com/68202486135888485701626073983.mp4?k=43fbb57a62dfa83aa010a5f08ab4de29&t=63a7cb24","origin_pic":"http://xximg1.meitudata.com/jqP2ed1hzE5KaejXZz21Sx2pvKw3JJ.jpg"}],"type":0,"is_liked":0,"is_favorited":0,"like_count":1605,"text_link_params":[],"code":60006,"thumb":"https://xximg1.meitudata.com/DP2kaLYtmKXa5KoK5zmBcm6OxZPYGk.jpg","commend":{"width":1440,"height":1440,"dx":0,"dy":0,"ori_width":1440,"ori_height":1440},"commend_cover":{"width":1440,"height":1440,"dx":0,"dy":0,"ori_width":1440,"ori_height":1440},"comment":1,"width":1440,"height":1440,"caption":"美食综艺晒照,烧烤大作战\n闪闪发光的美味啊!","tag_text":"使用量:540.2万","comment_count":5715,"pic_comment_count":5569,"stream_type":1,"from":"84Ia","template_use
[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。