攻防世界-wp-REVERSE-新手区-7-game

题目来源:

CTF

题目描述:

菜鸡最近迷上了玩游戏,但它总是赢不了,你可以帮他获胜吗

题目附件:

e3dd9674429f4ce1a25c08ea799fc027

题目思路:

main函数反编译,分析代码逻辑,构造脚本

解题过程:

打开发现是一个游戏,直接输入12345678就能直接拿到flag

在这里插入图片描述

用IDA静态分析:在函数中搜索main,进入main函数,按F5进行反汇编

int __cdecl main(int argc, const char **argv, const char **envp)
 {
	int result; // eax
	
main_0();
return result;
}

跳转到main_0函数,分析代码,当所有灯点亮时,进入sub_13F7AB4(),跳转到该函数

int sub_13F7AB4(void)
	{
	  return sub_13FE940();
	}

这是关键的输出flag的函数。

分析代码,发现是创建了两个长度为57的字符串,并进行运算。

把sub_13F7AB4()函数翻译成python脚本就是

a=[18,64,98,5,2,4,6,3,6,48,49,65,32,12,48,65,31,78,62,32,49,32,
	   1,57,96,3,21,9,4,62,3,5,4,1,2,3,44,65,78,32,16,97,54,16,44,
	   52,32,64,89,45,32,65,15,34,18,16,0]
b=[123,32,18,98,119,108,65,41,124,80,125,38,124,111,74,49,
	   83,108,94,108,84,6,96,83,44,121,104,110,32,95,117,101,99,
	   123,127,119,96,48,107,71,92,29,81,107,90,85,64,12,43,76,86,
	   13,114,1,117,126,0]
i=0
c=''
while (i<56):
    a[i]^=b[i]
    a[i]^=19
    c=c+chr(a[i])
    i=i+1
print (c)

zsctf{T9is_tOpic_1s_v5ry_int7resting_b6t_others_are_n0t}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Scorpio-m7

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值