reverse ez_xor writeup

2023-11-11

拿到ez_xor.exe附件直接丢进PE
在这里插入图片描述

可以看到是64位exe文件,丢进ida64
Shift+F12查看字符串(如果是笔记本电脑的话,F12自带热键,先按Fn,即Fn+Shift+F12)
在这里插入图片描述
一般在这里找有没有和flag相关的字符串,可以看到这里是有的,双击进入
在这里插入图片描述
找到该字符串,点击上图所示,进入main方法
会进入流程图界面,按空格进入文本界面
可以看到汇编代码了,按F5(同理如果是笔记本记得按Fn+F5)反汇编,转换成C语言
在这里插入图片描述
现在就可以分析代码了,这里的C语言可能数据类型之类的会和我们平时的有点不一样
比如说这里的v3=0i64,0i64表示int64_t类型的0,其实就基本上可以理解为0
这里代码可以看到关键异或代码while ( (char)(v3 ^ v5[v3]) == dword_403020[v3] )
在这里插入图片描述
在这里插入图片描述
可以看到该字符串每个字符对应的ASCII码(这里按R键即可看到对应的字符)
现在已知dword_403020和v3(v3就是0~31),逐个进行异或即可得到flag

写一个Python脚本

s=[0x35, 0x62, 0x37, 0x30, 0x33, 0x3D, 0x60, 0x63, 0x3F, 0x3D, 0x6C,0x69, 0x6D, 0x6F, 0x68, 0x6D, 0x72, 0x77, 0x20, 0x70, 0x76, 0x73,0x72, 0x2F, 0x2E, 0x21, 0x7E, 0x2B, 0x28, 0x25, 0x2C, 0x29]
flag=[0 for i in range(32)] #从给出的代码很容易看到flag是32位的
for i in range(32):
    flag[i]=i^s[i]
print(flag)

即可得出flag

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

reverse ez_xor writeup 的相关文章

