2020SNS-个人CTF-Reverse-学霸的游戏

这篇博客介绍了参与2020年SNS个人CTF比赛时遇到的一道逆向题目。通过分析题目、检查程序无壳、使用IDA进行字符串查找和反编译,作者逐步揭示了输入特定水果名称以获取flag的逻辑。经过函数分析,确定首字母为c,后续输入cherry和其他选项,最终发现正确答案是watermelon。
摘要由CSDN通过智能技术生成


每天一题,只能多不能少

学霸的游戏

题目分析

简单的逆向+基础英语能力=正确的输入–>get flag

开始

1.题目

给了一个程序,“学霸的游戏”。尝试运行
题目
输入水果的名称,初步判断就是去逆向分析得到正确的值然后输入就可以得到flag了。

2.查壳

无壳

3.IDA分析

丢进IDA

(1)查字符

习惯性shift+F12查strings。
strings
这题比较简单,字符不多。可以直接定位到疑似产生flag的地方。

(2)定位字符并交叉引用

定位字符

(3)反编译

F5反编译,得到伪代码。据出题的大神说伪代码与真实的C基本一样,尴尬。不过不管一样不一样,逻辑没问题就不影响我们逆向。
反编译

(4)函数分析

首先是输入的第一个字符串,首字母必须是c。然后进入check函数:

int __cdecl check(char *a1)
{
  char v2; // [esp+1Fh] [ebp-9h]

  v2 = 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值