frida hook工具使用

frida基礎(chǔ)

  1. 下載好對應(yīng)的 frida server庭敦,這個在官方的GitHub release頁面去找,注意如果用電腦模擬器(如夜神模擬器鸽照,則對應(yīng)架構(gòu)位x86)
  2. adb連接模擬器螺捐,push 第一步下載好的server到目錄 /data/local/tmp (一般是這個目錄)颠悬,chmod a+x后啟動
  3. pip install frida frida-tools
  4. 輸入 frida-ps -U 可以看到手機的進程列表矮燎,此時就配置成功了

編寫、運行hook 腳本

frida -U -l exploit.js -f com.xxx.yyy

如果要一個string

var x = Java.use("java.lang.String").$new("xxxxxxxx")

如果要用到某個類的某個方法

Java.use("com.xxx.yyy").method(param1, param2)

整個過程其實有點像java的反射

如果要hook某個方法

Java.perform(function() {
    var class = Java.use("com.xxx.yyy")
    classs.方法名.implementation = function(param1, param2){
      send();
            return this.xxxx            
    }
})

示例

hook rsa加密

一次比賽中赔癌,有一個關(guān)卡是破解apk诞外,jadx獲得源碼發(fā)現(xiàn)是一個RSA加密,這里有個坑搞了半天

安卓的RSA和java包中的實現(xiàn)不一樣灾票,需要手動下載一個 BouncyCastleProvider.jar 包峡谊,引入項目后修改代碼即可運行

其實最簡單的方案就是用frida進行hook

實現(xiàn)的代碼如下:

function main(){
    Java.perform(function(){
        var enc = Java.use("java.lang.String").$new("F3RSCi59ewpMm+dIGtiAn752tBQ0TPx7tCayrCXrrwyG2gtlUJ3C82rcrfgg2A4X7XfhXWGidsJgGDzbD9JwvzGbKMHTK5kxJUf1EJ605R/Rv2N+6Jtr54wQAKbqGyU8g/rUhLUf/EgNqPPYTQ6fa4LqFEMTrPm/UZMvL/4yTNhFoM5vQbceQeD9QNATh6kdYEzLfRdWbv/ESllURlgZbQsc7+pHC8Sg9wVh/2MGZHKzZI8a67Usqhk8ojmfgN5ABodQ2z1DOCICg7AH+l+3fx6eOn1dup/Q1hpCHVCgtojMOPfoLcxICY5LkSonrFjAKzv4JHO/f5ihFXX8Dr4MFw=="); // new一個string
        var PrivateKey = Java.use("java.lang.String").$new("MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDcscawF6Fy4Smk\nqwOy2W/IcewNTYzHe9ZFV6w1dqrZ+sRBRD6Sapv7k4deLF9ziYsWXfcDNuvG2HN6\nAgk6CeN5QHUj7OiJmTnitHAQFIw7Ed6O3uyE64i3dhZIKh7oAies6EMpfKusXIZ6\nt1lFwVVpPjlrW6435j/nW5X0OeaRRk89zOxIbzAhS0yxArkMSecy9lr+UwzWQhFO\nW4+O/ywesds9VdCuycx2S/1zbG7BwJP507nTxstLkUnet0BHqXH3tH8cRXXDyFo1\n13gBgrBZ7Y79Z7T39B+21qq7RxfwvPDqu6Rq3p9cOUQCwfJSWlHYBVtYOME04vZP\nkZj/PqLhAgMBAAECggEBAL9QLRkBoydfISZqSW6FJ23vs91kWKGlLH44HkTKdhk4\nVWDus/9hA472uOZeOPCDT1s4YaUbuxBJGvGtSipR4CuAQQu/l2WQuqlYGb0W0ulx\n+CiJ/ybKt12ytGYifWBKXfJ59Z7FQFzOaJWA05awnkX5dvUmKMS0iLkan8dzWfic\nCn379Jn/bLmRXSTKgWNMi9toT4kNhnr2/cf1ah1i2MHHZb4ZMdC9rqnSvyzFRAFM\nuess0Qg8ckyoNzx2daP9vXapn8rg6B/MFBZqjorwyv0KJms/S6W/YKw88OixM/J3\nxlBsk8QHJqaL5IZW6/QeIHJk4K6o9+3fTxtHEjcWoAECgYEA8ASApzgATrHUFVdT\nZ6ZohLFMyQQZzaKLtZhBRfenASrWQSpHHcGdF15C45fik/vohZvF/byrHLkwvosp\nvC6BHyF7toJDrTEWBo/xymGNYmovr0keMUc3T4aRomaERz0gY8CLhKpHMKJrVtgj\nkHlAGqkRZB6AAlcEQUSOyvYziyECgYEA62Pg4xMw1BfJKSfLhCoaWHeWBMAbuZ8K\ncEOLIO8CtGKwXRLBe6MUKTDnHt7aXawVd/j6jk27uhD8p1noYqbsAexzMIKAAzic\nI6fsCVgUfvRZzhaQ98xyBO34AmAtzhJQEg65TnybyEf8tC5xPSegCzzYA5w8QfaM\necRq8V8R38ECgYEAkRNXpDuATBDGzaN8AXGfSV1VuUcmRZpTcg82nREFO/pliPwC\nAmVuC5rpOWIsDSC9ukyezzEECJeTdAjv0BQX7fYyLe3s9DlwQ8Ur9BUk/XCLpBrB\nCi4uq33+dzgaCmlTM5hFfInj/+ycjuCUFpaDfdnlbivVWhS4uK601M8d9qECgYEA\nuxel1ZaZRtqo/tcsgZ3dVtemG5x97OmmKFjnKoQOiEWwnCmeM6EJEzxVV0oWEkIG\nxlbU/2p1fYym5HUnqdG24EiJvdLb4LOMFyMPDtY9ZDLfdlilXO/Y6GYkq+66OYKA\ntfmR+/o679OX3bbUNqFaKdRwdV4m3t8SBG7D+Zlw4YECgYAp2B4F1WOu5H/P0yC6\n6Hn/FGcQec8ty6MCPlH1km9dQBS3jMvBAFpmnMv+hWiR4W93tOHRqRndR6VFC/dX\n+io76NklgjQGteUJ/Nawhg0sDpWCUGECRypwbNTgmhcrmu/RF1B22rO8sckPXXeB\nDzVmjKFXgpDDIJ0eDUTQbqEEMw=="); // new一個string
        var encB64Decode = Java.use("com.chaos.view.example.Base64Utils").decode(enc); // 調(diào)用Base64Utils的decode方法
        var loadPrivateKey = Java.use("com.chaos.view.example.RSAUtils").loadPrivateKey(PrivateKey); // 調(diào)用RSAUtils的loadPrivateKey方法

        var res = Java.use("java.lang.String").$new(Java.use("com.chaos.view.example.RSAUtils").decryptDataPrivate(encB64Decode, loadPrivateKey)); // 調(diào)用RSAUtils的decryptDataPrivate解密方法
        
        var qaq = Java.use("com.chaos.view.example.Qaq").decode(res, 127);
        console.log(qaq);
    })
 
}
setImmediate(main)

