吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 347|回复: 2
收起左侧

[原创] 新手逆向学习记录-CrackMe

[复制链接]
FZZZP 发表于 2026-5-18 16:37
一个比较简单的CrackMe文件
第一步看一下exe信息,是否加壳之类的,这个比较简单,没有涉及到加壳脱壳

exeinfo

exeinfo


接下来运行软件:

运行软件

运行软件

按照提示我们输入用户名和序列号,弹窗提示错误信息,拿到相关信息,接着打开x64dbg开始分析,打开之后先搜索字符串:

搜索字符串

搜索字符串

可以看到相关的字符串,这里我们定位到"You Get It",双击查看:

条件分支

条件分支

这里是一个跳转,根据zf寄存器的状态进行跳转。
在这里可以进行爆破,将je命令直接使用nop填充或者修改成相反的命令jne都可以实现:

nop填充

nop填充

jne跳转

jne跳转

爆破成功

爆破成功


但是我们的目的是分析序列号是怎么产生的,所以接着往上找,找一下相关的函数之类的:

比较函数

比较函数

往上一点点看到了strcmp函数,下个断点,然后重新运行输入用户名和序列号,在这里也可以看到push了一个字符串"AKA-487757",推测这个应该就是真正的序列号,重新打开软件验证确实如此,只不过还不知道这个序列号是怎么生成的,还要继续找。
一直往上翻一直到函数开始的地方,在这里下个断点,然后开始进行跟踪:

函数开头

函数开头

在这里看到我们输入的用户名了,推测序列号的产生应该跟用户名相关,一边f8单步执行一边观察,因为程序比较简单,所以很快就找到关键的地方了:

关键点-生成序列号

关键点-生成序列号

在0x402415处,有一个函数"lenbstr",它获取用户名的长度,返回值在eax里面,接着下一行把eax的值给edi,然后再跳过一行,在0x402420处,把用户名的长度乘以0x17cfb;
接下来在0x40242d处,这个函数从用户名中返回第一个字母的ascii码的值,接下来的两行把ascii码的值加到刚才计算出来的值上面;
然后在0x40243f处,这个函数把16进制的值转换成10进制,序列码的后半部分就生成了。
再往下跟就到了字符串拼接函数跟我们最开始找到的字符串比较函数了:

字符串拼接+比较函数

字符串拼接+比较函数

到这里,整个序列码的生成就分析完成了,接下来可以按照这个步骤写一个生成序列号的代码:
[Python] 纯文本查看 复制代码
username = "FZZZP"

len_username = len(username)

mid_value = len_username * 0x17cfb

first_ascii = ord(username[0])

key = mid_value + first_ascii

Serial = "AKA-" + str(key)

print(Serial)

在这里我们使用"FZZZP"作为用户名,生成的序列号为:AKA-487725
最终验证:

验证

验证




008-Afkayas.1.zip

3.88 KB, 下载次数: 7, 下载积分: 吾爱币 -1 CB

免费评分

参与人数 3吾爱币 +3 热心值 +1 收起 理由
walm + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
Tonyha7 + 1 + 1 用心讨论,共获提升!
边缘人静心 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

JiuJiHeZhen 发表于 2026-5-19 08:05
学习了。感谢大佬
xuepojie 发表于 2026-5-19 08:50
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - 52pojie.cn ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2026-5-19 08:56

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表