XY_RE复现(二)

一,何须相思煮余年

0x55  0x8b  0xec  0x81  0xec  0xa8  0x0  0x0  0x0  0xa1  0x0  0x40  0x41  0x0  0x33  0xc5  0x89  0x45  0xfc  0x68  0x9c  0x0  0x0  0x0  0x6a  0x0  0x8d  0x85  0x60  0xff  0xff  0xff  0x50  0xe8  0x7a  0xc  0x0  0x0  0x83  0xc4  0xc  0xc7  0x85  0x58  0xff  0xff  0xff  0x27  0x0  0x0  0x0  0xc7  0x85  0x5c  0xff  0xff  0xff  0x0  0x0  0x0  0x0  0xeb  0xf  0x8b  0x8d  0x5c  0xff  0xff  0xff  0x83  0xc1  0x1  0x89  0x8d  0x5c  0xff  0xff  0xff  0x83  0xbd  0x5c  0xff  0xff  0xff  0x27  0xf  0x8d  0xed  0x0  0x0  0x0  0x8b  0x95  0x5c  0xff  0xff  0xff  0x81  0xe2  0x3  0x0  0x0  0x80  0x79  0x5  0x4a  0x83  0xca  0xfc  0x42  0x85  0xd2  0x75  0x25  0x8b  0x85  0x5c  0xff  0xff  0xff  0x8b  0x8c  0x85  0x60  0xff  0xff  0xff  0x3  0x8d  0x5c  0xff  0xff  0xff  0x8b  0x95  0x5c  0xff  0xff  0xff  0x89  0x8c  0x95  0x60  0xff  0xff  0xff  0xe9  0xac  0x0  0x0  0x0  0x8b  0x85  0x5c  0xff  0xff  0xff  0x25  0x3  0x0  0x0  0x80  0x79  0x5  0x48  0x83  0xc8  0xfc  0x40  0x83  0xf8  0x1  0x75  0x22  0x8b  0x8d  0x5c  0xff  0xff  0xff  0x8b  0x94  0x8d  0x60  0xff  0xff  0xff  0x2b  0x95  0x5c  0xff  0xff  0xff  0x8b  0x85  0x5c  0xff  0xff  0xff  0x89  0x94  0x85  0x60  0xff  0xff  0xff  0xeb  0x73  0x8b  0x8d  0x5c  0xff  0xff  0xff  0x81  0xe1  0x3  0x0  0x0  0x80  0x79  0x5  0x49  0x83  0xc9  0xfc  0x41  0x83  0xf9  0x2  0x75  0x23  0x8b  0x95  0x5c  0xff  0xff  0xff  0x8b  0x84  0x95  0x60  0xff  0xff  0xff  0xf  0xaf  0x85  0x5c  0xff  0xff  0xff  0x8b  0x8d  0x5c  0xff  0xff  0xff  0x89  0x84  0x8d  0x60  0xff  0xff  0xff  0xeb  0x38  0x8b  0x95  0x5c  0xff  0xff  0xff  0x81  0xe2  0x3  0x0  0x0  0x80  0x79  0x5  0x4a  0x83  0xca  0xfc  0x42  0x83  0xfa  0x3  0x75  0x20  0x8b  0x85  0x5c  0xff  0xff  0xff  0x8b  0x8c  0x85  0x60  0xff  0xff  0xff  0x33  0x8d  0x5c  0xff  0xff  0xff  0x8b  0x95  0x5c  0xff  0xff  0xff  0x89  0x8c  0x95  0x60  0xff  0xff  0xff  0xe9  0xf7  0xfe  0xff  0xff  0x33  0xc0  0x8b  0x4d  0xfc  0x33  0xcd  0xe8  0x4  0x0  0x0  0x0  0x8b  0xe5  0x5d  0xc3  

enc = [88,88,134,87,74,118,318,101,59,92,480,60,65,41,770,110,73,31,918,39,120,27,1188,47,77,24,1352,44,81,23,1680,46,85,15,1870,66,91,16,4750]

txt文件,一大串数据,应该是机器码,首先想着肯定先机器码变汇编代码

要先转换成:

