160个Creakme之010

前言

这题竟然三星,明显没有三星题的水平。他喵的就是在前两个题的基础上改的,还没有上一个题有水平。

正文

由于一个作者,大致是一样的,暴力破解的方法同前面两个,可以去翻一下我前两篇博客,不过他这次是个key加密再和一串字符比较,我们只能改跳转了,无法从寄存器里找到什么有用的信息。

接下来分析一下。(本来想偷个懒直接把汇编从OD里复制过来的,结果格式不太好调,算了)

还是OD打开,搜素错误字符串,找到程序处,下断点。(当然,找按钮事件来下断点)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YhS0oOSB-1589015963346)(https://s1.ax1x.com/2020/05/09/YlED7F.png)]

运行两遍,可以发现,上面有个循环,这个循环之前取了key的值,一看就不一般。主要的是这两个函数,取出一个字符,将字符变成ASCII值,注意下一句,

add ax,0xA

由于上一个函数结果存在eax中,所以字符的ASCII值加上了0xA。

不得不说,这里面没用的函数也太多了,下面好几个系统函数,可怜我没看出来,以为还有什么处理,硬生生打断点,运行,搞了一个多小时。心态崩了。

再往下,跳转前有个比较函数,可以稍微猜测一下,这是关键。

YlZnqf.png

跟进,遇见函数就步进,我们会找到这样的地方

YlZgL6.png

换个key试试,还是一样的字符串,可以肯定,上面加密(?)的字符和他来比较。

可以写注册机了。

注册机

依旧是python,python太简单,以至于我都不想用C\C++了。

s="kXy^rO|*yXo*m\kMuOn*+"
t=[]
for i in s:
	m=ord(i)
	t.append(chr(m-0xA))
print("".join(t))

#结果:aNoThEr oNe cRaCkEd !

YlexHK.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值