Android逆向技巧——去除開屏廣告
相信不少網(wǎng)友都有相似的經(jīng)歷:很多app剛開始用的時候很清爽,沒啥廣告;等用了一段時間后廠家就開始大量上廣告的了,我個人覺得這是典型的利用大數(shù)據(jù)殺熟:廠家看到用戶的月活、日活都挺高的,說明用戶對自己的app已經(jīng)產(chǎn)生依賴,此時可以開始“殺豬吃肉”了!開屏廣告是我最討厭的一種:點開app就被逼著看,而且非會員一般要5秒后才能跳過,不想被逼著看廣告的就花錢充會員;怎么才能不花錢去掉app的開屏廣告了?
先簡單回顧一下windows下PE文件的執(zhí)行原理:PE文件的文件頭有個字段叫AddressOfEntryPoint,會標記程序代碼的入口。用戶雙擊exe后,windows操作系統(tǒng)會解析這個字段,找到標記的程序入口,然后跳轉(zhuǎn)到這里去執(zhí)行代碼;為了避開程序自身的CRC檢測,很多外掛都選擇了入口點注入這種方式,原因很簡單:入口點這里程序自己的代碼都還沒開始執(zhí)行了,這時的exe就像一只待宰羔羊,任憑外掛干任何事都無法反抗!同理:android也有類似的入口點,用戶雙擊app后,android也會跳轉(zhuǎn)到app標記的入口點去執(zhí)行,那么這個入口點(注意:嚴格講這應該是入口界面,和入口點不是一個概念)在哪了?----- AndroidMainfest.xml文件有兩個標簽頁,如下:
<action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/>
凡是看到這兩個標簽一起出現(xiàn)的就是app的入口activity了,用戶點開app肯定會從這里指定的入口開始執(zhí)行。這里以某云筆記為例,其原始入口如下:
<activity android:launchMode="singleTop" android:name="com.xxxx.note.activity2.SplashActivity" android:screenOrientation="portrait" android:theme="@style/FullScreen">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
所以這里實錘:開屏廣告就是從這里開始看的!所以現(xiàn)在的需求就編變成了繞過這個廣告Activity,直接到我們期望的Activity!這又該怎么操作了?這里先找到我們期望的activity,如下:我期望打開app就能直接開到筆記的列表,而不是開屏廣告,所以這里可以先在打開期望的界面,然后用“adb shell dumpsys activity top”查看這個頁面的activity:

我期望的activity是“activity2.MainActivity”,所以在android killer打開這個apl,在AndroidMainfest.xml中找到這個activity,
<activity android:configChanges="keyboardHidden|orientation" android:exported="true" android:launchMode="singleTop" android:name="com.xxxx.note.activity2.MainActivity" android:screenOrientation="portrait" android:windowSoftInputMode="adjustPan|stateHidden"/>
接下來的工作就好走了,先找到LAUNCHER的activity,把上面那兩個標簽剪切,復制到我們期望的activity下面即可,如下:
<activity android:configChanges="keyboardHidden|orientation" android:exported="true" android:launchMode="singleTop" android:name="com.xxxx.note.activity2.MainActivity" android:screenOrientation="portrait" android:windowSoftInputMode="adjustPan|stateHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
然后重新用android killer編譯打包,再安裝新的apk即可!
總結(jié):這里本質(zhì)是通過配置文件,改變app的入口activity!
以上就是Android逆向技巧——去除開屏廣告的詳細內(nèi)容,更多關(guān)于Android去除開屏廣告的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Android水波紋載入控件CircleWaterWaveView使用詳解
這篇文章主要為大家詳細介紹了Android水波紋載入控件CircleWaterWaveView使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-01-01
Android View 完美實現(xiàn)EditText 在軟鍵盤上邊的示例
本篇文章主要介紹了Android View 完美實現(xiàn)EditText 在軟鍵盤上邊的示例,具有一定的參考價值,有興趣的可以了解一下2017-08-08
Android實現(xiàn)從本地圖庫/相機拍照后裁剪圖片并設(shè)置頭像
玩qq或者是微信的盆友都知道,這些聊天工具里都要設(shè)置頭像,一般情況下大家的解決辦法是從本地圖庫選擇圖片或是從相機拍照,然后根據(jù)自己的喜愛截取圖片,接下來通過本文給大家介紹Android實現(xiàn)從本地圖庫/相機拍照后裁剪圖片并設(shè)置頭像,需要的朋友參考下2016-02-02
Android實現(xiàn)搜索功能并本地保存搜索歷史記錄
這篇文章主要為大家詳細介紹了Android實現(xiàn)搜索功能,并實現(xiàn)本地保存搜索歷史記錄,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-03-03
AndroidStudio3.6.1打包jar及AndroidStudio4.0打包jar的一系列問題及用法
這篇文章主要介紹了AndroidStudio3.6.1打包jar,AndroidStudio4.0打包jar的問題及用法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-03-03

