Re--题

article/2025/7/22 2:42:20

一.[NSSCTF 2022 Spring Recruit]easy C

直接看for循环,异或

写代码

就得到了flag       easy_Re

二.[SWPUCTF 2021 新生赛]非常简单的逻辑题

先对这段代码进行分析

flag = 'xxxxxxxxxxxxxxxxxxxxx'
s = 'wesyvbniazxchjko1973652048@$+-&*<>'
result = ''
for i in range(len(flag)):
    s1 = ord(flag[i])//17  //ord(flag[i]) 获取 flag 字符串中第 i 个字符的 ASCII 码值。

s2 = ord(flag[i])%17
    result += s[(s1+i)%34]+s[-(s2+i+1)%34]
print(result)
# result = 'v0b9n1nkajz@j0c4jjo3oi1h1i937b395i5y5e0e$i'

假如flag的第一个字母是N,N的ASCII码值是78,78//17=4,所以s1是4,78%17=10,所以s2是10. 此时i=0,(s1+i)%34=4,-(s2+i+1)%34=-11

那就是在s里面找第五个字母,倒着在s里面找第十一个字母,也就是v0,result就是这样来的。

现在知道了result倒推flag即可

flag = ""

enc = "v0b9n1nkajz@j0c4jjo3oi1h1i937b395i5y5e0e$i"

s = "wesyvbniazxchjko1973652048@$+-&*<>"

