![]()
爲吸引更多技術人員加入分析,揭開流氓軟件行爲,本人主動放棄本文全部版權。
即日起,任何人可隨意轉載、修改、搬運本文,無需授權,不要署我名
![]()
原本我只想揭示某個App流氓且繞過商店審覈的行爲,但後來發現這並非個例。因此我停止了分析,轉而自己寫App去驗證自己的想法,以便大家更好地瞭解這些現象。
現在我作爲一名流氓軟件開發者,通過左右腦互博,梳理出了以下關鍵點及其解決方法。
![]()
怎麼提高APP廣告的轉化率
我列舉三個常見但無人提及的方法:
一是接入系統廠商自帶的廣告SDK。這些下崽器擁有特殊權限,能夠調用應用商店進行靜默下載和安裝。(應用商店的靜默下載安裝權限無法被用戶禁用)
在前幾年我還發現就算是開了守護模式(禁止安裝應用),此種廣告依然能靜默安裝APP

點擊關閉按鈕就自動下載、安裝推廣app,此能力來自廠家自身廣告SDK
![]()
另一種是廣告以全屏形式展開,當用戶呼出虛擬導航鍵(小白條)時,會100%跳轉至廣告頁面。
用戶只會以爲是自己不小心手滑點到了。
實際上是廣告頁監聽了導航欄,出現導航了說明用戶進行了滑動,立馬跳屏。
起初我猜測滑動這個鬆開動作被app廣告頁捕捉當成了點擊。實際呼出小白條操作只會被系統攔截,app無法感知到用戶在哪個區域鬆手。

注意看滑動軌跡,沒有額外點擊
![]()
第三種是“切屏廣告”。用戶從前臺切出App一段時間後,再次返回時,會彈出類似開屏廣告的頁面。
用戶往往誤以爲是手機內存不足,導致App被後臺自動清理了。
這類情況過於普遍,我就不截圖了。
其他非技術性的廣告套路,例如疊加多層廣告、使用深色背景遮擋半透明關閉按鈕等,這裏暫不展開討論。
![]()
那能進一步提升廣告觸達率嗎?
一種簡單的辦法就是讓用戶使用一段時間我們的app,繪製熱力圖,得到用戶常點的位置,然後把廣告跳過和進入按鈕進行對調。
如果不想讓用戶很快識別出這種手段,我們可以更換廣告類型、樣式、按鈕大小,讓用戶感知不到但存在肌肉記憶
![]()
此圖來自百度移動統計SDK
![]()
怎麼區分老人、小孩哥進行精準推廣
老人和小孩是兩個沉默羣體,並且其行爲特徵明顯
老人特徵
每一步操作的思考時間都明顯長於年輕人
比如滑動操作(按下、滑動、鬆開)時間>500ms
底部有三大金剛
比如通過獲取手機尺寸和app內界面顯示最大尺寸比較,可以判斷用戶是否開啓導航欄
安裝應用列表短劇、短視頻、極速版、聽書居多
系統字體縮放比例在“大”以上
![]()
小孩哥特徵
因爲手指小,可以通過計算按壓面積來判定(不是單一指標就斷定爲小孩哥)

前兩次:大拇指(大人);後兩次:尾指(模擬小孩)
安裝軟件裏遊戲居多,並且很多是商店裏的小型遊戲
這些是用戶畫像的重要一部分,只要我們精準識別爲老人小孩羣體,廣告就可以不限制的推送給他們。
![]()
那用戶拒絕了讀取安裝的軟件列表權限,我們還能獲取嗎
用戶以爲拒絕了就不會被讀到應用,實際可以繞過,如圖

禁止了應用權限,依然可以繞過獲得應用列表
![]()
要是有人抓包怎麼辦
檢測代理,只要發現開着代理就改變自身行爲(禁止發送敏感數據、停止展示流氓廣告)

根據用戶網絡環境改變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
