首页
社区
课程
招聘
ctfshow Reverse试水 -- 一些简单题
发表于: 2024-4-9 16:20 3008

ctfshow Reverse试水 -- 一些简单题

2024-4-9 16:20
3008

浅试水记录几个低难度的题目,后面的题慢慢做吧

Baby杯

Baby_gay

文件名baby_gay.elf
无壳丢入ida,找到主要函数
图片描述
函数主要逻辑获取输入v4,对输入通过verifyPwd()函数验证
跟进查看验证函数,函数返回输入和字符串”ZGFuaXU=”的比较结果
图片描述
如果相同则输出“关键信息”:Gif4BdadxXkMLA6CXdipU3dnesRGYMzuio/D48HJ+rQ=
图片描述
不明白怎么看出来,网上找资料才知道是RC4,带入上述关键字作为秘钥可以解密
图片描述

七夕杯

签到

主函数
图片描述
找到16进制字符串用字符显示,小端序拼接获得flag
ctfshow{re_sign_is_easy_}

Eazy_magic

找到main函数
图片描述
Sub_219B为md5加密,直接逆向按位运算或S2字符串md5解密获得flag
图片描述
ctfshow{7x_flag_is_here}

萌新赛

Flag白给

文件flag.exe
查壳发现是UPX
图片描述
直接脱壳后丢入ida,根据ui功能界面判断程序通过text获取输入,点击按钮进行验证,然后通过massagebox进行输出提示,从函数或者字符串找到验证函数
图片描述
根据程序验证输入正确
图片描述

签退

Re3.pyc
在线反编译或者uncompyle6获取源码如下
图片描述
图片描述
获取关键字符串BozjB3vlZ3ThBn9bZ2jhOH93ZaH9,字符串经过两次编码,第一部分为base64,第二部分为凯撒密码,逆向解密获得flag
图片描述

数学不及格

文件:re3
64位elf文件,无壳丢入ida找到关键函数并分析如图
图片描述
程序获取到输入的4个参数后将输入转化为16进制并进行运算,得到新的4个参数v4,v10,v11,v12,通过f()函数把f4映射为f9
跟进f(),传入参数v4是一个1-200的数,然后进行for循环,循环到v4结束
图片描述
循环内算法简单,结果v9为前两位数的加和,即斐波那契数列,v9为数列第v4位
回到主函数,后续做4次if验证,对应了4个方程
图片描述
加上斐波那契数列的映射方程,可以得到以下方程组
图片描述
简单运算可得到以下关系:v4 +3 * v9 = 0x19D024E75FF,根据映射关系解出v9、v4,这里有两个思路:
一个是用数学方法硬算
从数字上v4是1-200的一个数,远小于v9,故可以直接使用加和结果除以3估算v9为591286729898,在线斐波那契数列生成网生成1-200的数列,然后进行对比发现可以对应第58项
图片描述
即v4 = 58,v9 = 591286729879,转16进制带入其他方程可以得到其他参数值:
argv1 = V10 = 0x666C61677B
argv2 = V11 = 0x6E65776265
argv3 = V12 = 0x655F686572
argv4 = 58 + 0x6543 = 0x657d
拼接后解码hex可得flag
图片描述
第二个思路是爆破
爆破斐波那契数列的每一项,直到满足v4 +3 * v9 = 0x19D024E75FF,再顺序计算其他参数,脚本如下:
图片描述
输出验证结果同上


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2024-4-17 09:10 被Deepo编辑 ,原因: 补充一些题目
收藏
免费 1
支持
分享
最新回复 (1)
雪    币: 3070
活跃值: (30876)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
感谢分享
2024-4-10 09:26
2
游客
登录 | 注册 方可回帖
返回
//