HT Editor:是一个开源跨平台的十六进制编辑器,但他的功能可远远不止十六禁止编辑器这么简单,它还有强大的反汇编/汇编功能。支持X86/X64/Arm/Power等多种处理器。
-
安装HT Editor:
使用Brew安装:
brew install ht
- 创建目标源文件cm01.c
#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;
}
- 使用clang编译源文件
clang cm01.c -0 cm01 - 使用HT Editor进行破解 终端执行ht, 打开Ht Editor;
fn+F3选择目标文件 回车选定目标文件 (或在直接输入目标文件地址)
空格键选择mode,使用上下键选择 Mack-0/images
使用search功能搜索程序会提示的一句“Incorrect secret num” ,Fn+F7 调出搜索界面, 使用tab选中mode,使用上下键选择dispaly:regex
在e中输入“Incorrect” 使用空格键选中 【x】caselnsensitive
按回车搜索, 光标会定位到要搜索的地方
ctrl+a修改这里的汇编代码成 jnz loc_100003d1d ,按Tab键选择OK ,回车确认修改;
按fn + F2保存修改后的文件;在终端执行cm01文件:
./cm01
环境:MacOS11.2.3
相关汇编指令:
- jz:跳转指令,可以理解成如果前面比较指令的比较结果相融则跳转到指定地址,如果不想等就不会跳转,继续执行它下面的指令;
- jnz:与zh指令正好相反,不想等则跳转;
- jmp:不管任何情况都会进行跳转;
- call:调用过程指令,一般对应高级语言中的函数调用;