当前位置: 首页 > news >正文

BUUCTF[2019红帽杯]easyRE

进入ida,shift+F12,查找flag没有结果,有可疑字符串进入

双击黄色部分,然后F5看伪代码

先是异或加密

v12="Iodl>Qnb(ocy"

v12=list(v12) # 转为字符列表

for i in range(0,len(v12)):

v12[i]=ord(v12[i]) #字符转ASCII码

v12.append(127) # 补第13字节:127

v13="y.i"

v13=list(v13)

for i in range(0,len(v13)):

v13[i]=ord(v13[i])

v12.extend(v13) #v13拼接到v12后

v12.append(127)

v14="d`3w}wek9{iy=~yL@EC"

v14=list(v14)

for i in range(0,len(v14)):

v14[i]=ord(v14[i])

v12.extend(v14) #v14拼接到v12后

print(v12)

v15=''

for i in range(0,len(v12)):

v15+=chr(v12[i]^i)

print(v15)

输出:Info:The first four chars are `flag`

接着是十个base64加密后得v11=off_6CC090

厨子解

十个base64解密得一个网址,进入之后是文章,说明找错了不是flag

注意到off_6CC090下面有数据

进入sub_400D35

v4=v1

f和g可以想到是flag中的,恰好byte_6CC0A0[0]和byte_6CC0A3中间还有两个数据,所以v4分别异或0x40,0x35,0x20,0x56得到'flag'

'flag' ^ 0x40,0x35,0x20,0x56求出v4

j=0 → byte_6CC0A0[0] ^ v4[0]

j=1 → byte_6CC0A0[1] ^ v4[1]

j=2 → byte_6CC0A0[2] ^ v4[2]

j=3 → byte_6CC0A0[3] ^ v4[3]

j=4 → byte_6CC0A0 [4] ^ v4 [0](4%4=0,循环使用第 0 字节)

脚本求出flag

byte_6cc0a0=[0x40,0x35,0x20,0x56,0x5d,0x18,0x22,0x45,0x17,0x2f,0x24,0x6e,0x62,0x3c,0x27,0x54,0x48,0x6c,0x24,0x6e,0x72,0x3c,0x32,0x45,0x5b] tmp=[102,108,97,103] #flag的ASCII码 v4=[] for i in range(0,4): v4.append(tmp[i]^byte_6cc0a0[i]) print(v4) flag='' for i in range(0,25): flag+=chr(byte_6cc0a0[i]^v4[i%4]) print(flag) byte_6cc0a0=[0x40,0x35,0x20,0x56,0x5d,0x18,0x22,0x45,0x17,0x2f,0x24,0x6e,0x62,0x3c,0x27,0x54,0x48,0x6c,0x24,0x6e,0x72,0x3c,0x32,0x45,0x5b] tmp=[102,108,97,103] #flag的ASCII码 v4=[] for i in range(0,4): v4.append(tmp[i]^byte_6cc0a0[i]) print(v4) flag='' for i in range(0,25): flag+=chr(byte_6cc0a0[i]^v4[i%4]) print(flag) byte_6cc0a0=[0x40,0x35,0x20,0x56,0x5d,0x18,0x22,0x45,0x17,0x2f,0x24,0x6e,0x62,0x3c,0x27,0x54,0x48,0x6c,0x24,0x6e,0x72,0x3c,0x32,0x45,0x5b] tmp=[102,108,97,103] #flag的ASCII码 v4=[] for i in range(0,4): v4.append(tmp[i]^byte_6cc0a0[i]) print(v4) flag='' for i in range(0,25): flag+=chr(byte_6cc0a0[i]^v4[i%4]) print(flag)

flag{Act1ve_Defen5e_Test}

http://www.jsqmd.com/news/1175897/

相关文章:

  • 西安学历提升机构收费明细:钱要花在明处 - 最新政策解读
  • 解锁MLX框架潜力:Gemma-4-12B-Coder高级推理技巧(温度调节/最大 tokens 设置全攻略)
  • Amaro版本管理:如何在不同TypeScript版本间无缝切换?
  • LRS2数据集实战:IP_LAP训练前的数据准备与预处理全攻略
  • PicoServer的哲学:不是框架,是胶水
  • Rider 2024.2 + EmmyLua 1.5.0:Unity C#与Lua双模式调试的3种连接策略对比
  • vLLM部署Kimi-K2.5-W4A8完整教程:从环境搭建到服务上线
  • ChatGPT自动生成客服QA的7种致命错误(附审计清单+合规校验脚本)
  • 独立开发技术栈怎么选
  • 分治算法
  • 西安成人学历机构避坑指南:这6类承诺别信 - 最新政策解读
  • 为什么选择ReactPrimer?这款组件原型工具如何提升你的开发效率
  • M87生成艺术作品赏析:24个惊艳案例带你领略AI美学新高度
  • AI+城市配送网络:多级仓储+动态路由+需求预测
  • HNU-2026操作系统-学习感悟与总结
  • 2026年7月最新沈阳卡地亚官方售后热线及客户服务网点地址 - 卡地亚服务中心
  • Saucer线程安全机制与协程支持:编写高效异步桌面应用的最佳实践
  • Word 2019 自定义样式集成自动目录:3步解决非标准标题识别难题
  • 北京恒略房产合同纠纷律师咨询电话16601232889同微信 - 北京普法者
  • FeedFlow深度评测:为什么这款开源RSS阅读器值得取代你的新闻App?
  • 为什么选择FeedFlow?5个让你告别信息过载的理由
  • 全球 7.5 万台防火墙“底裤被扒”,45张显卡暴力狂飙背后的黑客流水线
  • 仅剩最后200份|《AI Agent自动数据分析黄金配置包》:含17个预训练Agent微调权重、5类行业Schema本体库、实时SQL纠错引擎v2.3(限本周免费领取)
  • LangGraph快速入门-01概述
  • Linux --- D-Bus 系统总线
  • 自考本科含金量高吗:从认可度说清楚 - 最新政策解读
  • CANN/ascend-transformer-boost ATB加速库对外头文件和库文件说明
  • Qt 6.7 MSVC 编译器配置:3步修复 ‘Cannot run compiler cl‘ 环境变量问题
  • 2026年GEO源头厂商选型避坑指南:杭州爱搜索实战评测与护城河解析 - 品牌报告
  • Saucer多后端支持深度测评:Windows WebView2 vs Linux WebKitGtk vs macOS WKWebView