首页
论坛
专栏
课程

[调试逆向] [系统底层] [原创]XCTF 攻防世界 reverse 萌新入坑 csaw-ctf-2016-quals Rock writeup

2019-2-28 11:42 2090

[调试逆向] [系统底层] [原创]XCTF 攻防世界 reverse 萌新入坑 csaw-ctf-2016-quals Rock writeup

2019-2-28 11:42
2090
下载题目后,发现时ELF文件,直接用IDA打开,进入main函数

初步分析程序的运行逻辑以及对flag的处理,除输入输出flag外,关键的两个函数分别为sub_4015DC((__int64)&v23, (const std::string *)&v18); 和 sub_4016BA((__int64)&v23);
即:

进入__int64 __fastcall sub_4015DC(__int64 a1, const std::string *a2)后,发现字符串FLAG23456912365453475897834567,猜测可能是正确答案,分别以各种flag格式提交都不正确, 继续查看下一函数

在bool __fastcall sub_4016BA(__int64 a1)函数中,初步分析后,flag长度应该为30,之后进行两次异或操作
对返回字符串进行逆异或运算:
str = 'FLAG23456912365453475897834567'
print(len(str))
flag = ''
for i in str:
flag += chr((((ord(i) -9) ^0x10) -20)^0x50)
print(flag)
输出:IoDJuvwxy\tuvyxwxvwzx{\z{vwxyz
放入Ubuntu测试:

结果为:Flag{IoDJuvwxy\tuvyxwxvwzx{\z{vwxyz}


[推荐]看雪企服平台,提供安全分析、定制项目开发、APP等级保护、渗透测试等安全服务!

上传的附件:
  • rock (14.40kb,6次下载)
上一主题 下一主题
最新回复 (3)
罗小墨 2019-3-4 09:18
2
0
谢谢分享
罗小墨 2019-3-28 14:31
3
0
提交上去结果不对,请问flag格式是什么?
For肖 2019-4-5 11:03
4
0
就是上面的啊
游客
登录 | 注册 方可回帖
返回