XY_RE复现(二)

2024-04-30 00:36
文章标签 复现 re xy

本文主要是介绍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; // eaxvoid *v1; // eax_DWORD *v2; // eaxunsigned int v3; // ecxint v4; // ebxint v5; // eaxint 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] BYREFLPVOID v11; // [esp+8h] [ebp-14h] BYREFLPVOID v12; // [esp+Ch] [ebp-10h] BYREFLPVOID lpMem; // [esp+10h] [ebp-Ch] BYREFLPVOID v14; // [esp+14h] [ebp-8h]LPVOID v15; // [esp+18h] [ebp-4h] BYREFv15 = 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);elseresult = 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)

 

 

这篇关于XY_RE复现(二)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/947556

相关文章

Detectorn2预训练模型复现:数据准备、训练命令、日志分析与输出目录

Detectorn2预训练模型复现:数据准备、训练命令、日志分析与输出目录 在深度学习项目中,目标检测是一项重要的任务。本文将详细介绍如何使用Detectron2进行目标检测模型的复现训练,涵盖训练数据准备、训练命令、训练日志分析、训练指标以及训练输出目录的各个文件及其作用。特别地,我们将演示在训练过程中出现中断后,如何使用 resume 功能继续训练,并将我们复现的模型与Model Zoo中的

UMI复现代码运行逻辑全流程(一)——eval_real.py(尚在更新)

一、文件夹功能解析 全文件夹如下 其中,核心文件作用为: diffusion_policy:扩散策略核心文件夹,包含了众多模型及基础库 example:标定及配置文件 scripts/scripts_real:测试脚本文件,区别在于前者倾向于单体运行,后者为整体运行 scripts_slam_pipeline:orb_slam3运行全部文件 umi:核心交互文件夹,作用在于构建真

文章解读与仿真程序复现思路——电力自动化设备EI\CSCD\北大核心《考虑燃料电池和电解槽虚拟惯量支撑的电力系统优化调度方法》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源程序擅长文章解读,论文与完整源程序,等方面的知识,电网论文源程序关注python

【vulhub】thinkphp5 2-rce 5.0.23-rce 5-rce 漏洞复现

2-rec 1.启动环境  cd /.../vulhub/thinkphp/2-rce # cd进入2-rce靶场文件环境下docker-compose up -d # docker-compose启动靶场docker ps -a # 查看开启的靶场信息 2.访问192.168.146.136:8080网页 3.构造payload http

【漏洞复现】赛蓝企业管理系统 GetJSFile 任意文件读取漏洞

免责声明:         本文内容旨在提供有关特定漏洞或安全漏洞的信息,以帮助用户更好地了解可能存在的风险。公布此类信息的目的在于促进网络安全意识和技术进步,并非出于任何恶意目的。阅读者应该明白,在利用本文提到的漏洞信息或进行相关测试时,可能会违反某些法律法规或服务协议。同时,未经授权地访问系统、网络或应用程序可能导致法律责任或其他严重后果。作者不对读者基于本文内容而产生的任何行为或后果承担

013.Python爬虫系列_re正则解析

我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈 入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈 虚 拟 环 境 搭 建 :👉👉 Python项目虚拟环境(超详细讲解) 👈👈 PyQt5 系 列 教 程:👉👉 Python GUI(PyQt5)文章合集 👈👈 Oracle数据库教程:👉👉 Oracle数据库文章合集 👈👈 优

深度学习每周学习总结N9:transformer复现

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 | 接辅导、项目定制 目录 多头注意力机制前馈传播位置编码编码层解码层Transformer模型构建使用示例 本文为TR3学习打卡,为了保证记录顺序我这里写为N9 总结: 之前有学习过文本预处理的环节,对文本处理的主要方式有以下三种: 1:词袋模型(one-hot编码) 2:TF-I

【达梦数据库】误删数据库目录问题复现解决方式

目录 1、环境搭建1.1、查询数据库版本1.2、创建表1.3、插入数据1.4、查询数据 2、故障重演2.1、服务器内直接删除整个库文件2.2、查询数据:数据可查2.3、查看进程:进程存在2.4、查看proc进程文件:deleted 3、数据恢复3.1、逻辑导出导入-(数据丢失,废弃)3.1.1、全库导出3.1.2、重新初始化库3.1.3、全库导入3.1.4、查询数据:数据丢失

【漏洞复现】锐捷 校园网自助服务系统 login_judge.jsf 任意文件读取漏洞

免责声明:         本文内容旨在提供有关特定漏洞或安全漏洞的信息,以帮助用户更好地了解可能存在的风险。公布此类信息的目的在于促进网络安全意识和技术进步,并非出于任何恶意目的。阅读者应该明白,在利用本文提到的漏洞信息或进行相关测试时,可能会违反某些法律法规或服务协议。同时,未经授权地访问系统、网络或应用程序可能导致法律责任或其他严重后果。作者不对读者基于本文内容而产生的任何行为或后果承担

Login failed:make sure your username and password are correct and that you’re an admin or moderator

Login failed:make sure your username and password are correct and that you’re an admin or moderator   1.使用MySql查看工具进入数据库,进入表“ofuser”,把字段 plainPassword 改成 123,然后在你的控制台上输入该表的   username跟plainPa