CrackMe第一题Name Serial

记录逆向学习的第一个CrackMe

ps:在逆向的时候需要多备几个OD 以免数据出错查不出来
打开 并运行软件,尝试输入账号密码,发现报错,重新尝试不同的密码同样的报错,那么就可以猜测报错的格式是固定的。(可以进行Messagebox 断点操作
在这里插入图片描述
Messagebox 第一个断点断在 763AEA80 既然弹出,窗口就需要用到

这时候注意到了右下角堆栈区被放入了 提示所用到的字符串 !
右键反汇编窗口跟随 直接到程序领空
在这里插入图片描述
右键字符串 搜索-智能搜索 找到目标 参数
找到关键跳转语句
在这里插入图片描述
右键跟随 在反汇编中 注释里找到提示 在跳转中可猜测到是关键条
!但是下了断点没有在此中断这就很奇怪了 想到之前填入的账号 333可能是长度不够
在这里插入图片描述
可能有长度判断 然后再下面找到了 这里的判断
首先 cmp 和4比较 如果位数大于等于4位就可以继续执行
在这里插入图片描述
在执行过程中 发现右边寄存器栏目有出现 类似于出现机械码的东西,而且程序还在执行可以猜测 根据账号生成对应的验证码最终对结果进行验证

在这里插入图片描述
接下来验证密码是否是 上面所显示的CW-4018-CRACKED验证码!
保持账号不变 输入进行验证
在这里插入图片描述
发现的确对ZF标志位进行了改变 断言!是根据账号生成的注册码
在这里插入图片描述
在这里插入图片描述

接下来分析如何生成注册码

PS:用这个旧OD太容易崩溃了 换一个
更换一个 名称输入 666666
在这里插入图片描述
发现这次只更新了 CW-机械码-CRACKED
在这里插入图片描述
然后找到计算 4428这个数字 的地址

0042FA87 | 8B45 F0                  | mov eax,dword ptr ss:[ebp-10]           | [ebp-10]:"6666666"
0042FA8A | 0FB600                   | movzx eax,byte ptr ds:[eax]             | 使用 1 字节的EAX 移入 eax
0042FA8D | F72D 50174300            | imul dword ptr ds:[431750]              |29h
0042FA93 | A3 50174300              | mov dword ptr ds:[431750],eax           | 431750 = 8A6
0042FA98 | A1 50174300              | mov eax,dword ptr ds:[431750]           | eax = 8A6
0042FA9D | 0105 50174300            | add dword ptr ds:[431750],eax           | 8A6+8A6
0042FAA3 | 8D45 FC                  | lea eax,dword ptr ss:[ebp-4]            | 114C = 4428
0042FAA6 | BA ACFB4200              | mov edx,acid burn.42FBAC                | 42FBAC:"CW"
0042FAAB | E8 583CFDFF              | call <acid burn.sub_403708>             |
0042FAB0 | 8D45 F8                  | lea eax,dword ptr ss:[ebp-8]            |
0042FAB3 | BA B8FB4200              | mov edx,acid burn.42FBB8                | 42FBB8:"CRACKED"
0042FAB8 | E8 4B3CFDFF              | call <acid burn.sub_403708>             |

首先将 6666666 第一个6 的 ascii码表的16进制 乘与 29 然后增加自己的一倍 转换为10进制 就得出4428

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值