溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

macOS逆向初探:用HTeditor修改二進(jìn)制c程序

發(fā)布時(shí)間:2020-06-15 06:36:26 來(lái)源:網(wǎng)絡(luò) 閱讀:519 作者:ZH丶木木 欄目:安全技術(shù)

0x0 首先我們來(lái)安裝HT,命令如下

$ brew install ht

0x1 編寫(xiě)我們的第一個(gè)macOS程序:crackme 在Project中創(chuàng)建一個(gè)crackme文件夾,用來(lái)存放編寫(xiě)的源代碼和編譯結(jié)果。

$ cd Project
$ mkdir crackme
$ cd crackme

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

#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

如果沒(méi)出錯(cuò)就會(huì)生成cm01可執(zhí)行文件,如果出錯(cuò),你就要檢查下代碼是否輸入錯(cuò)誤
測(cè)試下crackme是否運(yùn)行正常
macOS逆向初探:用HTeditor修改二進(jìn)制c程序
接下來(lái)開(kāi)始破解,讓它在我們輸入任意值的時(shí)候都會(huì)輸出"Hello world!"

在終端啟動(dòng)HT,如圖macOS逆向初探:用HTeditor修改二進(jìn)制c程序
按fn+f3選擇文件,tab鍵移動(dòng)光標(biāo)到cm01并回車(chē)

macOS逆向初探:用HTeditor修改二進(jìn)制c程序

會(huì)出現(xiàn)16進(jìn)制界面,我們按fn+f6切換到反匯編界面,選擇Mach-0/image

macOS逆向初探:用HTeditor修改二進(jìn)制c程序

開(kāi)始尋找判斷數(shù)字是否正確的關(guān)鍵跳,并對(duì)其進(jìn)行修改,一個(gè)簡(jiǎn)單的方法是我們輸入一個(gè)錯(cuò)誤的數(shù)字會(huì)出現(xiàn)Incorrect secret num 我們利用這句作為突破口,按fn+f7開(kāi)始搜索 Incorrect 這里我出現(xiàn)一個(gè)坑就是Incorrect的大小寫(xiě)問(wèn)題,會(huì)提示找不到,防止掉坑,i 改為大寫(xiě)的I
mode我們選擇“display:regex”輸入Incorrect回車(chē),光標(biāo)會(huì)定位到邏輯點(diǎn)??梢钥吹?quot;Incorrect secret num"這個(gè)字符串,那么它上面的代碼就是判斷的跳轉(zhuǎn)。代碼如下

     100000ef0 !   jz         loc_100000f13

開(kāi)始修改關(guān)鍵跳,按ctrl+a修改,jz改為jnz ,回車(chē)后HT會(huì)列出所寫(xiě)匯編代碼的機(jī)器碼,HT會(huì)幫我們選擇最合適的,直接回車(chē)即可??梢钥吹阶兗t的“85”
按fn+f2保存,開(kāi)始測(cè)試crackme是否正常運(yùn)行。輸入一個(gè)錯(cuò)誤的數(shù)字會(huì)輸出“Hello,world” 證明我們已經(jīng)破解成功了,如下圖

macOS逆向初探:用HTeditor修改二進(jìn)制c程序

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

macOS逆向初探:用HTeditor修改二進(jìn)制c程序

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

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI