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

REVERSE学习笔记(攻防世界xxxorrr)

攻防世界xxxorrr

首先我们把文件拖入ida中,点击进入main函数

其中,unsigned是无符号的意思,fgets 是C语言标准库中的一个函数,用于从指定的输入流(如文件或标准输入)中读取一行字符串

 

我们先点击进入s1,发现s1是一个字符串,我们在点击sub_916发现它是一个函数,分析代码后发现,我们需要让s1和s2相等这样就可以得到flag ;而在我们尝试后发现并不能得到flag。我们猜测s1或者s2可能会被加密,我们搜索交叉引用,发现一个类似加密s1的函数

我们对s1解密后在将s1和s2进行异或运算即可得到flag。

补充一些简单的知识,(__readfsqword 是一个与 x86/x86-64 架构 相关的内联汇编函数,通常用于从特定的内存地址中读取一个 64位(quad word) 的数据。)(__cxa_atexit 是一个与 C++ 标准库相关的内部函数,通常用于注册一个函数,使其在程序退出时被调用。这种机制常用于资源清理、对象销毁等操作。它类似于 C 标准库中的 atexit 函数,但 __cxa_atexit 是 C++ 的扩展,支持更多功能,例如处理动态库(shared libraries)的加载和卸载。)

http://www.dtcms.com/a/191128.html

相关文章:

  • 万文c++继承
  • AI日报 · 2025年5月14日|Android 生态大型更新与多端 Gemini 集成
  • 深度解析智能体:从概念到应用的全方位洞察
  • BGP实验2
  • 机器学习 Day16 聚类算法 ,数据降维
  • 高等数学第七章---微分方程(§7.4-§7.5可降阶的高阶微分方程、二阶线性微分方程)
  • AGI大模型(15):向量检索之调用ollama向量数据库
  • C++中如何实现一个单例模式?
  • SpringBoot--springboot配置文件详解以及简易整合MyBatis
  • 直流电机风速仪
  • 【位运算】常见算法公式使用
  • 建筑IT数字化突围:建筑设计企业的生存法则重塑
  • STM32入门笔记(05):内部高速8Mhz时钟最大时钟可以设置 64 Mhz?如何修改system_stm32f10x.c里面的代码?
  • 基于OAuth2+SpringSecurity+Jwt实现身份认证和权限管理后端服务
  • 操作系统-物理结构
  • 最大子段和(就是之前总结线性dp思想)
  • “小显存”也能启动大模型
  • libmemcached库api接口讲解三
  • 可视化图解算法39: 输出二叉树的右视图
  • 前端表格滑动滚动条太费事,做个浮动滑动插件
  • synchronized关键字详解
  • 有关多线程
  • 总共76dp 空出20dp然后放一个控件的写法
  • Spring 中的 @ComponentScan注解详解
  • Android Framework学习五:APP启动过程原理及速度优化
  • Redis内存淘汰策略和过期键删除策略有哪些?
  • TAOCMS漏洞代码学习及分析
  • 微信开发者工具里面模拟操作返回、录屏、网络速度、截屏等操作
  • 企业级IP代理解决方案:负载均衡与API接口集成实践
  • 【CUDA】Sgemm单精度矩阵乘法(上)