55 8B EC 81 EC A8 00 00 00 A1 00 40 41 00 33 C5 89 45 FC 68 9C 00 00 00 6A00 8D 85 60 FF FF FF 50 E8 7A 0C 00 00 83 C4 0C C7 85 58 FF FF FF 27 00 0000 C7 85 5C FF FF FF 00 00 00 00 EB 0F 8B 8D 5C FF FF FF 83 C1 01 89 8D 5CFF FF FF 83 BD 5C FF FF FF 27 0F 8D ED 00 00 00 8B 95 5C FF FF FF 81 E2 0300 00 80 79 05 4A 83 CA FC 42 85 D2 75 25 8B 85 5C FF FF FF 8B 8C 85 60 FFFF FF 03 8D 5C FF FF FF 8B 95 5C FF FF FF 89 8C 95 60 FF FF FF E9 AC 00 0000 8B 85 5C FF FF FF 25 03 00 00 80 79 05 48 83 C8 FC 40 83 F8 01 75 22 8B8D 5C FF FF FF 8B 94 8D 60 FF FF FF 2B 95 5C FF FF FF 8B 85 5C FF FF FF 8994 85 60 FF FF FF EB 73 8B 8D 5C FF FF FF 81 E1 03 00 00 80 79 05 49 83 C9FC 41 83 F9 02 75 23 8B 95 5C FF FF FF 8B 84 95 60 FF FF FF 0F AF 85 5C FFFF FF 8B 8D 5C FF FF FF 89 84 8D 60 FF FF FF EB 38 8B 95 5C FF FF FF 81 E203 00 00 80 79 05 4A 83 CA FC 42 83 FA 03 75 20 8B 85 5C FF FF FF 8B 8C 8560 FF FF FF 33 8D 5C FF FF FF 8B 95 5C FF FF FF 89 8C 95 60 FF FF FF E9 F7FE FF FF 33 C0 8B 4D FC 33 CD E8 04 00 00 00 8B E5 5D C3

有一个在线网站:Online x86 and x64 Intel Instruction Assembler (defuse.ca)

不是特别好看,想想还能不能转换成高级语言。

