IDA Pro——CrackMe.exe调试

版本:IDA pro 6.1(看雪学院下载)

1.配置
1)菜单Option配置,只对当前项目有效
2)ida.cfg文件配置

2.主界面
这里写图片描述
蓝色代码段,棕色数据段,红色内核

窗口管理
这里写图片描述

名字窗口(Names window):
这里写图片描述
F:导入函数/自己写的函数
I:导入函数/自己写的
A:字符串
L:库函数
D:全局的命令代码

函数窗口
这里写图片描述
Sub子程序
loc地址
byte8位数据
word16位数据
dword双字数据
unk未知的

3.自定义结构体
IDA之所以在分析阶段无法识别结构体,可能源于两个原因。
第一种:了解结构体,但没有判断出程序使用了结构体。
第二种:不了解结构体,即程序中用的结构体是非标准结构体。

例如,对于自定义的Student结构体:

struct student
    { int id;
      char name[20];
      int age;
    };

方法一:手工建立结构
结构体管理面板–>Insert键–>输入结构体名称Student
加入数据(id、age等):选中Student ends那一行–>D 创建数据,默认名为field_0–>N 修改名字为id/age–>D 切换数据类型db、dw、dd。
加入ASCII字符(name等):A 创建数组
方法二:C头文件导入结构 Loadfile–>Parse C header file

定义好结构体后,找到对应的代码(必须选中所有结构体的代码),菜单Edit–>Struct var–>选择student,数据按照结构体显示
这里写图片描述

修改结构体的偏移量:选中所有要替换的代码–>菜单Edit–>Offset–>选择student自动修改
这里写图片描述

4.自定义枚举类型
打开枚举窗口–>insert添加枚举类型–>N 添加枚举成员(名字对应数字)–>选中对应代码中数字–>M

CrackMe.exe调试

这里写图片描述

1.找到“序列号不对,重新再试一次!”提示信息;
2.往前找cmp、test、je、jne等表示比较的指令;
3.找到关键代码
这里写图片描述
4.爆破:让004010C9一句不跳转(用OD、WinHex等修改文件)
方法一:把jne改成je即可,修改寄存器
方法二:改成空指令,即nop指令:jne2字节,用两个nop指令替代
5.找到正确序列号:
打开文件,跳到.data区块,发现数字即正确密码。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值