調(diào)用 frida -U -l xxx.js

問題

沒辦法直接hook MainActivity的方法,畢竟需要實例化才行的

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末刊苍,一起剝皮案震驚了整個濱河市既们,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌正什,老刑警劉巖啥纸,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異婴氮,居然都是意外死亡斯棒,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進店門主经,熙熙樓的掌柜王于貴愁眉苦臉地迎上來荣暮,“玉大人,你說我怎么就攤上這事罩驻∷胨郑” “怎么了?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長砾跃。 經(jīng)常有香客問我百揭,道長,這世上最難降的妖魔是什么蜓席? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任器一,我火速辦了婚禮,結(jié)果婚禮上厨内,老公的妹妹穿的比我還像新娘祈秕。我一直安慰自己,他們只是感情好雏胃,可當(dāng)我...
    茶點故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布请毛。 她就那樣靜靜地躺著,像睡著了一般瞭亮。 火紅的嫁衣襯著肌膚如雪方仿。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天统翩,我揣著相機與錄音仙蚜,去河邊找鬼。 笑死厂汗,一個胖子當(dāng)著我的面吹牛委粉,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播娶桦,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼贾节,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了衷畦?” 一聲冷哼從身側(cè)響起栗涂,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎祈争,沒想到半個月后斤程,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡铛嘱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年暖释,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片墨吓。...
    茶點故事閱讀 40,030評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡球匕,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出帖烘,到底是詐尸還是另有隱情亮曹,我是刑警寧澤,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站照卦,受9級特大地震影響式矫,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜役耕,卻給世界環(huán)境...
    茶點故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一采转、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧瞬痘,春花似錦故慈、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至津辩,卻和暖如春拆撼,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背喘沿。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工闸度, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人摹恨。 一個月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓筋岛,卻偏偏與公主長得像,于是被迫代替她去往敵國和親晒哄。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,976評論 2 355

推薦閱讀更多精彩內(nèi)容