暑期CTF练习——第四周

本文介绍了在攻防世界reverse进阶区的notsequence挑战中,如何解决验证杨辉三角性质的问题。通过分析代码,发现两个关键函数分别验证了杨辉三角的行和为2^(n-1)以及斜线数字和的特性。最终通过Python实现,得到了flag:RCTF{37894beff1c632010dd6d524aa9604db}。
摘要由CSDN通过智能技术生成

攻防世界reverse进阶区notsequence

其实这题在我做完逆向题目最基本的操作后就卡死了,数学渣渣在此膜拜杨辉,没看到wp之前实在想不到这是个验证杨辉三角的算法……

查壳,找main函数之类的都省略吧,我们看到main函数生成的伪代码
在这里插入图片描述
可以看到有两个check,执行完后判断个什么20次再转换MD5即可得到flag

先看下这两个check上的函数吧

sub_80486CD
在这里插入图片描述
这个是验证杨辉三角的某条定理:第n行数字的和为2^(n-1)

第14行就是表示验证2^v5==v3

sub_8048783
在这里插入图片描述
这是杨辉三角的另外一个特征:斜线上数字的和等于其向左(从左上方到右下方的斜线)或向右拐弯(从右上方到左下方的斜线),拐角上的数字。1+1=2,1+1+1=3,1+1+1+1=4,1+2=3,1+2+3=6,1+

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值