看别人wp:010 Editor 打开,把上面整理的字节码全部复制到十六进制文件里,保存之后使用IDA打开 。先全选强制分析,但有很多爆红,先不管直接变函数,但不太对。别人的好像是直接成功了,悲(,不知道哪里出问题了,重新来一遍。

别人的:

 别人的好像是二进制文件,我的是十六进制文件,可能是这个问题吧。

二,今夕是何年

说运行起来就给flag

装qemu可以跑,试试,装好了,真的出flagl

sudo apt install libc6-riscv64-cross
sudo apt install binutils-riscv64-linux-gnu
sudo apt install gcc-riscv64-linux-gnu
sudo apt install binutils-riscv64-unknown-elf
sudo apt install gcc-riscv64-unknown-elf
sudo apt install qemu-system-misc
sudo apt install qemu-user
若出现“/lib/ld-linux-riscv64-lp64d.so.1”报错
则再终端输入‘sudo cp /usr/riscv64-linux-gnu/lib/* /lib/’就可以了,因为文件下载的地方,和查
找的地方不一样,只要把文件cp一下就可以了

三,easy language

 

cmd窗口:拒绝访问。

 

提示是易语言的,拖进ida试试,不能分析。 

看wp要加个插件。

IDA进行逆向得知,原来hexray在生成伪代码的时候会调用一个calc_c_cpp_name函数,该函数会试图针对C/C++的函数名称进行优化,结果却误伤中文字符,我们将此处代码给NOP掉,就可以了。

ctrl+3可以换出插件窗口。 

得到了一个新程序

在字符串窗口,找到关键信息的位置, 发现是红的,全选然后按P

得到关键函数

int sub_4015CC()
{
  void *v0; // eax
  void *v1; // eax
  _DWORD *v2; // eax
  unsigned int v3; // ecx
  int v4; // ebx
  int v5; // eax
  int result; // eax
  _BYTE *v7; // [esp-8h] [ebp-24h]
  void *v8; // [esp-4h] [ebp-20h]
  void *v9; // [esp+0h] [ebp-1Ch]
  LPVOID v10; // [esp+4h] [ebp-18h] BYREF
  LPVOID v11; // [esp+8h] [ebp-14h] BYREF
  LPVOID v12; // [esp+Ch] [ebp-10h] BYREF
  LPVOID lpMem; // [esp+10h] [ebp-Ch] BYREF
  LPVOID v14; // [esp+14h] [ebp-8h]
  LPVOID v15; // [esp+18h] [ebp-4h] BYREF

  v15 = 0;
  v14 = 0;
  v0 = (void *)sub_40937A(1375797348, (LPCSTR)0x16010066, 8, -1);
  lpMem = v0;
  if ( !v0 )
    v0 = &unk_4A41DB;
  v12 = (LPVOID)sub_40936E(1, (char)v0, 0, -2147483644);
  if ( lpMem )
    free(lpMem);
  v11 = 0;
  v10 = "AES-ECB";
  v9 = (void *)sub_401975(&v12, &dword_59D0F0, &v10, 1, 7, 1, &v11, 0);
  if ( v12 )
    free(v12);
  if ( v10 )
    free(v10);
  if ( v11 )
    free(v11);
  if ( v15 )
    free(v15);
  v15 = v9;
  lpMem = sub_403E67((int)&v15);
  v8 = lpMem;
  if ( v14 )
    free(v14);
  v14 = v8;
  LOBYTE(v1) = (_BYTE)v8;
  if ( !v8 )
    v1 = &unk_4A41DB;
  v2 = (_DWORD *)sub_40936E(1, (char)v1, 0, -2147483644);
  lpMem = v2;
  v3 = 0;
  if ( v2 )
    v3 = v2[1];
  v7 = v2 + 2;
  v4 = 0;
  if ( dword_59D0F4 )
    v4 = *((_DWORD *)dword_59D0F4 + 1);
  v5 = 1;
  if ( v4 == v3 )
  {
    v5 = 0;
    if ( v3 )
      v5 = strlen((_BYTE *)dword_59D0F4 + 8, v7, v3);
  }
  v12 = (LPVOID)(v5 == 0);
  if ( lpMem )
    free(lpMem);
  if ( v12 )
  {
    lpMem = (LPVOID)sub_40937A(1375797348, (LPCSTR)0x16010066, 8, -1);
    v12 = (LPVOID)sub_404471((int)&lpMem);
    if ( lpMem )
      free(lpMem);
    if ( v12 == (LPVOID)29 )
      result = sub_409374((HWND)0x52010064, (LPCSTR)0x16010065, 8, -1, "real?!", 0);
    else
      result = sub_409374((HWND)0x52010064, (LPCSTR)0x16010065, 8, -1, "E++ is so easy!", 0);
  }
  else
  {
    result = sub_409374((HWND)0x52010064, (LPCSTR)0x16010065, 8, -1, byte_4A41FB, 0);
  }
  if ( v15 )
    result = free(v15);
  if ( v14 )
    return free(v14);
  return result;
}

很多函数不认识,烦(,

据wp说是AES-ECB和basse64。

 

 

不对,可以:

 

得到关键函数,但太丑了。尽是sub_地址,下来搜搜看。

也附上别人的脚本

from crypto.Cipher import AES
import base64

# 给定的字节串 byte_string
byte_string = b'E\x9c\xbf\xcdQ\x160\x9cAZ\t\xbc\xc2\x84\x08<\xc7n\x97e\x8a\xf9\xd6\xb3U\x9c\xcf\xb3\x06\x80i\xde\x0c\x9a\xf7r\xfdA\x05\xe9\x15\x18\xa7\xd4\x917\xde\xfc\xb1'

# 将字节串转换为整数
integer_value = int.from_bytes(byte_string, byteorder='big')

# 将整数拆分为三个部分,每部分包含16个字节
first_part_integer = integer_value >> 256
second_part_integer = (integer_value >> 128) & ((1 << 128) - 1)
third_part_integer = integer_value & ((1 << 128) - 1)

# 将每个部分转换回字节串
first_part_bytes = first_part_integer.to_bytes(16, byteorder='big')
second_part_bytes = second_part_integer.to_bytes(16, byteorder='big')
third_part_bytes = third_part_integer.to_bytes(16, byteorder='big')

# 打印结果
print("第一部分:", first_part_bytes)
print("第二部分:", second_part_bytes)
print("第三部分:", third_part_bytes)

# 根据动态调试找到的密钥
key = b'welcometoxyctf!!'

# 创建 AES 解密器
cipher = AES.new(key, AES.MODE_ECB)

# 解密每个部分
part1 = cipher.decrypt(first_part_bytes)
part2 = cipher.decrypt(second_part_bytes)
part3 = cipher.decrypt(third_part_bytes)

# 打印解密结果
print("成功解出flag 第一部分:", part1)
print("成功解出flag 第二部分:", part2)
print("成功解出flag 第三部分:", part3)
print("flag是:", part1 + part2 + part3)

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/583501.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

编译Qt6.5.3LTS版本(Mac/Windows)的mysql驱动(附带编译后的全部文件)

文章目录 0 背景1 编译过程2 福利参考 0 背景 因为项目要用到对MYSQL数据库操作&#xff0c;所以需要连接到MYSQL数据库。但是连接需要MYSQL驱动&#xff0c;但是Qt本身不自带MYSQL驱动&#xff0c;需要自行编译。网上有很多qt之前版本的mysql驱动&#xff0c;但是没有找到qt6…

SiO2杂化纳米纤维膜

SiO2杂化纳米纤维膜是一种结合了二氧化硅&#xff08;SiO2&#xff09;纳米颗粒和其他材料&#xff08;如聚合物&#xff09;的复合纳米纤维膜。这种膜材料结合了SiO2的良好性能&#xff08;如高硬度、高耐磨性、热稳定性等&#xff09;和其他材料的特性&#xff08;如柔韧性、…

【XR806开发板试用】基于XR806实现智能小车

一、实验功能&#xff1a; 1、 基于XR806实现WIFI连接路由器 2、 XR806设备创建TCP socket服务器&#xff0c;局域网内通过PC端TCP客服端连接XR806 TCP服务器进行指令控制小车运行&#xff08;指令&#xff21;&#xff1a;前进、&#xff22;&#xff1a;后退、&#xff23;&…

等保测评有那些流程?为什么要做等保

根据《网络安全法》规定&#xff0c;网络运营者应当按照国家的网络安全技术标准和要求&#xff0c;采取技术措施保障网络安全&#xff0c;避免网络安全事件的发生。而等保测评是国家对企事业单位进行信息系统安全等级评定的一项重要制度&#xff0c;通过等级测评&#xff0c;可…

五一出去玩,随身WiFi纽曼和格行,哪个更值得选择?2024随身WiFi大流量全国通用,2024随身WiFi推荐第一名

临近五一&#xff0c;有太多的朋友需要出去游玩&#xff0c;但是会面临网络差&#xff0c;流量不够用等问题&#xff0c;从而选择随身WiFi。那么有非常多的朋友就纠结了&#xff0c;作为老牌企业的格行和纽曼到底选择哪个呢&#xff1f;下面我们将会从网速、续航、售后、客户评…

鸿蒙OpenHarmony【标准系统 烧录】(基于RK3568开发板)

烧录 烧录是指将编译后的程序文件下载到芯片开发板上的动作&#xff0c;为后续的程序调试提供基础。DevEco Device Tool提供一键烧录功能&#xff0c;操作简单&#xff0c;能快捷、高效的完成程序烧录&#xff0c;提升烧录的效率。 RK3568的镜像烧录通过Windows环境进行烧录&…

齐鲁制药集团李伯涛:40年不忘初心,助推企业高质量发展

一个成功的企业&#xff0c;离不开一个思想超前的优秀引领者&#xff0c;齐鲁制药亦是如此。在过去几十年的发展中&#xff0c;在董事长李伯涛的带领下&#xff0c;齐鲁制药研发出一系列领先的药品&#xff0c;不断占据国内、国际医药市场&#xff0c;逐渐成长为具有国际影响力…

Qt QLineEdit详解

1.简介 QLineEdit是一个单行文本编辑器。 行编辑允许用户使用一组有用的编辑功能输入和编辑单行纯文本&#xff0c;包括撤消和重做、剪切和粘贴以及拖放。 通过更改行编辑的echoMode&#xff0c;它也可以用作“只写”字段&#xff0c;用于密码等输入。 文本的长度可以限制为ma…

Web 服务器解析漏洞 原理以及修复方法

漏洞名称 &#xff1a;Web服务器解析漏洞 漏洞描述&#xff1a; 服务器相关中间件存在一些解析漏洞&#xff0c;攻击者可通过上传一定格式的文件&#xff0c;被服务器的中间件进行了解析&#xff0c;这样就对系统造成一定危害。常见的服务器解析漏洞涉及的中间件有IIS&#x…

详解CCF-CSP 202312-3 树上搜索

详解CCF-CSP 202312-3 树上搜索 原题连接 202312-3 树上搜索 代码及详细注释 //一个树形结构的处理程序&#xff0c;主要用于处理一些权重相关的查询 #include <iostream> #include <vector> #include <set>//定义全局变量 //好处&#xff1a; //&#…

《DiffusionNER: Boundary Diffusion for Named Entity Recognition》

Submitted 22 May, 2023; originally announced May 2023. Comments: Accepted to ACL 2023, submission version https://github.com/tricktreat/DiffusionNER 在这里插入图片描述 问题&#xff1a; 命名实体识别任务中存在的噪声跨度&#xff08;边界不清晰&#xff09…

MS17-010---利用“永恒之蓝”漏洞攻击 win7主机

免责声明:本文仅做技术交流与学习.... 目录 一.前置知识 1.何为永恒之蓝&#xff1f; 2.什么是SMB协议&#xff1f; 3.SMB工作原理是什么&#xff1f; 二、实验环境 三、实验步骤 nmap扫描 msf一把梭哈 shell执行命令 远程连接 一&#xff0e; 二&#xff0e; 一.前…

数字化转型新篇章:企业通往智能化的新范式

早在十多年前&#xff0c;一些具有前瞻视野的企业以实现“数字化”为目标启动转型实践。但时至今日&#xff0c;可以说尚无几家企业能够在真正意义上实现“数字化”。 在实现“数字化”的征途上&#xff0c;人们发现&#xff0c;努力愈进&#xff0c;仿佛终点愈远。究其原因&a…

大象机器人开源协作机械臂myCobot 630 全面升级!

1. 开篇概述 在快速发展的机器人技术领域中&#xff0c;Elephant Robotics的myCobot 600已经证明了其在教育、科研和轻工业领域的显著适用性。作为一款具备六自由度的机械臂&#xff0c;myCobot 600以其600mm的工作半径和2kg的末端负载能力&#xff0c;满足了多样化的操作需求。…

VUE的生命周期图和各函数

函数 beforeCreate(){ }, created(){ }, beforeMount(){ }, mounted(){ }, beforeUpdate(){ }, updated(){ }, beforeDestroy(){ }, destroyed(){ } 创建时生命周期图 运行时生命周期图

Java---数据类型与变量

1.字面常量 字面常量就是我们经常所说的常量&#xff0c;常量即在程序运行期间&#xff0c;固定不变的量。且常量是无法改变的&#xff0c;如果我们的代码有改变常量的操作&#xff0c;程序就会报错。 1.1字面常量的分类 字符串常量&#xff0c;整型常量&#xff0c;浮点数常…

XMind轮播图banner测试点

banner测试点 显示1到5张banner图片 [1,5] 6 1 一张不轮播 5 3 0可选 自动轮播,3秒切换一张 鼠标悬停,不轮播 实心为当前图 点击可以跳转 点击左,切换一张图片 点击右, 切换一张图片…

使用MATLAB/Simulink的PID控制系统设计和自动调整

书籍&#xff1a;Pid Control System Design and Automatic Tuning Using Matlab/Simulink 作者&#xff1a;Liuping Wang 出版&#xff1a;Wiley-IEEE Press 书籍下载-《使用MATLAB/Simulink的PID控制系统设计和自动调整》本书涵盖了具有操作约束的PID控制系统的设计、实施…

Android使用ProtoBuf 适配 gradle7.5 gradle8.0

ProtoBuf 适配 Gradle7.5 gradle-wrapper.properties 配置 distributionUrlhttps\://services.gradle.org/distributions/gradle-7.5-bin.zipProject&#xff1a;build.gradle: plugins {id com.android.application version 7.4.2 apply falseid com.android.library versio…

模拟 枚举 贪心(C++ 题目 代码 注解)

目录 题目一&#xff1a; 题目描述 输入描述: 输出描述: 输入 输出 说明 代码&#xff1a; 题目二&#xff1a; 题目描述 输入描述: 输出描述: 输入 输出 代码&#xff1a; 题目三&#xff1a; 题目描述 输入描述: 输出描述: 输入 输出 输入 输出 输入…