錦州市廣廈電腦維修|上門維修電腦|上門做系統|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共享上網,路由器設置,數據恢復,密碼破解,光盤刻錄制作等服務

    技術支持:微軟等
    主站蜘蛛池模板: 极品粉嫩嫩模大尺度无码视频| 成人免费一区二区无码视频| 国产午夜精华无码网站| 国产aⅴ无码专区亚洲av麻豆| 无套内射在线无码播放| 无码乱码观看精品久久| 精品无码久久久久国产| 日韩精品无码免费专区网站| 亚洲成a人无码亚洲成av无码| 丰满熟妇人妻Av无码区| 少妇性饥渴无码A区免费| 精品人妻系列无码人妻漫画| 欧洲无码一区二区三区在线观看| 久久中文字幕无码专区| 国产综合无码一区二区色蜜蜜 | 中文字幕人妻三级中文无码视频| 免费无码VA一区二区三区| 最新中文字幕AV无码不卡| 亚洲综合最新无码专区| 亚洲精品无码久久久久AV麻豆| 亚洲综合无码无在线观看| 精品无码一区在线观看| 日韩人妻无码精品一专区| 国产在线无码不卡影视影院| 亚洲va中文字幕无码| 亚洲精品一级无码鲁丝片| 国产精品成人99一区无码| 无码激情做a爰片毛片AV片 | 久久午夜夜伦鲁鲁片无码免费| 久久av高潮av无码av喷吹| 惠民福利中文字幕人妻无码乱精品| 国产午夜无码视频免费网站| 人妻无码久久精品| 韩国19禁无遮挡啪啪无码网站| 中出人妻中文字幕无码| 亚洲国产一二三精品无码| 无码日韩精品一区二区三区免费 | 亚洲日韩精品无码专区加勒比| 亚洲中文久久精品无码| 久久久精品人妻无码专区不卡| 成在线人免费无码高潮喷水|