for i in range(len(enc)//2):

    for j in range(34,127):

        s1 = j//17

        s2 = j%17

        if (enc[2*i] == s[(s1+i)%34] and enc[2*i+1] == s[-(s2+i+1)%34]):

            flag += chr(j)

print(flag)

NSSCTF{Fake_RERE_QAQ}

三.

[SWPUCTF 2022 新生赛]upx

脱壳

Upx -d

这是一道异或

就得到了flag

四.[HGAME 2022 week1]easyasm

拖进ida64

不能f5查看伪代码,所以要分析汇编代码,看一下dseg和seg001函数

dseg里面是一个假的flag

看一下seg001函数

Shift+e导出来

0x91, 0x61, 0x01, 0xC1, 0x41, 0xA0, 0x60, 0x41, 0xD1, 0x21,

0x14, 0xC1, 0x41, 0xE2, 0x50, 0xE1, 0xE2, 0x54, 0x20, 0xC1,

0xE2, 0x60, 0x14, 0x30, 0xD1, 0x51, 0xC0, 0x17

分析汇编语言

由于汇编语言还没怎么学,所以ai了一下

这段代码是用汇编语言编写的,它执行了一系列的位操作和比较。下面是每条指令的解释:

xor ax, ax:将寄存器 ax 清零。

mov al, [si]:将内存地址 si 指向的值移动到寄存器 al 中。

shl al, 1:将 al 寄存器中的值左移一位,相当于乘以2。

shl al, 1:再次左移一位。

shl al, 1:第三次左移一位。

shl al, 1:第四次左移一位,总共左移了四位,相当于乘以16。

push ax:将 ax 寄存器的值压入堆栈。

xor ax, ax:再次将 ax 寄存器清零。

mov al, [si]:再次将内存地址 si 指向的值移动到寄存器 al 中。

shr al, 1:将 al 寄存器中的值右移一位,相当于除以2。

shr al, 1:再次右移一位。

shr al, 1:第三次右移一位。

shr al, 1:第四次右移一位,总共右移了四位,相当于除以16。

pop bx:从堆栈中弹出一个值到寄存器 bx 中,这个值是之前 ax 的值,即0。

add ax, bx:将 bx 寄存器的值加到 ax 寄存器中,由于 bx 是0,所以 ax 的值不变。

xor ax, 17h:将 ax 寄存器的值与十六进制数 17h 进行异或操作。

add si, 1:将 si 寄存器的值加1,指向下一个内存地址。

cmp al, es:[si-1]:比较 al 寄存器的值与 es 段寄存器和 si-1 地址指向的内存值。

jz short loc_100DD:如果比较结果为零(即两个值相等),则跳转到标签 loc_100DD 处执行。

首先是将ax清零,然后从数据段中拿出数据,向左偏移4,压入栈中,再清零ax,再从数据段中拿出数据,再向右偏移4,将栈中的数据拿出给bx,ax+bx,再拿ax与 (十六进制的17)23进行异或,最后的数据拿来和额外段的数据比较。

逆着这个逻辑写脚本

先与十六进制的17进行异或,右移4位 再将左移后的值对128取模,两者相加后对应ASCII码

就得到了flag

NSSCTF{welc0me_to_4sm_w0rld}

五.[SWPUCTF 2021 新生赛]老鼠走迷宫

下载完没有后缀,拖入010

搜一下MZ开头是什么文件

添加后缀

然后我们需要将exe转化为py

将其放到pyinstxtractor.py这个工具下面

cmd打开终端

输入命令 python pyinstxtractor.py 文件名

将5.pyc和struct.pyc这两个pyc文件拖入010中,将struct的前16位十六进制数复制到5.pyc开头

另存为

然后使用在线网站

套脚本

得到sssssddssddssaaaassssddwwddddssssssaawwaassssddssaassddddwwddssddwwwwwwwwaawwddwwwwaaaawwddwwwwddssssddwwwwddddwwddddssaassaassddddssddssaassssssddsssssss

Md5解密

就得到了

69193150b15c87d39252d974bc323217

所以flag就是NSSCTF{69193150b15c87d39252d974bc323217}

                                                                                                                               


http://www.hkcw.cn/article/DXgAxWOmKQ.shtml

相关文章

iOS 集成网易云信IM

云信官方文档在这 看官方文档的时候&#xff0c;版本选择最新的V10。 1、CocoPods集成 pod NIMSDK_LITE 2、AppDelegate.m添加头文件 #import <NIMSDK/NIMSDK.h> 3、初始化 NIMSDKOption *mrnn_option [NIMSDKOption optionWithAppKey:"6f6568e354026d2d658a…

边缘计算网关支撑医院供暖系统高效运维的本地化计算与边缘决策

一、项目背景 医院作为人员密集的特殊场所&#xff0c;对供暖系统的稳定性和高效性有着极高的要求。其供暖换热站传统的人工现场监控方式存在诸多弊端&#xff0c;如人员值守成本高、数据记录不及时不准确、故障发现和处理滞后、能耗难以有效监测和控制等&#xff0c;难以满足…

Google Earth Pro 7.3 中文绿色版 - 谷歌地球专业版(精准定位,清晰查看您家位置)

谷歌卫星高清地图 下载链接&#xff1a;https://pan.quark.cn/s/c6069864c9f3 Google Earth Pro-7.3.6.9796-x64 Google Earth WinMac安装版 GoogleEarthProPortable googleearthpromac-intel-7.3.6.10155 GoogleEarthProWin-7.3.6.10155 GoogleEarthProWin-x64-7.3.6.10…

【工作笔记】 WSL开启报错

【工作笔记】 WSL开启报错 时间&#xff1a;2025年5月30日16:50:42 1.现象 Installing, this may take a few minutes... WslRegisterDistribution failed with error: 0x80370114 Error: 0x80370114 ??????????????????Press any key to continue...

《TCP/IP 详解 卷1:协议》第3章:链路层

以太网和IEEE802局域网/城域网标准 IEEE802局域网/城域网标准 IEEE 802 是一组由 IEEE&#xff08;电气与电子工程师协会&#xff09;定义的局域网和城域网通信标准系列&#xff0c;涵盖了从物理层到链路层的多个网络技术。其中&#xff1a; IEEE 802.3 定义的是传统的以太网…

【定昌linux开发板】设置密码的有效时间

查看密码策略命令 sudo chage -l 用户名 先查询下默认情况下&#xff0c;密码策略 结果&#xff1a; 可以看出&#xff0c;密码没什么策略 那么我要设置30天后过期&#xff0c;并且七天前要进行提醒 sudo chage -M 30 用户名 再进行查询&#xff0c;结果如下 显示密码的有…

Vue-数据监听

数据监听 基础信息 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><title>数据监听</title><!-- 引入Vue --><script type"text/javascript" src"../js/vue.js&qu…

Java 注解式限流教程(使用 Redis + AOP)

Java 注解式限流教程&#xff08;使用 Redis AOP&#xff09; 在上一节中&#xff0c;我们已经实现了基于 Redis 的请求频率控制。现在我们将进一步升级功能&#xff0c;使用 Spring AOP 自定义注解 实现一个更优雅、可复用的限流方式 —— 即通过 RateLimiter 注解&#xf…

C++学习-入门到精通【10】面向对象编程:多态性

C学习-入门到精通【10】面向对象编程&#xff1a;多态性 目录 C学习-入门到精通【10】面向对象编程&#xff1a;多态性一、多态性介绍&#xff1a;多态电子游戏二、类继承层次中对象之间的关系1.从派生类对象调用基类函数2.将派生类指针指向基类对象3.通过基类指针调用派生类的…

基于springboot的医护人员排班系统设计与实现(源码+文档+部署讲解)

技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文…

1、python代码实现与大模型的问答交互

一、基础知识 1.1导入库 torch 是一个深度学习框架&#xff0c;用于处理张量和神经网络。modelscope是由阿里巴巴达摩院推出的开源模型库。 AutoTokenizer 是ModelScope 库的类&#xff0c;分词器应用场景包括自然语言处理&#xff08;NLP&#xff09;中的文本分类、信息抽取…

再见Cursor!Trae Pro 登场

5 月 27 日&#xff0c;字节跳动旗下的 AI 编辑器 Trae 国际版正式推出了 Pro 订阅计划。长期以来&#xff0c;Trae 凭借免费使用和出色的编程体验&#xff0c;深受大家喜爱。不过&#xff0c;免费版在实际使用中&#xff0c;排队等待的情况时有发生&#xff0c;着实给用户带来…

【Docker 从入门到实战全攻略(一):核心概念 + 命令详解 + 部署案例】

1. 是什么 Docker 是一个用于开发、部署和运行应用程序的开源平台&#xff0c;它使用 容器化技术 将应用及其依赖打包成独立的容器&#xff0c;确保应用在不同环境中一致运行。 2. Docker与虚拟机 2.1 Docker&#xff08;容器化&#xff09; 容器化是一种轻量级的虚拟化技术…

rm删除到回收站

rm删除到回收站 背景安装trash-clipip安装包管理器安装 将trash-put别名设为rm设置回收站文件过期时间 trash基本用法删除文件删除后文件去了哪里 查看回收站从回收站中恢复文件恢复文件到指定路径 删除回收站中的指定文件 背景 在Linux命令行下操作的时候会不小心误删文件或目…

DDP与FSDP:分布式训练技术全解析

DDP与FSDP:分布式训练技术全解析 DDP(Distributed Data Parallel)和 FSDP(Fully Sharded Data Parallel)均为用于深度学习模型训练的分布式训练技术,二者借助多 GPU 或多节点来提升训练速度。 1. DDP(Distributed Data Parallel) 实现原理 数据并行:把相同的模型复…

数据采集是什么?一文讲清数据采集系统的模式!

目录 一、数据采集是什么&#xff1f; 二、为什么要进行数据采集 1. 为企业决策提供依据 2. 推动科学研究的发展 3. 提升生产效率和质量 三、数据采集系统的模式 1. 实时采集模式 2. 定时采集模式 3. 事件驱动采集模式 四、不同模式的应用场景及选择考虑因素 1. 应用…

python学习day33

知识点回顾&#xff1a; 1.PyTorch和cuda的安装 2.查看显卡信息的命令行命令&#xff08;cmd中使用&#xff09; 3.cuda的检查 4.简单神经网络的流程 a.数据预处理&#xff08;归一化、转换成张量&#xff09; b.模型的定义 i.继承nn.Module类 ii.定义每一个层 iii.定义前向传播…

Python中的变量、赋值及函数的参数传递概要

Python中的变量、赋值及函数的参数传递概要 python中的变量、赋值 python中的变量不是盒子。 python中的变量无法用“变量是盒子”做解释。图说明了在 Python 中为什么不能使用盒子比喻&#xff0c;而便利贴则指出了变量的正确工作方式。 如果把变量想象为盒子&#xff0c;那…

如何优化微信小程序中渲染带有图片的列表(二进制流存储方式的图片存在本地数据库)

方法一&#xff1a;对列表的获取进行分页处理 实现方法&#xff1a; 前端请求&#xff08;需要向后端传两个参数&#xff0c;pageIndex是获取第几页是从0开始&#xff0c;pageSize是这一页需要获取多少个数据&#xff09; 后端接口实现&#xff08;因为这里是通过参数拼接请求…

电磁器件的“折纸革命“:牛津《Sci. Reports》发布剪纸超材料

01 前沿速递&#xff1a;顶尖团队破解行业难题 近日&#xff0c;牛津大学工程科学系杨云芳、Andrea Vallecchi、Ekaterina Shamonina、Christopher Stevens及游忠教授团队在《Scientific Reports》发表突破性研究&#xff0c;提出一类基于剪纸&#xff08;Kirigami&#xff0…