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

BUUCTF [FlareOn4]IgniteMe

查壳然后进入ida

NumberOfBytesWritten = 0;

把输出字符数清零

hFile = GetStdHandle(0xFFFFFFF6); // 标准输入(键盘) dword_403074 = GetStdHandle(0xFFFFFFF5); // 标准输出(屏幕)
  • 0xFFFFFFF6 = (DWORD)-10STD_INPUT_HANDLE
  • 0xFFFFFFF5 = (DWORD)-11STD_OUTPUT_HANDLE

作用:

  • hFile= 读键盘输入
  • dword_403074= 往屏幕打印文字
WriteFile( dword_403074, // 输出到屏幕 aG1v3M3T3hFl4g, // 字符串内容:Give me the flag 0x13u, // 长度:19 个字符 &NumberOfBytesWritten, 0 );


屏幕打印:G1v3 M3 T3h Fl4g

((void (__cdecl *)(DWORD))sub_4010F0)(NumberOfBytesWritten);

调用sub_4010F0
作用:读取用户输入的 flag

重点关注sub_4010F0、sub_401050

sub_4010F0:


sub_4010F0作用就是读取输入的flag到byte_403078[]

sub_401050:


sub_401000:

  • __ROL4__循环左移 4 位(Rotate Left 4 bits)→0x00700008
  • >> 1逻辑右移 1 位→0x0004

所以sub_401000等价于return 4; 这个函数始终返回4

因此v4=4

for ( j = 0; j < 39; ++j ) { if ( byte_403180[j] != byte_403000[j] )

可知byte_403180=unk_403000,flag()是39位

for ( i = v1 - 1; i >= 0; --i ) { byte_403180[i] = v4 ^ byte_403078[i]; v4 = byte_403078[i]; }

异或加密,byte_403078=flag

解密:

#include <stdio.h> int main(){ unsigned char byte_403180[] = { 0x0D, 0x26, 0x49, 0x45, 0x2A, 0x17, 0x78, 0x44, 0x2B, 0x6C, 0x5D, 0x5E, 0x45, 0x12, 0x2F, 0x17, 0x2B, 0x44, 0x6F, 0x6E, 0x56, 0x09, 0x5F, 0x45, 0x47, 0x73, 0x26, 0x0A, 0x0D, 0x13, 0x17, 0x48, 0x42, 0x01, 0x40, 0x4D, 0x0C, 0x02, 0x69 }; int v4=4; int byte_403078[40]; for(int i=38;i>=0;i--) { byte_403078[i]=byte_403180[i]^v4; v4=byte_403078[i]; } for (int j = 0; j < 39; ++j ){ printf("%c",byte_403078[j]); } return 0; }

flag{R_y0u_H0t_3n0ugH_t0_1gn1t3@flare-on.com}

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

相关文章:

  • Git Clone 深度解析:5个关键参数与SSH密钥免密配置实战
  • 2026揭阳漏水检测维修口碑榜TOP5权威推荐:正规防水补漏公司甄选-卫生间/厨房/阳台/屋顶/地下室渗漏水精准查漏:房屋防水补漏避坑指南 - 安佳防水
  • SAP 委外加工 MIGO 541/543 移动类型详解:供应商库存与财务过账分析
  • 博通Raid卡
  • 【发动机】喷气发动机超音速流条件下扩散器和喷嘴性能分析【含Matlab源码 15887期】含报告
  • Kafka 事务与 RocketMQ 事务消息对比:3 大核心差异与 5 种选型场景分析
  • 2026年CPPM和SCMP怎么选?推荐Top1竟是它! - 众智商学院cppm官方
  • FreeType游戏字体渲染实战:从纹理图集到GPU绘制的完整方案
  • 杭州江诗丹顿回收价格查询和靠谱平台实测排行(2026年7月最新) - 收的高名表回收平台
  • Unity xLua项目Rider调试:解决EmmyLua 1.4.2路径与断点失效的2个关键配置
  • GPT-5.6 代码生成能力实测:从单函数到完整项目的工程化分析
  • AlphaZero强化学习:CNN与MCTS结合的算法原理与Python实践
  • TPM 2.0 原理与实战:从硬件加密到Windows 11安全启动的3层架构
  • NAT Server与策略目的NAT对比:华为防火墙双方案部署与性能实测
  • 银行实战:多维聚合的七类生产级模式与避坑指南
  • 蔡司ATOS Q三维扫描技术在精密线束端子全尺寸检测中的应用
  • Wan Scail动作迁移:低显存优化与长时间稳定性实战解析
  • Ant Design Vue Table 4.x 滚动条异常排查:解决双滚动条与表头错位的2个关键CSS规则
  • 2026年7月重庆独栋云海观景民宿/重庆晚霞云海观景民宿如何预订_巴南区山谷里农家乐(个体工商户) - 品牌宣传支持者
  • AI治理不是加防火墙:安全工程师的AI时代认知重构
  • 高精度ADC与MCU在信号采集系统中的协同设计
  • 上海宝珀回收价格查询及各大回收平台实测排行(2026年7月最新数据) - 嘉价奢侈品回收平台
  • GPT-5.6 处理技术架构图实测:从图片到可编辑代码的能力分析
  • VC++实现USB通信:WinUSB驱动安装与异步数据收发实战
  • 江西省 CPPM 和 SCMP 报考新选择(众智商学院)联系方式 - 众智商学院cppm官方
  • ROS2 Dashing 入门:Ubuntu 18.04 下稳定可靠的工程级初学指南
  • pytest fixture 5大参数实战:scope/autouse/params 3分钟构建数据驱动测试
  • 驱动芯片发热严重的根源分析!
  • 3分钟掌握Godot游戏资源解包:解锁.pck文件中的宝藏内容
  • Intel oneAPI 2025.2 离线安装:Ubuntu 22.04 3步配置与 MKL 库链接验证