1.安裝clang(如已安裝xcode則不需要)
2.安裝 ht editor
可嘗試在ht edtior 官網安裝官網只提供window版本二進位制檔案,mac上需 ./configure&&make)
本人不建議以上做法
在終端中執行 $ /usr/bin/ruby -e "$(curl -fssl
會要求輸入password 輸入電腦密碼安裝
4.建立資料夾crackme01
在終端 $ cd crackme01
建立crackme 的源**檔案 cm01.c:
$vim cm01.c
按 「a」進入編輯模式,
輸入**
#include int main()
printf("hello world!\n");
return 0;
}
(學過c語言便可以分析**)輸入完後按"ese"退出編輯模式,輸入 :wq 儲存並退出vim 若編譯錯誤可重新進行。
然後用clang 編譯 $clang cm01.c -o cm01
分別嘗試輸入 123 和345
可以得到你分析**認為得到的結果。
5.使用ht 破解(使得無論輸出123 或345 得到的結果都是hello world)
首先了解
jnz
指令:與jz
指令正好相反,不相等則跳轉;
jmp
指令:不管任何情況都會進行跳轉;
call
指令:呼叫過程指令,一般對應高階語言中的函式呼叫。
開始對生成的檔案進行操作 ==
命令行內執行 如圖所示
得到
mac上 fn+f3 search clang cm01.c生成的cm01檔案
切到反彙編介面 按fn+f6 得到select mode 對話方塊
選擇 mach-0/image得到
之前知道jz指令為相等跳轉指令而jnz為不相等跳轉指令
找到jz指令那一行 快捷鍵control+a
修改jz.......... 改為jnz.........將得到紅色的數字85 按fn+f2儲存 檔案儲存後紅85消失。
接下來可crackme 程式,得到的便是無論輸入123或345都是得到hello world的結果。
軟體需求與分析 認識
沒有技術背景很難真正成為乙個優秀的軟體需求分析師,最多也就是乙個業務需求分析師。菜鳥的軟體需求分析知識體系架構 個人認識 我以為對於軟體需求來說,我感覺並不需要什麼具體的知識體系,會侷限我們的想法 我的意思是不要讓思想拘束起來,解決了本質問題的就是好方法 私以為 需求的目的是做出 符合 的軟體,使用...
認識與分析日誌檔案
日誌檔案可以幫助我們了解很多系統重要的事件,包括登入者的部分資訊,因此日誌檔案的許可權通常是設定為僅有root能夠讀取而已。那麼常見的日誌檔案有那些?可檢視crontab排程是否被執行?進行過程是否發生錯誤?編寫是否正確?記錄系統在開機的時候核心檢測過程所產生的各項資訊。記錄系統上面所有的賬號最近一...
指標之初認識與分析。
今天讓我們一起來認識c語言中最棒的指標。首先指標是什麼呢?簡單的說,指標就是位址。但是它的完整定義是 指標是程式語言中的乙個物件,利用位址,它的值直接指向存在電腦儲存器中另乙個地方的值。由於通過位址能找到所需的變數單元,可以說,位址指向該變數單元。因此,將位址形象化的稱為指標。意思是通過它能找到以它...