[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中新增了的右值引用语法特性,所以从现在开始我们之前学习…...
TI C2000开发避坑指南:当SysConfig生成的board.c太大,导致CC8编译报错怎么办?
TI C2000开发实战:SysConfig生成代码过大导致CC8内存溢出的高效解决方案 第一次用TI的SysConfig工具配置完PWM和ADC外设,满心欢喜点击编译,结果跳出一行刺眼的错误:error #10099-D: program will not fit into available memory。…...
从PyTorch到ONNX Runtime:跨平台模型部署实战指南
1. 为什么需要从PyTorch转向ONNX Runtime 当你费尽心思训练好一个PyTorch模型后,准备把它部署到生产环境时,往往会遇到几个头疼的问题。首先是环境依赖,PyTorch本身加上CUDA等组件动辄几个GB,在资源受限的边缘设备上根本装不下。其…...
如何快速配置虚拟控制器:从零开始的完整vJoy教程
如何快速配置虚拟控制器:从零开始的完整vJoy教程 【免费下载链接】vJoy Virtual Joystick 项目地址: https://gitcode.com/gh_mirrors/vj/vJoy vJoy是一款功能强大的开源虚拟摇杆工具,能够帮助用户创建模拟游戏控制器,实现自定义输入映…...
Fastboot Enhance:3步实现Android设备可视化管理的终极指南
Fastboot Enhance:3步实现Android设备可视化管理的终极指南 【免费下载链接】FastbootEnhance A user-friendly Fastboot ToolBox & Payload Dumper for Windows 项目地址: https://gitcode.com/gh_mirrors/fa/FastbootEnhance Fastboot Enhance是一款面…...
终极指南:3步让AMD/Intel显卡免费获得CUDA加速,打破NVIDIA生态垄断
终极指南:3步让AMD/Intel显卡免费获得CUDA加速,打破NVIDIA生态垄断 【免费下载链接】ZLUDA CUDA on non-NVIDIA GPUs 项目地址: https://gitcode.com/GitHub_Trending/zl/ZLUDA 你是否曾因手头只有AMD或Intel显卡,却面对那些仅支持NVI…...
Fluent环境变量配置全解析:从原理到实践,为什么你的UDF总是编译失败?
Fluent环境变量配置全解析:从原理到实践,为什么你的UDF总是编译失败? 在工程仿真领域,Fluent的UDF(用户自定义函数)是扩展软件功能的利器,但无数工程师在配置环境变量时折戟沉沙。你是否经历过这…...
嵌入式系统与CPS的本质差异及核心技术解析
1. 嵌入式系统与信息物理系统的本质差异在传统认知中,嵌入式系统常被简单理解为"资源受限的小型计算机系统",这种观点已经无法适应当前技术发展的需求。嵌入式系统与信息物理系统(CPS)的根本区别在于:前者关注的是计算设备本身的实…...
CentOS 7/8 安装Nginx后conf.d目录空空如也?别慌,两种方法帮你搞定default.conf
CentOS 7/8安装Nginx后conf.d目录为空?两种专业解决方案详解 刚在CentOS上装完Nginx,兴冲冲打开/etc/nginx/conf.d准备配置站点,却发现目录空空如也——这场景让多少运维新手心头一紧。别急着重装系统,这其实是包管理源差异导致的…...
URDF还是SDF?给ROS1/ROS2开发者的Gazebo模型格式选择指南(含避坑建议)
URDF还是SDF?给ROS1/ROS2开发者的Gazebo模型格式选择指南(含避坑建议) 当你在Gazebo中调试机器人模型时,是否遇到过这些情况:精心设计的URDF模型导入后突然沉入地面,关节运动方向完全错乱,或是发…...
你的密码字典真的够强吗?用Hydra搭配Seclists定制专属攻击字典
密码字典的终极进化:从通用词库到精准爆破的艺术 在渗透测试的世界里,密码爆破就像一场精心策划的狩猎——而你的字典质量直接决定了是满载而归还是空手而回。太多安全从业者沉迷于工具的使用技巧,却忽视了最基础也最关键的环节:字…...
