逆向實戰-某電視直播軟件去廣告

很久沒出文章了, 最近因爲在找工做, 因此在面試之餘, 逆向本身常常用到的一款看電視直播的軟件.面試

目標: 去廣告

難度: 一顆星

準備工做

工欲善其事, 必先利其器. 逆向須要的環境和工具這裏很少說.
複製代碼

開始操做

  • 經過MonkeyDev把咱們的軟件運行起來, 找到播放界面, 這時能夠看到廣告, 作的很粗糙, 而後經過Debug View Hierarchy功能查看UI, 發現廣告視圖(畫質有點AV湊合看):

LZMBaseADView

  • LZMBaseADView經過命名很清晰的知道應該八九不離十就是這個視圖, 那麼咱們試試Hook到初始化方法- (id)initWithFrame:(struct CGRect)arg1;有沒有效果.
  • 經過實踐發生了一個錯誤. 經過堆棧咱們能夠看到在數組調用插入數據的時候出現了錯誤, 咱們知道OC中的數組不能存放空的對象, 因此報錯就很正常了. 不過不能設置爲nil那麼怎麼作呢?
  • 就在我迷茫的時候發現了堆棧中的這個類LZMAdBaseManager

  • 進入到頭文件看看發現都是處理廣告相關的方法, 並且命名也很符合, 沒猜錯應該就是負責管理廣告相關業務的管理類, 因此我以爲試試這個類.
  • 由於當前類繼承自根類, 因此我以爲hook init方法.原理和上面同樣.

  • 運行發現啓動頁廣告也沒有了, 咱們在進入播放界面看看, 能夠看到廣告也不見了~ 到此咱們的任務就完成了.

最後總結

經過對逆向工具的熟練使用, 再根據自己正向開發經驗尋找目標界面和類, 並經過簡單的hook嘗試完成了咱們的目標. 不只增長了對程序的理解, 也能學到他人程序的設計思想, 並且經過逆向咱們也增長了對程序的安全意識.數組

相關文章
相關標籤/搜索