溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

macOS逆向初探:用HTeditor修改二進制c程序

發布時間:2020-06-15 06:36:26 來源:網絡 閱讀:546 作者:ZH丶木木 欄目:安全技術

0x0 首先我們來安裝HT,命令如下

$ brew install ht

0x1 編寫我們的第一個macOS程序:crackme 在Project中創建一個crackme文件夾,用來存放編寫的源代碼和編譯結果。

$ cd Project
$ mkdir crackme
$ cd crackme

使用系統自帶的vim創建crackme的源代碼文件cm01.c
$ vim cm01.c
這時可以看到vim的編輯界面
macOS逆向初探:用HTeditor修改二進制c程序
在鍵盤上按a鍵進入編輯模式,輸入以下代碼

#include <stdio.h>
int main() {
    int secret = 0;
    printf("Please enter the secret num:");
    scanf("%d", &secret);
    if (secret != 123) {
        printf("Incorrect secret num.\n");
        return 0;
    }
    printf("Hello world!\n");
    return 0;
}

完成后按esc鍵退出編輯模式,輸入:wq保存并退出vim
然后用clang編譯

$ clang cm01.c

如果沒出錯就會生成cm01可執行文件,如果出錯,你就要檢查下代碼是否輸入錯誤
測試下crackme是否運行正常
macOS逆向初探:用HTeditor修改二進制c程序
接下來開始破解,讓它在我們輸入任意值的時候都會輸出"Hello world!"

在終端啟動HT,如圖macOS逆向初探:用HTeditor修改二進制c程序
按fn+f3選擇文件,tab鍵移動光標到cm01并回車

macOS逆向初探:用HTeditor修改二進制c程序

會出現16進制界面,我們按fn+f6切換到反匯編界面,選擇Mach-0/image

macOS逆向初探:用HTeditor修改二進制c程序

開始尋找判斷數字是否正確的關鍵跳,并對其進行修改,一個簡單的方法是我們輸入一個錯誤的數字會出現Incorrect secret num 我們利用這句作為突破口,按fn+f7開始搜索 Incorrect 這里我出現一個坑就是Incorrect的大小寫問題,會提示找不到,防止掉坑,i 改為大寫的I
mode我們選擇“display:regex”輸入Incorrect回車,光標會定位到邏輯點??梢钥吹?quot;Incorrect secret num"這個字符串,那么它上面的代碼就是判斷的跳轉。代碼如下

     100000ef0 !   jz         loc_100000f13

開始修改關鍵跳,按ctrl+a修改,jz改為jnz ,回車后HT會列出所寫匯編代碼的機器碼,HT會幫我們選擇最合適的,直接回車即可??梢钥吹阶兗t的“85”
按fn+f2保存,開始測試crackme是否正常運行。輸入一個錯誤的數字會輸出“Hello,world” 證明我們已經破解成功了,如下圖

macOS逆向初探:用HTeditor修改二進制c程序

但是這樣的破解并不完美,想要在任何情況下都輸出Hello World,將je改為jmp即可。再測試一下

macOS逆向初探:用HTeditor修改二進制c程序

0x3 我們輸入什么都會提示成功,到這里我們第一個crackme就破解成功了。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女