dns 概念:
dns 網域名稱解析系統,解析成相應的伺服器ip, dns劫持是指在劫持的網路範圍內攔截網域名稱解析的請求,分析請求的網域名稱
由於dns請求報文是明文狀態,可能在請求過程被監測,然後偽裝dns伺服器傳送帶有假ip位址的響應報文,從而使主機訪問假的伺服器。
localdns
localdns 是常見ios本地的dns解析方式,不依賴http請求 , 在網路發起請求時,通過nsurlprotocol 攔截請求網域名稱 進行本地解析 獲得 ip 位址 , 實際開發中可使用httpdns解析網域名稱獲得ip位址,也可以自己設定ip池。
nsurlprotocol
上面提到 nsurlprotocol 是網路攔截的關鍵,可通過子類化來定義新的或已存在的url載入行為 如:
. 攔截載入請求,返回特定資料
.對發出請求的header進行格式化
.過濾請求和返回中的敏感資訊
因為專案需要攔截wkwebview 載入,通過ip直連的方式防止dns劫持,首先hook wkwebview 註冊 nsurlprotocol子類
+ (void)wk_registerscheme:(nsstring *)scheme}+ (void)wk_unregisterscheme:(nsstring *)scheme
}
具體nsurlprotocol子類實現請看dmeo
參考: nsurlprotocol
oracle一點記錄
檢視資料庫例項名 service name sql select instance name from v instance 如何知道oracle客戶端是32位還是64的。windows下啟動sqlplus,看到是sqlplus32即32位,看到sqlplus即是64位。pl sql在64為客戶端不...
hook api的一點記錄
hook api方法不外乎有修改匯入表和修改目標函式 讓其調整到hook函式處執行。這裡僅僅說下後者。後者主要實現為 通過鉤子將 注入到目標程序 簡單點就通過鉤子載入dll的方式來hook 複雜點的話就 使用建立遠端執行緒的方式來進行 然後通過修改要注入的目標函式其實幾個位元組 一般來說是5個位元組...
kvo 的一點記錄
observevalueforkeypath ofobject change context 呼叫方法是裡 object 被觀察物件 observer 觀察物件 forkeypath裡面帶上property的name,如uiview的frame center等等 options 有4個值,分別是 n...