-
-
[原创]
-
发表于: 2017-6-1 16:48 2299
-
儿童节的礼物!!!
一、看汇编
题目说了“三无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!!!
验证一下:
最后,祝大家玩的开心,多多交流 *_*
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
赞赏
看原图
赞赏
雪币:
留言: