錦州市廣廈電腦維修|上門維修電腦|上門做系統|0416-3905144熱誠服務,錦州廣廈維修電腦,公司IT外包服務
topFlag1 設為首頁
topFlag3 收藏本站
 
maojin003 首 頁 公司介紹 服務項目 服務報價 維修流程 IT外包服務 服務器維護 技術文章 常見故障
錦州市廣廈電腦維修|上門維修電腦|上門做系統|0416-3905144熱誠服務技術文章
【練手】阿里crackme的新解法-frida

作者: watchdoge  日期:2017-05-16 19:53:31   來源: 本站整理

 
 


最近在看FrIDA,又看壇子里PJ頭狼的帖子http://www.52pojie.cn/thread-559205-1-1.html,

于是順手用frida來試試,對于這題frida有個很大的優勢,就是不會觸發反調試,這樣就節省了很多功夫。
先簡單介紹下frida,frida是一款代碼插樁工具,它可以向windows,macOS,Linux,iOS,Android等平

臺的原生應用中注射自定義的JavaScript代碼片段,它的主要作用有:

  • Access process memory
  • Overwrite functions while the application is running
  • Call functions from imported classes
  • Find object instances on the heap and use them
  • Hook, trace and intercept functions etc.

0x01 簡單地繞過驗證
如果只是想繞過驗證的話,那么非常簡單,通常思路是反編譯成smali文件然后編輯這里的代碼,

然后重新打包簽名,不過這里我們用frida也很容易實現,用下面的代碼在java層hook住這個securityCheck函數,直接重新編寫其邏輯:

[JavaScript] 純文本查看 復制代碼
1
2
3
4
5
6
7
8
send("Running Script");
Java.perform(function(){
    MainActivity = Java.use("com.yaotong.crackme.MainActivity");
    MainActivity.securityCheck.implementation = function(v){
        send("securityCheck hooked");
        return true;
    }
});


0x02 獲取密碼
我們的主要目的當然還是獲取到正確的密碼,這個程序的具體情況不細說了,

感興趣的可以自己分析或者看頭狼的那篇帖子,其驗證邏輯如下:
 
最核心的就是將我們的輸入與off_628c所指向的值做比較,而我們在這里用frida來獲取程序運行時該處的值,frida提供了劫持native函數以及操作內存的一系列方法,首先我們需要通過導出函數表獲取securityCheck這個函數的地址

[JavaScript] 純文本查看 復制代碼
1
2
3
4
5
6
7
8
9
var securityCheck = undefined;
    exports = Module.enumerateExportsSync("libcrackme.so");
    for(i=0; i<exports.length; i++){
        if(exports[i].name == "Java_com_yaotong_crackme_MainActivity_securityCheck"){
            securityCheck = exports[i].address;
            send("securityCheck is at " + securityCheck);
            break;
        }
    }

然后就是讀取off_628C的值了,在ida的exports里可以看到該函數的偏移為0x11A8,因此可以通過函數當前地址減0x11A8再加0x628C,然后用Memory.readPointer獲取該處所指向的地址,最后用Memory.readUtf8String讀取最終的結果,所有的代碼如下:
[Python] 純文本查看 復制代碼
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/usr/bin/env python
# coding=utf-8
from __future__ import print_function
import frida,sys
 
native_hook_code = """
Java.perform(function(){
    send("Running Script");
 
    var securityCheck = undefined;
    exports = Module.enumerateExportsSync("libcrackme.so");
    for(i=0; i<exports.length; i++){
        if(exports[i].name == "Java_com_yaotong_crackme_MainActivity_securityCheck"){
            securityCheck = exports[i].address;
            send("securityCheck is at " + securityCheck);
            break;
        }
    }
 
    Interceptor.attach(securityCheck,{
        onEnter: function(args){
            send("key is: " + Memory.readUtf8String(Memory.readPointer(securityCheck.sub(0x11a8).add(0x628c))));
        }
    });
});
"""
 
check_hook_code = """
    send("Running Script");
Java.perform(function(){
    MainActivity = Java.use("com.yaotong.crackme.MainActivity");
    MainActivity.securityCheck.implementation = function(v){
        send("securityCheck hooked");
        return true;
    }
});
"""
 
def on_message(message, data):
    if message['type'] == 'send':
        print(" {0}".format(message['payload']))
    else:
        print(message)
 
process = frida.get_device_manager().enumerate_devices()[-1].attach("com.yaotong.crackme")
script = process.create_script(native_hook_code)
script.on('message', on_message)
script.load()
sys.stdin.read()

結果如圖:
 

 



熱門文章
  • 機械革命S1 PRO-02 開機不顯示 黑...
  • 聯想ThinkPad NM-C641上電掉電點不...
  • 三星一體激光打印機SCX-4521F維修...
  • 通過串口命令查看EMMC擦寫次數和判...
  • IIS 8 開啟 GZIP壓縮來減少網絡請求...
  • 索尼kd-49x7500e背光一半暗且閃爍 ...
  • 樓宇對講門禁讀卡異常維修,讀卡芯...
  • 新款海信電視機始終停留在開機界面...
  • 常見打印機清零步驟
  • 安裝驅動時提示不包含數字簽名的解...
  • 共享打印機需要密碼的解決方法
  • 圖解Windows 7系統快速共享打印機的...
  • 錦州廣廈電腦上門維修

    報修電話:13840665804  QQ:174984393 (聯系人:毛先生)   
    E-Mail:174984393@qq.com
    維修中心地址:錦州廣廈電腦城
    ICP備案/許可證號:遼ICP備2023002984號-1
    上門服務區域: 遼寧錦州市區
    主要業務: 修電腦,電腦修理,電腦維護,上門維修電腦,黑屏藍屏死機故障排除,無線上網設置,IT服務外包,局域網組建,ADSL共享上網,路由器設置,數據恢復,密碼破解,光盤刻錄制作等服務

    技術支持:微軟等
    主站蜘蛛池模板: 亚洲AV无码一区二三区| 亚洲Av永久无码精品一区二区| 久久激情亚洲精品无码?V| 中文有无人妻vs无码人妻激烈 | 亚洲精品无码久久久久| 亚洲一区二区三区无码国产| 亚洲AV无码一区二区三区国产| 人妻无码αv中文字幕久久琪琪布| 人妻少妇伦在线无码| 免费无码一区二区三区| 人妻丰满熟妇AV无码区HD| 国产精品无码一区二区在线观| 中文无码字慕在线观看| 久久久久亚洲AV片无码| 国产精品无码久久久久| 成在人线AV无码免费| 亚洲a无码综合a国产av中文| 中文字幕无码精品亚洲资源网久久 | 伊人久久无码中文字幕| 无码任你躁久久久久久久| 亚洲av无码一区二区三区四区| av无码免费一区二区三区| 亚洲av无码一区二区三区不卡 | 国产成人无码AV一区二区在线观看| 中文字幕人成无码免费视频| 日木av无码专区亚洲av毛片| 国产AV无码专区亚洲AVJULIA| 黑人无码精品又粗又大又长| 国产成人无码精品久久二区三区| 国产精品无码AV天天爽播放器| 亚洲AV无码一区二区三区性色 | av无码人妻一区二区三区牛牛| 中文字幕精品无码一区二区 | 成年无码av片完整版| 国产日产欧洲无码视频无遮挡| 久久久久无码专区亚洲av| 中文无码精品一区二区三区| 亚洲国产综合无码一区| 日韩AV无码久久一区二区| 一本大道在线无码一区| 日韩人妻系列无码专区|