随机推荐

  • centos7-15-Linux的发展史和主流发行版系列

    Linux发展史简述 一般我们说的Linux版本有2个 一个是Linux内核版本 一个是各厂商的发行版本 1 Linux的发展 Linux是一套开源的操作系统 于1991年10月5日正式对外发布 它继承了Unix以网络为核心思想 是一个性能
  • leetcode 1114. 按序打印 (java)

    面试高频题 冲啊 学习一下 java并发对于我又难又高频 class Foo public Foo volatile int count 1 public void first Runnable printFirst throws Inte
  • html 实现音乐的波形,如何在html5中绘制音频流的波形?

    我的代码 if this remoteStream null if this wavesurfer null var parent this this wavesurfer Object create WaveSurfer this wav
  • 基于Qt的OpenGL编程(3.x以上GLSL可编程管线版)---(十)基础光照

    这章内容简要说明Phone式光照模型中的环境光照 ambient 漫反射 diffuse 镜面反射 specular 如何在OpenGL中的世界实现 Vries的原教程地址如下 https learnopengl cn github io
  • 【51单片机】数码管的使用

    需要云服务器等云产品来学习Linux的同学可以移步 gt 腾讯云 lt gt 阿里云 lt gt 华为云 lt 官网 轻量型云服务器低至112元 年 新用户首次下单享超低折扣 目录 一 数码管的类型
  • 22届硕士,去年秋招拿了字节跳动offer,有一说一,不是很难进

    自从抖音短视频APP火了之后 起公司字节跳动也逐渐向着大厂靠拢 相信大家都已经对这家公司很熟悉了 尤其是近几年来 对它的认识也在不断刷新 它惊人的发展速度确实让行业内人刮目相看 如今很多年轻人也想要挤进字节跳动 它越来越火热 字节可能不算难
  • Vue中使用GOJS绘制拓扑图(项目实践)

    1 首先下载GOJS npm install gojs save 2 Vue中使用 import gojs from gojs var go gojs var go GraphObject make 代码所需要的JSON格式 import
  • 前端实现vue element ui 勾选的表格数据导出

    安装依赖 npm install save xlsx file saver npm install D script loader 在src文件夹中新建文件夹 命名为excel 新建文件夹后 在utils文件夹内新建两个js文件 分别命名为
  • 华为交换机MPU、LPU硬件信息解释

    此文章是从 小侠唐在飞 老师那儿转载的 感谢老师 名词解释 MPU就是主控板LPU是业务板 业务线卡区域 包括6个业务线卡槽位 分布在SLOT1到SLOT6槽位 槽位间距1 4英寸 主控板区域 包括主备两个槽位 分布在SLOT7和SLOT8
  • 网络:IP基础知识总结

    IP的基本认识 IP在TCP IP参考模型中处于第三层 也就是网络层 网络层的主要作用是 实现主机和主机之间的通信 也叫做点对点通信 问 网络层与运输层的关系 网络层 IP 提供点到点的服务 运输层 TCP UDP 提供端到端的服务 问 网
  • VS中使用动态库

    VS中使用动态库 一 将DLL头文件添加到包含路径 属性 gt C C gt 常规 gt 附加包含目录 二 将DLL导入库添加到项目中 1 添加附加库目录 属性 gt 链接器 gt 常规 gt 附加库目录 2 添加附加依赖项 这一步骤 也可
  • 解决 Centos7 启动tomcat 但是外部不能访问的问题

    Step1 启动tomcat 进入 tomcat 所在的目录的 bin 的文件夹下执行 startup sh 命令 启动 tomcat 如果出现下面这种情况说明 tomcat 启动 成功 Step2 验证 tomcat 是否启动成功 输入
  • Request_获取请求参数通用方式演示

  • 射频功率放大器PA芯片选型

    一 功率放大器选型 下图示例一个PA的核心参数 从频率失真和非线性失真两个方面基本可以上述参数的含义及其作用 如频率范围 功率平坦度 S21等主要和频率失真有关 即不同频率信号所表现的增益和相位差值 以及该PA的适用频段 而输出功率 输出功
  • Outlier Detection for Improved Data Quality and Diversity in Dialog Systems-学习笔记

    Outlier Detection for Improved Data Quality and Diversity in Dialog Systems 论文按如下方式检测数据集中的异常值 1 生成每个实例的矢量表示 2 平均向量以获得均值表
  • Android下实现字符串或文件的MD5加密

    MD5 信息摘要算法简单介绍 MD5 Message Digest Algorithm 一种被广泛使用的密码散列函数 可以产生出一个128位 16字节 的散列值 hash value 用于确保信息传输完整一致 计算出来的MD5值是有可能重复
  • CVE-2023-33246 Apache RocketMQ 命令注入漏洞复现及分析

    CVE 2023 33246 Apache RocketMQ 命令注入漏洞复现及分析 0x0 威胁情报 漏洞编号 CVE编号 CVE 2023 33246 漏洞评估 危害评级 高危 漏洞类型 RCE 公开程度 PoC已公开 利用条件 1 在
  • 【数据结构与算法】3.(单向、无向、带权)图,广度、深度优先搜索,贪心算法

    文章目录 1 图简介 2 图的存储方式 2 1 邻接矩阵存储方法 2 2 邻接表存储方法 3 有向 无向图和查询算法 3 1 数据结构 3 2 广度优先算法BFS 3 3 深度优先算法DFS 3 3 1 DFS查询单条路径 3 3 2 DF
  • PhotoShop 之盖印图层

    Ctrl Shift Alt E 生成盖印图层 盖印图层实现的结果和合并图层差不多 也就是把图层合并在一起生成一个新的图层 和合并图层所不同的是 盖印图层是生成新的图层 而被合并的图层依然存在 保持其它图层完好无损
  • reverse ez_xor writeup

    拿到ez xor exe附件直接丢进PE 可以看到是64位exe文件 丢进ida64 Shift F12查看字符串 如果是笔记本电脑的话 F12自带热键 先按Fn 即Fn Shift F12 一般在这里找有没有和flag相关的字符串 可以看