Hook 技術又叫做鉤子函數,簡單來說,就是把系統的程序拉出來變成我們自己執行代碼片段。今天小編用三分鐘簡述Hook,讓大家了解Hook技術。
1、 Hook的定義
Hook,鉤子。勾住系統的程序邏輯。在某段SDK源碼邏輯執行的過程中,通過代碼手段攔截執行該邏輯,加入自己的代碼邏輯。
Hook 簡單類似網絡傳輸中的中間人攔截,我攔截APP中的原始方法,自己定義一個方法,替換原始的東西,實現我不可描述的目的,大白話就是這樣,但是實際過程和應用還是比較復雜的。
常見的使用場景,舉幾個栗子:
App登錄劫持,一般用戶手動點擊“登錄”按鈕才會將用戶名和密碼信息發送至服務器端去驗證賬號與密碼是否正確。這樣就很簡單了,居心叵測的人只需要找到開發者在使用EditText控件的getText方法后進行網絡驗證的方法,Hook該方法,就能劫持到用戶的賬戶與密碼了。
App注入廣告,app 啟動的時候加載 HomeActivity 肯定要執行onCreate 方法, 劫持首頁的onCreate方法,在里面注入彈窗廣告,獲得廣告收入。App數據篡改,比如玩一款游戲App ,修改里面額金幣數,可以反編譯App ,找到具體的類和方法,插入自己的方法就可以實現。聽起來很牛b,但是要實現,需要掌握很多的逆向技術和其它需要技術,可是非常不易的。
2、實用價值
Hook是中級開發通往高級開發的必經之路。如果把谷歌比喻成安卓的造物主,那么安卓SDK源碼里面就包含了萬事萬物的本源。中級開發者,只在利用萬事萬物,浮于表層,而高級開發者能從本源上去改變萬事萬物,深入核心。
最有用的實用價值: hook是安卓面向切面(AOP)編程的基礎,可以讓我們在不變更原有業務的前提下,插入額外的邏輯。這樣,既保護了原有業務的完整性,又能讓額外的代碼邏輯不與原有業務產生耦合。
3、前置技能
Java反射
熟練掌握類Class,方法Method,成員Field的使用方法源碼內部,很多類和方法都是@hide的,外部直接無法訪問,所以只能通過反射,去創建源碼中的類,方法,或者成員.
閱讀安卓源碼的能力
Hook的切入點都在源碼內部,不能閱讀源碼,不能理清源碼邏輯,則不用談hook. 其實使用AndroidStudio來閱讀源碼有個坑,有時候會看到源碼里面 “一片飄紅”,看似是有什么東西沒有引用進來,其實是因為有部分源碼沒有對開發者開放,解決起來很麻煩, 所以,推薦從安卓官網下載整套源碼,然后使用 SourceInsight 查看源碼。 如果不需要跳來跳去的話,直接用安卓源碼網站一步到位。
4、hook通用思路
無論多么復雜的源碼,我們想要干涉其中的一些執行流程,最終的殺招只有一個: “偷梁換柱”。而 “偷梁換柱”的思路,通常都是一個套路:根據需求確定要hook的對象尋找要Hook的對象的持有者,拿到要hook的對象(持有:B類 的成員變量里有 一個是A類的對象,那么B就是A的持有者)定義“要Hook的對象”的代理類,并且創建該類的對象使用上一步創建出來的對象,替換掉要Hook的對象。
到此,關于“Hook的定義是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注本站網站,小編會繼續努力為大家帶來更多實用的文章!
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...
2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...
:喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...
商業地產運營模式是什么樣的?一般來說,商業地產是指用于零售,餐飲、娛樂、健身服務和休閑等各種商業目的的房地產形式。具有房地產、商業、投資的特點,不同于單純的投資和商業,也不同于傳統的房地產行業;大致可分為商業廣場、購物廣場、商業街,大型商店、購物中心、休閑廣場、步行街, 專業市市場、社區商業中心等。它在商業模式、功能和用途上都不同于普通的住宅、公寓、別墅等房地產形式。以辦公為主要目的的房地產屬于商...
銀行u盾丟了可以補辦嗎?u盾失可以補領。以工商銀行為例子: u盾資格證書遺失后,必須由本人帶上有效的身份證和開通電子銀行的銀行卡,到地區隨意服務網點拆換u盾資格證書并進行證書下載。1、u盾報失期內,如必須申請辦理小額付款、轉賬業務,可試著通過網上銀行、手機銀行等方式開通"短消息認證支付”后絞易;2、各地區不一樣自助機器使用業務有差別,實際作用及實際操作要以機器網頁頁面展示為標...
碳交易個人開戶怎么開戶?1、預提交開戶申請表:臚首先需要登錄當地碳排放權交易中心網站, 下載開戶資料,并填寫開戶申請表,然后將其打印蓋章并進將掃描件和word版以郵件附件發送至官方郵箱,實際的郵箱信息可以在官網進行查詢;2、辦理開戶手續:用戶攜帶齊有關證照原件和復印件、已填寫完畢并簽章的交易服務協議、文書.等,到當地碳排放權交易中心開戶; .3、完成開戶:工作人員對用戶的資料和交易風險評估問卷進行...