Reverse:對某熱門app的逆向分析


大家好,我是無用掛件。在又一次咕咕咕了不到三個月后,某爆發性傳播的app成功地引起了我們的興趣,因而寫篇水文,以緬懷那些因此社會性死亡的烈士(滑稽)。

9月26日,一個名為“送給最好的ta”、大小為724.3KB的Android Package文件開始通過以QQ群為代表的社交平臺傳播,當晚交大淪陷;次日,C9高校全面淪陷,各大學均有中招,其中不乏在課堂、重要會議或人員密集的公開場所上點開該app者,輕則社會性死亡、重則招致處分,史稱“927事件”。該app在點開后會以無法減小的最高音量播放一段不雅音頻,解決方式只有從后臺關閉或重啟手機并卸載。

這種簡單的整蠱app,Symbian時代早已有之,Windows上也有相應版本,只是當時的傳播手段過于單一,沒有今天這樣高度活躍的社交平臺,因而影響沒有這次這么大。但是在其擴散開之后,社交平臺上興起的“盜取個人信息”、“不格式化設備無法徹底刪除”等種種流言,還有各路所謂“大神”似是而非的誘導性分析,更是在如今互聯網時代更加值得我們注意的。拿到樣本之后飯鳥和我都做了一些簡單的逆向,放在這里和大家一起交流。

思路一:行為層面的分析(反編譯式)

該app申請了讀寫存儲空間和完全的網絡訪問權限,所以我們可以從這兩個角度入手去分析。

把App拖進Jadx,我們發現了這么一個玩意(見圖1),對,這就是網傳的“連續截圖”。可以看到,com.nirene.screencapture類控制了這一行為。很顯然,這部分代碼是試圖持續模擬Power+Volume-鍵,以阻止用戶減小音量或鎖屏。但經測試,該段代碼并不成功,用戶依舊可以鎖屏或者減小音量,所以作者又設置了一種定時調節音量為最大的實現,其中調用了AccessbilityService。該app要求的Storage權限也正是保證模擬截圖行為的正常進行。

??我們再在反編譯出的代碼中指定http和socket關鍵詞進行搜索,見P2、P3。可以看到,僅com.androlua.Http、com.androlua.LuaServer、com.baidu.mobstat有涉及。前兩者為作者使用的AndroLua(一種基于LuaJava的Android實現)自帶的方法,最后一項是BaiduStats(百度統計),可能是作者想看看有多少人中招(沒這么無聊吧…)。不過,我分別使用PacketCapture、HttpCanary、Fiddler等工具嘗試去抓包,都未得到任何結果(也就是該軟件并不會聯網?)

思路二:真正的逆向操作

??我們不難發現,上面一種方法審計量過大且過于瑣碎,效率很低。直接使用ApkTool解包,我們在assets目錄下抓到了關鍵。對,作者實際上就寫了init.lua和main.lua,外帶上一段奇奇怪怪的聲音(0.mp3),然后在AndroLua框架作了編譯。(所以說會有人推出所謂的變種和新玩法,看到了吧,只是解包替換了0.mp3,然后簽名打包二次傳播而已)

??顯然,作者不想讓你看到他的代碼邏輯(作了二次混淆),所以逆向main.lua便成為入手點。回頭看Resources\lib\armeabi-v7a\libluajava.so,IDA打開,分析之后可以找到解密函數luaL_loadbufferx,直接拿來用。Dump出來之后main.lua是字節碼,這時就可以順利地使用unluac反編譯了。最終得到*.lua的Source File,整個app的程序邏輯就很清晰了,看得出來,很無聊吧…

?Reverse很輕松地結束了,但值得我們去警醒的是謠言和其籠罩下的群眾性行為。互聯網時代,做個獨立而理智的人,能去清醒地自我思考,至關重要。



本文首發于淀粉月刊:https://dfkan.com

本文作者:無用掛件

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,345評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,494評論 3 416
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,283評論 0 374
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,953評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,714評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,186評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,255評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,410評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,940評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,776評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,976評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,518評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,210評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,642評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,878評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,654評論 3 391
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,958評論 2 373

推薦閱讀更多精彩內容

  • Lua 5.1 參考手冊 by Roberto Ierusalimschy, Luiz Henrique de F...
    蘇黎九歌閱讀 13,866評論 0 38
  • ¥開啟¥ 【iAPP實現進入界面執行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程,因...
    小菜c閱讀 6,482評論 0 17
  • Swift1> Swift和OC的區別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴謹 對...
    cosWriter閱讀 11,120評論 1 32
  • jHipster - 微服務搭建 CC_簡書[http://www.lxweimin.com/u/be0d56c4...
    quanjj閱讀 823評論 0 2
  • 【當日新文】及【作業要求】 李克富‖將BUG激活 今天的作業是:再閱讀幾遍(三個)歸因原則,爭取別再糊涂! 我想:...
    張凱麗1985閱讀 250評論 0 1