[Buuctf] [MRCTF2020]Transform

1.查壳

64位exe文件,没有壳
2.用64位IDA打开
找到主函数,F5查看伪代码

从后往前看,有一个判断语句,是两个数组进行比较的,我们双击byte_40F0E0查看里面的内容

所以能够推出byte_414040的内容,byte_414040是加密后的数据,在循环里能够逆出原来的Str,Str就是我们要拿到的flag
我们双击dword_40F040,也能看到其中的数据

这里最后出现的8 dup(0)并不是数据8,而是有8个0,这个8当时困扰了我好长时间
有了数据,直接上脚本
byte_40f0e0=[0x67, 0x79, 0x7B, 0x7F, 0x75, 0x2B, 0x3C, 0x52, 0x53, 0x79,0x57, 0x5E, 0x5D, 0x42, 0x7B, 0x2D, 0x2A, 0x66, 0x42, 0x7E,0x4C, 0x57, 0x79, 0x41, 0x6B, 0x7E, 0x65, 0x3C, 0x5C, 0x45,0x6F, 0x62, 0x4D]
dword_40F040=[9, 0x0A, 0x0F, 0x17, 7, 0x18, 0x0C, 6, 1, 0x10, 3, 0x11, 0x20, 0x1D, 0x0B, 0x1E, 0x1B, 0x16, 4, 0x0D, 0x13, 0x14,0x15, 2, 0x19, 5, 0x1F, 8, 0x12, 0x1A, 0x1C, 0x0E,0]
Str=[]
for i in range(0,33):Str.append(0)
for i in range(0,33):byte_40f0e0[i]=byte_40f0e0[i]^dword_40F040[i]Str[dword_40F040[i]]=byte_40f0e0[i]
flag=''
for i in range(0,len(Str)):flag+=chr(Str[i])
print(flag)
>>>MRCTF{Tr4nsp0sltiON_Clph3r_1s_3z}
flag{Tr4nsp0sltiON_Clph3r_1s_3z}
提交,成功!!!
补充
LOWORD, HIWORD, LOBYTE, HIBYTE的解释
int 类型大小正常为4Byte
以小端序来看 0x12345678在内存中的存储为
0x78 0x56 0x34 0x12
而
LOWORD 5678
HIWORD 1234
LOBYTE 78
HIBYTE 56
dup
dup是汇编操作符
在汇编语言中同db,dw,dd等一样,也是汇编器处理的符号,他是同db、dw,dd等数据定义的伪指令配合使用,用来进行数据的重复
db 重复的次数 dup (重复的字节性数据)
dw 重复的次数 dup (重复的字型数据)
dd 重复的次数 dup (重复的双字性数据)
相关文章:
[Buuctf] [MRCTF2020]Transform
1.查壳 64位exe文件,没有壳 2.用64位IDA打开 找到主函数,F5查看伪代码 从后往前看,有一个判断语句,是两个数组进行比较的,我们双击byte_40F0E0查看里面的内容 所以能够推出byte_414040的内容,byte_4140…...
【C++】C++模板基础知识篇
个人主页 : zxctscl 文章封面来自:艺术家–贤海林 如有转载请先通知 文章目录 1. 泛型编程2. 函数模板2.1 函数模板概念2.2 函数模板格式2.3 函数模板的原理2.4 函数模板的实例化2.5 模板参数的匹配原则 3. 类模板3.1 类模板的定义格式3.2 类模板的实例化…...
golang 注释插件
Goanno插件 自动生成golang注释,该插件为 Intellij/Goland 中的 golang 提供自动生成注释 如何使用? control command / (for windows: control alt /)(生成注释)Right click -> Generate -> Goanno(生成注释&#x…...
Unity插件之天气系统UniStorm
首先呢,它是一款强大的动态昼夜天气系统,能够以较快的帧速率创建AAA级动态生成的天气、照明和天空,并且具有300多个可定制的组件,允许用户创建任何可以想象的环境。 第一步:他需要两个物体Camera摄像机、Player播放器…...
Java使用xlsx-streamer和EasyExcel解决读取超大excel文件数据处理方法
前言 最近有个项目在生产环境做数据导入时,发现开始执行导入任务会出现cpu狂飙的情况。几番定位查找发现是在读取excel的时候导致此问题的发生,因此在通常使用的为POI的普通读取,在遇到大数据量excel,50MB大小或数五十万行的级别的…...
智能驾驶规划控制理论学习04-基于车辆运动学的规划方法
目录 一、线性二自由度汽车模型(自行车模型) 1、二自由度模型概述 2、不同参考点下的状态空间方程 3、前向仿真 二、运动基元生成方法 1、杜宾斯曲线(Dubins Curve) 2、Reeds Shepp Curve 三、多项式曲线(Poly…...
一键查看:大厂网站都用了啥技术栈,有图有真相。
本次我们采用Wappalyzer插件来看下国内大厂的网站都采用了什么技术架构,文章最后由Wappalyzer的安装方法。 今日头条网站 淘宝网站 哔哩哔哩 京东商城 花瓣网 CSDN 国务院 网易 58同城 腾讯网 如何安装Wappalyzer 用Edge浏览器即可...
C语言-指针(下)
文章目录 前言 文章目录 前言 一、指针运算 1.指针-整数 2.指针-指针 3.指针关系运算 二、野指针 1.概念 2.野指针的成因 1.未初始化 2.指针越界访问 3.指针指向的空间释放 3.避免野指针 1.指针初始化 2.小心指针越界 3. 指针变量不再使用时,及时置NULL 总结 …...
尚硅谷JavaScript高级学习笔记
01 准备 JavaScript中函数是对象。我们后续描述构造函数的内存模型时,会将构造函数称为构造函数对象。 02 数据类型 typeof 运算符来查看值的类型,它返回的是类型的字符串值 会做数据转换 03 相关问题 04数据_变量_内存 05相关问题1 06相关问题2 …...
六、长短时记忆网络语言模型(LSTM)
为了解决深度神经网络中的梯度消失问题,提出了一种特殊的RNN模型——长短期记忆网络(Long Short-Term Memory networks, LSTM),能够有效的传递和表达长时间序列中的信息并且不会导致长时间前的有用信息被忽略。 长短时记忆网络原理…...
Filter过滤器+JWT令牌实现登陆验证
一、背景 我们需要在客户端访问服务器的时候给定用户一定的操作权限,比如没有登陆时就不能进行其他操作。如果他需要进行其他操作,而在这之前他没有登陆过,服务端则需要将该请求拦截下来,这就需要用到过滤器,过滤器可以…...
SQL学习十八~十九
...
2024 AI 辅助研发的新纪年
随着人工智能技术的持续发展与突破,2024年AI辅助研发正成为科技界和工业界瞩目的焦点。从医药研发到汽车设计,从软件开发到材料科学,AI正逐渐渗透到研发的各个环节,变革着传统的研发模式。在这一背景下,AI辅助研发不仅…...
【牛客】HJ87 密码强度等级 CM62 井字棋
题目一:密码强度等级 题目链接:密码强度等级_牛客题霸_牛客网 (nowcoder.com) 本题主要考察C语言中逻辑分支语句,基本语句以及对各种特殊字符 ,ASCII值以及条件表达中的逻辑运算符关系运算符各自功能的理解,以及基本使用&#x…...
【论文速读】 | DeGPT:通过大语言模型优化反编译器输出
本次分享论文为:DeGPT: Optimizing Decompiler Output with LLM 基本信息 原文作者:Peiwei Hu, Ruigang Liang, Kai Chen 作者单位:中国科学院信息工程研究所;中国科学院大学网络空间安全学院 关键词:反向工程&…...
【DP】蓝桥杯第十三届-费用报销
#include<iostream> #include<algorithm> #include<cstring> #include<set> #include<queue> using namespace std; const int N1010; int dp[N][5010];//dp[i][j]:选到第i个物品是否能取到价值j; int month[13]{0,31,28,31,30,31,30…...
15. C++泛型与符号重载
【泛型编程】 若多组类型不同的数据需要使用相同的代码处理,在C语言中需要编写多组代码分别处理,这样做显然太过繁琐,C增加了虚拟类型,使用虚拟类型可以实现一组代码处理多种类型的数据。 虚拟类型是暂时不确定的数据类型&#…...
老司机都懂的!【打赏】完美运营的最新视频打赏系统
完美运营的最新视频打赏系统优于市面上95%的打赏系统,与其他打赏系统相比,功能更加强大,完美运营且无bug。支付会调、短链接生成、代理后台、价格设置和试看功能等均没有问题。 以上为原简介,经测试验证。成功搭建并可以正常进入…...
JavaWeb笔记 --- 二、Maven
二、Maven Maven概述 所有的IDE创建的Maven项目都可以使用 Maven简介 Maven模型 Maven常用命令 Maven生命周期 Maven坐标 依赖管理 dpendencies:依赖 依赖范围...
【C++】C++11---右值引用和移动语义
目录 1、什么是左值引用和右值引用2、左值引用与右值引用比较3、右值引用使用场景和意义4、右值引用引用左值的分析5、完美转发 1、什么是左值引用和右值引用 传统的C语法中就有引用的语法,而C11中新增了的右值引用语法特性,所以从现在开始我们之前学习…...
Spark 之 入门讲解详细版(1)
1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...
【OSG学习笔记】Day 18: 碰撞检测与物理交互
物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...
三维GIS开发cesium智慧地铁教程(5)Cesium相机控制
一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点: 路径验证:确保相对路径.…...
【大模型RAG】Docker 一键部署 Milvus 完整攻略
本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...
2.Vue编写一个app
1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...
sqlserver 根据指定字符 解析拼接字符串
DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...
【决胜公务员考试】求职OMG——见面课测验1
2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...
Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)
参考官方文档:https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java(供 Kotlin 使用) 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...
dify打造数据可视化图表
一、概述 在日常工作和学习中,我们经常需要和数据打交道。无论是分析报告、项目展示,还是简单的数据洞察,一个清晰直观的图表,往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server,由蚂蚁集团 AntV 团队…...
中医有效性探讨
文章目录 西医是如何发展到以生物化学为药理基础的现代医学?传统医学奠基期(远古 - 17 世纪)近代医学转型期(17 世纪 - 19 世纪末)现代医学成熟期(20世纪至今) 中医的源远流长和一脉相承远古至…...
