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

re题(35)BUUCTF-[FlareOn4]IgniteMe

BUUCTF在线评测 (buuoj.cn)

下载完是两个文件

把.exe文件查一下壳,无壳32位

用ida打开,ctrl+e定位main函数

F5反汇编,前面是提取.txt文件数据,进入if条件里的函数sub_401050()

找到主函数,逻辑是v4是函数反回的一个固定数,但是还不知道,让v4先和flag最后一位异或,然后flag倒着进行flag[i-1]=flag[i-1]^flag[i],现在找一下进行对比的字符串和v4

对比的字符串直接可以看到用shift+e提取数据

v4不能直接看,它存在栈里面,需要动态调试,我们在v4后面下个断点,进行本地调试(window系统)

随便输入字符串再回车

然后点击v4就可以看到赋给v4的值是4

写个脚本


#提取的数据是一串,可以手动分开,也可以用我写的脚本
aaa="0D2649452A1778442B6C5D5E45122F172B446F6E56095F454773260A0D1317484201404D0C0269"
sss=[]
x=''
for i in range(len(aaa)):
    x+=x.join(aaa[i])
    if (i%2)==1:
        sss.append(int(x,16))
        x=''
#先把字符串倒序,比较容易写脚本,最后再给它倒回来就行
sss.reverse()
v4=4
k=len(sss)
flag=""
for i in range(len(sss)):
    flag+=chr(sss[i]^v4)
    v4=ord(flag[i])
print(flag[::-1])




#R_y0u_H0t_3n0ugH_t0_1gn1t3@flare-on.com

#自己加上flag{}

本题考查了动态调试找到函数返回的固定值,还有一个简单的异或加密 


http://www.kler.cn/news/311533.html

相关文章:

  • Docker Redis 7.2.3 部署
  • Spark实操学习
  • 集合框架底层使用了什么数据结构
  • 关于 Goroutines 和并发控制的 Golang 难题
  • 【网络安全的神秘世界】目录遍历漏洞
  • AJAX Jquery $.get $.post $.getJSON
  • STP生成树
  • css 中 em 单位怎么用
  • 医疗数据分析师
  • Uniapp的alertDialog返回值+async/await处理确定/取消问题
  • 矿场工程车检测数据集 4900张 工程车 带标注voc yolo
  • Unity Transform 组件
  • 【GO开发】MacOS上搭建GO的基础环境-Hello World
  • 2024-1.2.12-Android-Studio配置
  • HttpMediaTypeNotAcceptableException: No acceptable representation问题解决方法
  • 解决使用nvm管理node版本时提示npm下载失败的问题
  • 选择排序
  • DPDK 简易应用开发之路 2:UDP数据包发送及实现
  • Day14:学生信息管理系统
  • 【Qt网络编程】Tcp多线程并发服务器和客户端通信
  • Laravel邮件发送:从配置到发邮件的指南!
  • 从零开始讲DDR(2)——DDR的核心技术
  • 软考架构-架构风格
  • 全网最适合入门的面向对象编程教程:50 Python函数方法与接口-接口和抽象基类
  • 2-95 基于matlab的模板定位
  • 阿里云容器服务Kubernetes部署新服务
  • springboot实战章节小结
  • SpringSecurity原理解析(七):权限校验流程
  • TypeScript异常处理
  • Spring IoC 配置类 总结