寫在前面
因為要寫這個項目自動打卡機器人,需要對我i科大抓包分析,因此記錄一下
踩坑過程
在剛開始時踩了很多坑,從模擬器到真機,用FD到frida...
安卓版本太高無法抓包
因為我的手機是安卓12版本,各種抓包軟件都是說需要root才能抓包,所以這條路直接放棄
安卓模擬器
真機不行自然想到模擬器抓包
雷電4
雷電4模擬器是安卓7.0版本,我一般對模擬器抓包都是用FD代理抓包,但是各種配置完成之后卻抓不到。
然后我查了官方論壇,官方的解釋是因為對內核的修改導致的
於是我轉戰3.0版本,但是3.0版本我i科大貌似對模擬器的環境不支持,或者模擬器環境缺少了必要的東西,會有以下情況
一直加載...
無計可施的情況下,我想到了frida這個工具,雖然對安卓逆向不是很了解,但是我多少聽說過這個工具,於是打算用frida對雷電4進行抓包
frida+雷電4
frida hook抓包例子
參考了這個文章,我開始了對frida的研究
抓包腳本我使用的是r0captureGitHub上可以搜索到這個項目
經過一天的研究,總有能正常抓包的時候,我又遇到了問題。
雖然雷電4能加載出各個服務,但是報平安功能進去卻是一片空白...
於是轉戰frida+真機進行抓包
frida+真機
真機在開啟frida-server時需要權限,也就是root
我就找了之前的舊手機刷root,折騰半天之后,舊手機是安卓6,r0capture只能7以上
我直接裂開
fd+真機
於是我又想到了這個,通過電腦開熱點,手機代理的方法,成功抓到了登錄以及上報的包
分析與逆向
從登錄包中可以找到一個deviceId字段,看字面意思就是一個設備id,但是很短像是只進行了簽名,並不能再解密
以防萬一,我又逆向了我i科大app
使用AndroidKiller進行逆向之后,並不是很確定的找到了一個關於deviceId計算
很容易看到這里進行了MD5運算,但是很容易想到,這里的deviceId是24位,md5是32位,所有應該不是這里。(我太菜了,找不到)
然后我隨便改了幾位發現依舊能獲取到正確的token,證明猜想沒問題。
后邊的上報的包也沒加密,就不用分析了。
總結
(安卓逆向有時間還是要學一學,不然用的時候真不會)