首页
社区
课程
招聘
[原创]
2017-6-1 16:48 1859

[原创]

2017-6-1 16:48
1859

儿童节的礼物!!!

一、看汇编

题目说了“三无CrackMe”,那就按照规矩来,拉到IDA看看:

上图,说的是获取输入的字符后,先判断长度是否为4,那么假设输入的4个数字分别为x1,x2,x3,x4;

再判断输入的是否含“0”,由于是第二版的crackme,加上了限定条件,x1 =1, x2 =5。

继续分析:

可以看到中间进行了浮点数运算,要走到“successful”,那么必须满足条件:(x3-x1/x2)*x4*16.0 == 384.0 

二、撸代码

根据条件:(x3-x1/x2)*x4*16.0 == 384.0,得出 (x3-x1/x2)*x4 = 24.0,所以用下面的代码:

x = 0
num = 24.0
for i in xrange(1, 10):
	for j in xrange(1,10):
		for k in xrange(1,10):
			for l in xrange(1,10):
				x = (float(k)-(float(i)/float(j)))*float(l)
				if x == num:
					#print "x1 = %d, x2 = %d, x3 = %d, x4 = %d \n" % (i, j, k, l)
					print "%d%d%d%d" % (i, j, k, l)

跑出来,是15开头的,只有1555!!!

验证一下:

最后,祝大家玩的开心,多多交流 *_*


[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

收藏
点赞0
打赏
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回