硬核科普:商店裏的流氓應用是如何繞過審覈和阻止技術分析的?

爲吸引更多技術人員加入分析,揭開流氓軟件行爲,本人主動放棄本文全部版權。

即日起,任何人可隨意轉載、修改、搬運本文,無需授權,不要署我名

原本我只想揭示某個App流氓且繞過商店審覈的行爲,但後來發現這並非個例。因此我停止了分析,轉而自己寫App去驗證自己的想法,以便大家更好地瞭解這些現象。

現在我作爲一名流氓軟件開發者,通過左右腦互博,梳理出了以下關鍵點及其解決方法。

怎麼提高APP廣告的轉化率

我列舉三個常見但無人提及的方法:

一是接入系統廠商自帶的廣告SDK。這些下崽器擁有特殊權限,能夠調用應用商店進行靜默下載和安裝。(應用商店的靜默下載安裝權限無法被用戶禁用)

在前幾年我還發現就算是開了守護模式(禁止安裝應用),此種廣告依然能靜默安裝APP

點擊關閉按鈕就自動下載、安裝推廣app,此能力來自廠家自身廣告SDK

另一種是廣告以全屏形式展開,當用戶呼出虛擬導航鍵(小白條)時,會100%跳轉至廣告頁面。

用戶只會以爲是自己不小心手滑點到了。

實際上是廣告頁監聽了導航欄,出現導航了說明用戶進行了滑動,立馬跳屏。

起初我猜測滑動這個鬆開動作被app廣告頁捕捉當成了點擊。實際呼出小白條操作只會被系統攔截,app無法感知到用戶在哪個區域鬆手。

注意看滑動軌跡,沒有額外點擊

第三種是“切屏廣告”。用戶從前臺切出App一段時間後,再次返回時,會彈出類似開屏廣告的頁面。

用戶往往誤以爲是手機內存不足,導致App被後臺自動清理了。

這類情況過於普遍,我就不截圖了。

其他非技術性的廣告套路,例如疊加多層廣告、使用深色背景遮擋半透明關閉按鈕等,這裏暫不展開討論。

那能進一步提升廣告觸達率嗎?

一種簡單的辦法就是讓用戶使用一段時間我們的app,繪製熱力圖,得到用戶常點的位置,然後把廣告跳過和進入按鈕進行對調。

如果不想讓用戶很快識別出這種手段,我們可以更換廣告類型、樣式、按鈕大小,讓用戶感知不到但存在肌肉記憶

此圖來自百度移動統計SDK

怎麼區分老人、小孩哥進行精準推廣

老人和小孩是兩個沉默羣體,並且其行爲特徵明顯

老人特徵

  1. 每一步操作的思考時間都明顯長於年輕人

比如滑動操作(按下、滑動、鬆開)時間>500ms

  1. 底部有三大金剛

比如通過獲取手機尺寸和app內界面顯示最大尺寸比較,可以判斷用戶是否開啓導航欄

  1. 安裝應用列表短劇、短視頻、極速版、聽書居多

  2. 系統字體縮放比例在“大”以上

小孩哥特徵

  1. 因爲手指小,可以通過計算按壓面積來判定(不是單一指標就斷定爲小孩哥)

前兩次:大拇指(大人);後兩次:尾指(模擬小孩)

  1. 安裝軟件裏遊戲居多,並且很多是商店裏的小型遊戲

這些是用戶畫像的重要一部分,只要我們精準識別爲老人小孩羣體,廣告就可以不限制的推送給他們。

那用戶拒絕了讀取安裝的軟件列表權限,我們還能獲取嗎

用戶以爲拒絕了就不會被讀到應用,實際可以繞過,如圖

禁止了應用權限,依然可以繞過獲得應用列表

要是有人抓包怎麼辦

檢測代理,只要發現開着代理就改變自身行爲(禁止發送敏感數據、停止展示流氓廣告)

根據用戶網絡環境改變app行爲

如果有人要逆向app怎麼辦

對抗是無止盡的,混淆、加固、反抓包能防住一般技術人員分析即可。我們這種體量的APP大佬們不會看上的

如果APP被盯上了要怎麼辦

如果被多方盯上了我直接滑跪,下架避避風口,然後改名再來

再不行就換皮上架,提前申請備用的版號

此爲示例圖,和本文無關

那要是用戶要卸載怎麼挽留

用戶習慣性使用長按圖標卸載,我們就可以加個假卸載入口來迷惑用戶

然後進入後就發一些福利來挽留用戶

快捷菜單虛假卸載引流

要是有用戶要投訴我們呢

比如我們接入的廣告,我們就放一個假投訴按鈕,投訴到我們自己平臺

再在app個人中心裏放一個投訴反饋。

截流是一種高效的手段。我們單獨給這部分用戶開綠色遠控

投訴截流

用戶要錄屏發到網上曝光,我們能阻止嗎

沒有接口用於檢測懸浮窗,但是可以通過app內操作後的視圖更新速度(幀率)來推測是否可能開啓了錄屏

開啓錄屏後,操作幀會明顯波動

測試過播放4K視頻懸浮窗等,對app內的操作幀率不會有影響

只有錄屏會出現如圖的明顯掉幀。我對此種檢測方法保留意見,僅作示例

關於防止錄屏和截圖,其實可以直接調用系統接口禁止即可,簡單粗暴。我們可以找個理由比如“出於版權考慮,本app禁止截圖和錄屏”,你看很多的app甚至小程序都開始濫用這個功能。

禁止截圖、錄屏,強制錄屏結果就是黑屏

我們要上架商店,人工審覈怎麼繞過呢

審覈人員的安卓虛擬機、手機都有特定的app,我們只需要單獨檢測這部分app,如果存在則開綠色通道。

另外,不要惹到律師,他們很難搞。我們可以檢測手機上是否有律師常用的“真相取證”APP(com.truthso.ip360.activity)來讓APP保持沉默。

遠控下發配置白名單

那怎麼繞過最上面的審覈

可以結合多種手段,檢測IP爲北京、上海和廣州等重點城市,針對性下發遠控。

檢測到商務、高端機型就隨機下發(上面的人總不會在用紅米和榮耀吧),讓復現難度加大(但我不想一刀切,高端機型也有我們的目標用戶)

我花了很多時間收集、逆向、分析、寫代碼驗證,不是爲了學習如何成爲這樣的惡龍,而是爲了讓這些潛藏在代碼深處的惡意,暴露在公衆中

當商業利益成爲唯一驅動力,技術便不再是服務於人的工具,而異化爲操控人的枷鎖。

無止盡的試探底線,在透支整個移動互聯網生態的信任。

技術本應向善,而不應成爲圍獵用戶的利器。

迴歸友好廣告,守住做人底線。

參考資料(#替換爲.)

安卓API文檔

developer#android.google#cn/reference/packages

繞過讀取應用列表權限獲取應用列表的實現方法

github#com/LuoYunXi0407/AppListViewer

更多遊戲資訊請關註:電玩幫遊戲資訊專區

電玩幫圖文攻略 www.vgover.com