用莘莘學(xué)子的原話:2019年9月27日這天,各大高校陸續(xù)淪陷......來,咱們先看看這戰(zhàn)況:
一日之內(nèi),造成如此大規(guī)模傷害的不是別的,而是APK。
APK是誰?文件?。PK文件!
沒錯,就是這貨。
據(jù)說,如果你是安卓手機,那么在下載這個文件之后,你的手機就會發(fā)瘋似得發(fā)出嬌喘聲,而且還會默認將音量開到最大,無法調(diào)低,無法關(guān)機。
想想吧,無論你是在課堂上、圖書館、還是食堂,這震天動地的聲響足以讓你成為全?!白铎n的崽”。
一時間,這件事走紅各大院校,霸榜知乎熱搜。盡管這個APK有個好聽的名字—;—;送給最好的TA,然而收到這份厚禮的人或許會患上一種病—;—;手機抑郁癥,就像這樣:
為此,有民間大佬對這個不正經(jīng)APK進行了反編譯分析,哦嚯~于是就發(fā)現(xiàn)了一個10秒的音頻,沒錯,兇手就是它!
另在博客上,吾愛破解也對這個整人APP進行了分析。
目錄結(jié)構(gòu)
他稱,該APK文件中含有一段加載lua腳本的關(guān)鍵函數(shù),而在加載之前肯定是要先解密的,所以只要找到解密函數(shù),然后就可以把解密后的lua腳本dump出來。
使用IDA打開libluajava.so,經(jīng)過分析找到函數(shù)luaL_loadbufferxluaL_loadbufferx的第二個參數(shù)是加密的字節(jié)數(shù)組,第三個參數(shù)是大小,第四個參數(shù)是lua文件位置。
這個函數(shù)就是加載加密lua腳本的地方,其中對腳本進行了解密操作。
根據(jù)第四個參數(shù)我們可以區(qū)分目前加載的lua腳本名稱,從而選擇性地dump(即在函數(shù)開頭下斷點,查看第四個參數(shù)內(nèi)容)luaL_loadbufferx函數(shù)偽代碼如下:
首先對輸入的字節(jié)數(shù)組進行判斷,如果以1B開頭,且第二位不是0C,則進行解密操作,否則直接調(diào)用j_lua_load加載lua腳本。
在第41行下斷點即可獲取到解密后的字節(jié)數(shù)組,從而dump。
在進行動態(tài)dump調(diào)試之后,通過分析得出之所以音量會自動調(diào)大并無法關(guān)閉,是因為lua腳本將其設(shè)定為放放音頻和循環(huán)調(diào)整媒體音量的功能,并且攔截了返回鍵,禁止關(guān)機操作。
靜音樣本下載:
https://pan.baidu.com/s/1csqa3X86T8ebemZo2YXBrg
dump出來的lua:
https://pan.baidu.com/s/1X0un1jgVB6QAgPRqNu_3Wg
這件事傳的沸沸揚揚,不少學(xué)生發(fā)帖聲稱自己被坑,更有人分析該APK文件可能是病毒軟件,并竊取機主的私人信息。
當(dāng)然,目前為止并沒有專業(yè)人士就此事發(fā)聲,以上結(jié)論仍處在猜測階段。