日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > Android >内容正文

Android

进击的Android Hook 注入术《一》

發(fā)布時(shí)間:2025/3/15 Android 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 进击的Android Hook 注入术《一》 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄(?)[-]

  • 寫(xiě)在前面
  • 短信攔截
  • 場(chǎng)景
  • 問(wèn)題
  • 解決方案
  • 問(wèn)題來(lái)了
  • 基本思路
  • 寫(xiě)在前面


    這個(gè)系列本來(lái)是在公司的一個(gè)分享,內(nèi)容比較多,所以就把這個(gè)PPT重新組織整理成博客,希望對(duì)大家學(xué)習(xí)有所幫助。我會(huì)先以一個(gè)”短信攔截“作為例子,拋出問(wèn)題,并提出了一種基于”注入“的技術(shù)方案達(dá)到提高攔截優(yōu)先級(jí),接著再重點(diǎn)講解注入的技術(shù)細(xì)節(jié)。最后,我會(huì)跟大家分享一個(gè)我業(yè)余時(shí)間開(kāi)發(fā)注入框架——AIM(Android IPC Manager)。當(dāng)然了,這個(gè)框架跟目前的XPosed、CydiaStructe的側(cè)重點(diǎn)不太一樣。

    短信攔截


    場(chǎng)景

    如果某款安全支付類應(yīng)用和一個(gè)未知木馬安裝在同一臺(tái)手機(jī),木馬會(huì)截獲所有的驗(yàn)證碼短信。


    問(wèn)題

    有什么辦法可以保證安全支付類的應(yīng)用可以比木馬更優(yōu)先截獲到驗(yàn)證碼短信呢?


    解決方案

    其實(shí)這類優(yōu)先級(jí)搶占問(wèn)題,做短信功能開(kāi)發(fā)的朋友,都應(yīng)該比較清楚,因?yàn)槔习宥缄P(guān)注的就是這個(gè)了,呵呵。一般的可行方案如下:
    • 提高BroadcastReceiver的優(yōu)先級(jí);
    • 采用動(dòng)態(tài)的方式注冊(cè)BroadcastReceiver;
    • 注冊(cè)時(shí)間要越早越好;
    基于上述三點(diǎn),我們的可以做如下優(yōu)化:
    • 監(jiān)聽(tīng)Android的開(kāi)機(jī)廣播事件BOOT_COMPLETED,提早注冊(cè)時(shí)間;
    • 啟動(dòng)后,開(kāi)啟一個(gè)Service,并在里面以動(dòng)態(tài)的注冊(cè)BroadcastReceiver;
    • 注冊(cè)的優(yōu)先級(jí)調(diào)整至最高——Integer.MAX_VALUE;
    關(guān)鍵代碼如下所示: [java] view plain copy
  • IntentFilter?filter?=?new?IntentFilter("android.provider.Telephony.SMS_RECEIVED");??
  • filter.setPriority(Integer.MAX_VALUE);??
  • registerReceiver(new?SmsReceiver(),?filter);??

  • 問(wèn)題來(lái)了

    通過(guò)上面這個(gè)方案,是可以解決部分問(wèn)題了,但這種方式完全沒(méi)有技術(shù)含量,對(duì)處于技術(shù)第一線的黑客們根本不是問(wèn)題,他們不但也采用了相同的技術(shù),而且做得更好,在”注冊(cè)時(shí)間越早越好“這一點(diǎn)上,他們添加幾個(gè)額外的觸發(fā)點(diǎn),分別如下:
    • WIFI_STATE_CHANED
    • CONNECTIVITY_CHANGE
    • ACCESS_NETWORK_STATE
    • ACCESS_WIFI_STATE
    這幾個(gè)系統(tǒng)事件,都比BOOT_COMPLETED觸發(fā)得要早,所以木馬當(dāng)然能優(yōu)先截獲到短信了。 基于這種對(duì)抗下,我們是否跟木馬就只有打成平手呢?是否有更優(yōu)的解決方案?答復(fù)是肯定的。 促進(jìn)科技發(fā)展最有效的方法就是戰(zhàn)爭(zhēng),在這種技術(shù)對(duì)抗中,同樣也是最容易產(chǎn)生新的思想方案的。

    基本思路

    既然廣播發(fā)送之后,我們有可能處于后次序。那是否有辦法,可以在廣播發(fā)送之前,做一下順序調(diào)整呢?我們知道,Android的廣播發(fā)送,都是由ActivityManagerService(AMS)做路由轉(zhuǎn)發(fā)的,所以AMS里肯定保存了各個(gè)BroadcastReceiver的信息以及次序,我們?nèi)绻修k法可以進(jìn)入到AMS里頭,再通過(guò)一些反射的技巧,是否就可以在每次發(fā)送廣播之前,調(diào)整廣播的發(fā)送順序呢?
    這個(gè)就是我要跟大家分享的技術(shù)方案——通過(guò)注入實(shí)現(xiàn)短信的絕對(duì)優(yōu)先攔截。技術(shù)的基本思路是這樣的,我們先注入到系統(tǒng)進(jìn)程——system_process,然后截獲AMS的broadcastIntent方法,加插我們的調(diào)整邏輯。
    《二》里我會(huì)著重介紹注入的技術(shù)原理,然后通過(guò)一系列的DEMO講解這個(gè)方案所涉及到的技術(shù)點(diǎn)。


    原文地址:?http://blog.csdn.net/l173864930/article/details/38455951

    總結(jié)

    以上是生活随笔為你收集整理的进击的Android Hook 注入术《一》的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。