人與人的悲歡並不相通,我只以爲O泡吵鬧

如下文章來源於公衆號「程序員求職之路android

O泡時間到!程序員

短短5個字開啓了今年大學生集體「社會性死亡」的篇章。面試

一款披着「半次元」logo、打開便自動播放O泡果奶魔性廣告、調用手機最大音量且沒法關閉的APP在一個月前迅速點燃全網。安全

一時間各大院校的課堂「充滿了快活的空氣」。app

所謂外行看熱鬧,內行看門道。函數

讓大學生焦頭爛額的粉紅色軟件在程序員眼裏又是什麼水準呢?oop

通常貨色!不過如此!ui

事實上,以專業的眼光看,製做這樣一個惡搞軟件實在不難。lua

開發過Android的程序員知道,這其實並無太多技術含量可言,根據上述的三言兩語相信你也能復刻一個出來:spa

1. 建立一個頁面,可是空空如也沒有任何內容。

2. 設置代碼讓程序在極短期內重複將音量調至最大。要多短?至少是你按不過它的程度吧。

3. 取消返回操做。

4. 隱藏虛擬按鍵,再次阻斷你返回主界面的路徑。

5. 最後添加上最惡毒的部分,循環播放O泡果奶的廣告。

若是你對此饒有興致並手擼了一份代碼,如今咱們就把原軟件反編譯後的參考答案拿出來供你比較。

-- main.lua --
require("import")
import("android.app.*")
import("android.os.*")
import("android.widget.*")
import("android.view.*")
import("android.view.View")
import("android.content.Context")
import("android.media.MediaPlayer")
import("android.media.AudioManager") -- 音量控制模塊
import("com.androlua.Ticker")  -- Ticker:定時觸發器
activity.getSystemService(Context.AUDIO_SERVICE).setStreamVolume(AudioManager.STREAM_MUSIC, 15, AudioManager.FLAG_SHOW_UI)   --音量調大
activity.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE)
m = MediaPlayer() --播放器
m.reset()  
m.setDataSource(activity.getLuaDir() .. "/mc.mp3")  -- 引用包裏的「O泡果奶」
m.prepare()
m.start()
m.setLooping(true)
ti = Ticker() --計時器計時觸發
ti.Period = 10 -- 間隔爲10ms

function ti.onTick() -- 設置ticker要觸發的函數
  activity.getSystemService(Context.AUDIO_SERVICE).setStreamVolume(AudioManager.STREAM_MUSIC, 15, AudioManager.FLAG_SHOW_UI) -- 和上面如出一轍
  activity.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE) -- 隱藏navbar等
end

ti.start() -- 開啓ticker,每10ms執行一次上面的函數

function onKeyDown(A0_0, A1_1) -- 監聽按鍵,不調用外部方法的話就至關於劫持下來了
  if string.find(tostring(A1_1), "KEYCODE_BACK") ~= nil then -- 若是按鍵是返回鍵
    activity.getSystemService(Context.AUDIO_SERVICE).setStreamVolume(AudioManager.STREAM_MUSIC, 15, AudioManager.FLAG_SHOW_UI) -- 設置音量爲最大
  end -- 至關於把返回鍵變成了音量最大鍵
  return true
end

做者多是出於避開安全掃描的考慮採用了Lua腳本而很是規的Java編寫程序。

在合計34行的代碼中,除去開頭一堆import,關鍵內容在20行左右。

仔細查看內容也能發現其並無網傳的如洪水猛獸般恐怖,真的就是一個惡搞軟件。

隨着時間推移,這件事到今天也是逐漸淡出人們的視野……

 

可是!

當你把注意力往更早的地方移時,你會看到一個遠比軟件恐怖的現象:

歷史給網民的教訓就是人們從未在歷史中吸收過任何教訓。

 

事實上在去年的9月27日,一款叫作「送給最好的TA」的軟件已經用一樣的手法上演過一模一樣的把戲,甚至在今天對比兩款軟件的代碼都沒有太大差異。

那一次的影響更爲惡劣,但人們仍是在同一個地方跌倒了。

 

最後引用專業人士的建議做爲結尾,但願此次,在對付流氓軟件上能夠多個心。

1. 不安裝來路不明的軟件,即便是熟人發來的。

2. 不要root!不要對沒有絕對把握的事情盲目自信。常在河邊走哪有不溼鞋,確實是話糙理不糙。

3. 剋制住本身無處安放的好奇心。

 

更多內容也請關注

程序員求職之路

一個爲程序員量身定作的求職公衆號

給你貼心有效的大廠面試真題

面試乾貨、職業發展乾貨、簡歷模版

相關文章
相關標籤/搜索