抖音各版本下载地址:http://www.k73.com/ku/dylsbb/save.html
源码分析
先搜接口名。
进去后发现代码没有反编译成功,但是不影响阅读,继续搜索关键词 encrypt。
发现有两处,阅读代码逻辑可知,getEncryptSwitch()为bool,sendEncryptLog()为POST发数据。
加密在发送前,全局搜getEncryptSwitch
发现getLogEncryptSwitch
继续搜getLogEncryptSwitch
可发现,getEncryptSwitch()控制了函数的走向,当getEncryptSwitch为0时,会跳过Formdata加密的步骤。
所以可以hook getLogEncryptSwitch去查看明文Formdata。
Hook明文代码
frida代码如下:
import frida, sys
def on_message(message, data):
print("[%s] => %s" % (message, data))
# DY12.5.5 清爽版
session = frida.get_remote_device().attach('com.ss.android.ugc.aweme')
js_code = """
Java.perform(function(){
console.log("1 start hook");
var ba = Java.use('com.ss.android.common.applog.AppLog');
if (ba){
console.log("2 find class");
ba.getLogEncryptSwitch.implementation = function(){
console.log("3 find method");
return false;
}
}
})
"""
script = session.create_script(js_code)
script.on('message', on_message)
script.load()
sys.stdin.read()
Hook前后对比
Hook前:(密文)
Hook后:(明文)