当前位置: 首页 > article >正文

NSSCTF_reverse_[SWPUCTF 2021 新生赛]re1——[SWPUCTF 2021 新生赛]re2

目录[SWPUCTF 2021 新生赛]re1[SWPUCTF 2021 新生赛]简简单单的逻辑[LitCTF 2023]世界上最棒的程序员[NSSCTF 2022 Spring Recruit]easy C[SWPUCTF 2021 新生赛]re2[SWPUCTF 2021 新生赛]re1首先先查一下这个exe软件是一个64位程序我们用ida64打开找到可疑的字符串我们点进去看看代码逻辑分析初始密文存储在栈上的Str2区域Str2 3707130418507821947(64位整数)v5 1936864118v6 32051v7 0输入处理读取用户输入的 flag 到Str1将输入中的e(101) 替换为3(51)将输入中的a(97) 替换为4(52)验证将处理后的输入与初始密文比较相同则正确密文解析初始密文在内存中的排列小端序0x3373616273696D7B(Str2)0x5F74695F6B634F(v5需要补全为8字节)0x7D336D(v6v70)将这些十六进制转换为 ASCII注意小端序要反转Str2: 0x3373616273696D7B → 反转字节: 7B 6D 69 73 62 61 73 33→ ASCII: { m i s b a s 3v5: 0x5F74695F6B634F00 → 反转: 00 4F 63 6B 5F 69 74 5F→ ASCII: \0 O c k _ i t _v6: 0x7D336D → 反转: 6D 33 7D→ ASCII: m 3 }我们用脚本跑一下完整代码import struct # 小端序数据 data struct.pack(Q, 3707130418507821947) # Str2 data struct.pack(I, 1936864118) # v5 data struct.pack(H, 32051) # v6 print(密文字节:, data) print(密文ASCII:, data.decode(ascii))得到{mishas3Ock_it_m3}# 已知密文 cipher {34sy_r3v3rs3} # 反向替换3 - e, 4 - a flag cipher.replace(3, e).replace(4, a) print(fFlag: {flag})得到flagNSSCTF{easy_reverse}[SWPUCTF 2021 新生赛]简简单单的逻辑第一步理解加密过程代码大致流程flag xxxxxxxxxxxxxxxxxx list [47, 138, 127, 57, 117, 188, 51, 143, 17, 84, 42, 135, 76, 105, 28, 169, 25] result for i in range(len(list)): key (list[i]4) ((list[i] 0xf) 4) result str(hex(ord(flag[i]) ^ key))[2:].zfill(2) print(result) # resultbcfba4d0038d48bd4b00f82796d393dfeckey的计算list[i] 4取高 4 位(list[i] 0xf) 4取低 4 位并移到高 4 位这两个相加其实就是交换高 4 位和低 4 位比如470x2F高 4 位0x2低 4 位0xF交换后变成0xF2242。ord(flag[i]) ^ keyflag 字符的 ASCII 值与 key 进行异或结果转为 2 位十六进制字符串拼接起来得到最终密文第二步已知密文密文bcfba4d0038d48bd4b00f82796d393dfec长度 34 个十六进制字符代表 17 个字节对应list长度 17。第三步解密思路加密是异或操作且 key 只依赖于list所以直接逆推即可将密文每 2 个字符转成十进制整数即加密后的字节用同样的方法计算出key用密文字节 ^ key得到 flag 的 ASCII 码转成字符第四步解密脚本完整代码list_data [47, 138, 127, 57, 117, 188, 51, 143, 17, 84, 42, 135, 76, 105, 28, 169, 25] cipher_hex bcfba4d0038d48bd4b00f82796d393dfec # 将十六进制字符串按每2个字符切分 cipher_bytes [int(cipher_hex[i:i2], 16) for i in range(0, len(cipher_hex), 2)] flag for i in range(len(list_data)): # 计算 key高低4位互换 key (list_data[i] 4) ((list_data[i] 0xf) 4) # 异或解密 flag_char chr(cipher_bytes[i] ^ key) flag flag_char print(flag)运行后得到flagNSSCTF{EZEZ_RERE}[LitCTF 2023]世界上最棒的程序员首先查一下是32位的exe软件我们用ida32打开shiftF12直接找到flag最后flag为NSSCTF{I_am_the_best_programmer_ever}[NSSCTF 2022 Spring Recruit]easy C这段代码的逻辑是输入的字符串经过a[i]和a[i] a[i] ^ 2的变换后如果与b相等则正确。我们已知目标数组b是dvxbQd我们需要逆向推导出原始的输入。逆向过程加密过程是a[i]a[i] a[i] ^ 2所以解密需要反过来先用b[i] ^ 2再减 1计算过程b dvxbQd flag for c in b: original (ord(c) ^ 2) - 1 flag chr(original) print(flag)最后flag为NSSCTF{easy_Re}[SWPUCTF 2021 新生赛]re2用ida64打开找到伪代码步骤 1分析代码逻辑目标字符串构造代码中Str2、v5、v6经过小端序打包后是我们需要对比的目标字符串。字符变换规则若输入字符是A/B/a/b则加 24否则减 2。逆向思路根据变换后的字符t反推原始字符c若t - 24是A/B/a/b则c t - 24否则c t 2。步骤 2Python 实现逆向完整代码import struct # 1. 定义代码中的目标值 Str2 7167867335899966585 v5 2070968689 v6 0 # 2. 构造目标字符串小端序打包Q8字节, I4字节, B1字节 target struct.pack(Q, Str2) struct.pack(I, v5) struct.pack(B, v6) flag [] for t in target: if t 0: # 遇到字符串结束符停止 break # 3. 逆向还原原始字符 candidate1 t - 24 if candidate1 in {65, 66, 97, 98}: # 检查是否为 A/B/a/b flag.append(chr(candidate1)) else: flag.append(chr(t 2)) print(Flag:, .join(flag))flag为anss_caesar}NSSCTF{nss_caesar}

相关文章:

NSSCTF_reverse_[SWPUCTF 2021 新生赛]re1——[SWPUCTF 2021 新生赛]re2

目录 [SWPUCTF 2021 新生赛]re1 [SWPUCTF 2021 新生赛]简简单单的逻辑 [LitCTF 2023]世界上最棒的程序员 [NSSCTF 2022 Spring Recruit]easy C [SWPUCTF 2021 新生赛]re2 [SWPUCTF 2021 新生赛]re1 首先先查一下这个exe软件 是一个64位程序,我们用ida64打开 找…...

Twisted:开源栈式 JS 虚拟机(JSVMP)功能介绍、痛点、后续计划

Twisted:开源栈式 JS 虚拟机(JSVMP)功能介绍、痛点、后续计划 仓库:github.com/0xfffb/twisted 测试地址:click 定位 Twisted 是用 TypeScript 实现的栈帧式 JSVMP 工具链:将子集 JavaScript 编译为自定…...

用 Shield CLI 本地开发调试:从零到上线你的第一个 Skill

当 AI Agent 需要调用外部能力时,Skill 就是它的"技能包"。本文以一个文旅素材搜索 Skill 为例,带你走完本地开发 → 调试 → 发布 → 安装使用的完整流程。核心工具只有一个 —— Shield CLI。 背景:什么是 Skill? Sk…...

可口可乐在美国250周年庆活动中唱响“我想给美国买瓶可乐”

可口可乐公司正式启动一项为期一年的全国性营销活动,以配合其与“美国250周年委员会(America250)”的合作伙伴关系。该委员会是负责筹备美国建国250周年庆典的非营利组织。 活动核心是一支三分钟的赞歌式视频《畅饮美国(Drink In…...

Efinity入门--运行第一个程序

1、新建工程与编码 file–create project这里只需要改好项目名字和所用的芯片即可。注意,这里top module 名字要和项目名字一样。 之后,file–new file,创建一个verilog文件。在这里面创建功能代码,注意最顶层的module要和项目名字…...

【Charles 抓包工具笔记】(自用复盘版)

📡 Charles 抓包工具笔记(自用复盘版)适用场景:HTTP/HTTPS 抓包分析、接口调试、弱网测试、移动端测试 最后更新:2026-04-09一、Charles 简介 1.1 基本信息 Charles:中文名“青花瓷”,是一款基于…...

Claude Code 从零复刻教程 - 完整大纲

Claude Code 从零复刻教程 - 完整大纲 本教程面向有 JavaScript 基础的开发者,通过 12 篇系列文章,从零构建一个类似 Claude Code 的 AI 编程助手 CLI 工具。 目录 教程简介技术栈系列大纲每篇教程结构学习路径 教程简介 什么是 Claude Code&#xff1…...

拆解政务知识库落地:从0到日均万次应答的实战手记

在基层政务服务中,“这个政策怎么解读?”“社保卡丢了去哪补办?”这类问题每天被重复成百上千次。政策法规分散在数十个系统中,居民问不清,工作人员也答不准。如何在不增加编制的前提下,让90%的重复性问题被…...

【限时技术解禁】GraalVM静态镜像内存优化速查表(含JFR+Native Memory Tracking双验证脚本),仅开放72小时下载

第一章:GraalVM静态镜像内存优化快速接入全景概览GraalVM 静态镜像(Native Image)通过提前编译(AOT)将 Java 应用编译为独立、无 JVM 依赖的原生可执行文件,在启动速度与内存占用方面具备显著优势。然而&am…...

“.NET 11 + ONNX Runtime 1.18 + Triton集成”三重加速组合拳:某全球Top3药企临床辅助诊断系统P99延迟压至17ms的完整链路揭秘

第一章:“.NET 11 ONNX Runtime 1.18 Triton集成”三重加速组合拳:某全球Top3药企临床辅助诊断系统P99延迟压至17ms的完整链路揭秘该系统面向高并发、低延迟的病理图像实时推理场景,需在单次请求中完成多模态(HE染色切片免疫组化…...

SecGPT-14B私有化部署:企业内网安全使用OpenClaw的方案

SecGPT-14B私有化部署:企业内网安全使用OpenClaw的方案 1. 为什么需要内网专属AI助手 去年我在某金融机构参与了一个敏感项目,客户要求所有数据处理必须在隔离网络中完成。当我第一次尝试用公有云API调用AI能力时,安全团队立即叫停了整个流…...

PowerMeter:嵌入式电能计量开源库设计与实现

1. 项目概述PowerMeter 是一款面向嵌入式电能计量场景的轻量级开源库,专为基于 ZMPT101B 电压传感器与 ZMCT103C 电流传感器构建的单相交流电参数测量系统而设计。该库不依赖特定硬件平台(如 Arduino、ESP32 或 STM32),其核心抽象…...

SQL如何计算分组内的加权平均值_使用SUM与除法运算

<p>分组加权平均 SUM(值 * 权重) / NULLIF(SUM(权重), 0)&#xff0c;需在 GROUP BY 下按组分别计算分子分母&#xff1b;权重为NULL时SUM自动忽略&#xff0c;应显式过滤或处理&#xff1b;避免重复SUM影响性能。</p>用 SUM() 和除法算分组加权平均&#xff0c;核…...

Vibe Coding 程序员何去何从?最大的价值是质疑能力

当 AI 成为强力执行者&#xff0c;细节做得好不好、快不快&#xff0c;都不再重要。模型会越来越智能、越来越快。但真正决定你能用好 AI 还是被 AI 牵着走的&#xff0c;是你的思考能力。 专业能力的本质是质疑能力 很多人以为用好 AI 的关键是写好提示词&#xff08;Prompt&…...

重新定义翻译质量评估:COMET的智能引擎与行业变革

重新定义翻译质量评估&#xff1a;COMET的智能引擎与行业变革 【免费下载链接】COMET A Neural Framework for MT Evaluation 项目地址: https://gitcode.com/gh_mirrors/com/COMET 在全球化内容生产的浪潮中&#xff0c;翻译质量评估长期被一个认知误区所困扰——许多…...

什么是引线键合(WireBonding)

引线键合&#xff08;WireBonding&#xff09;引线键合是一种使用细金属线&#xff0c;利用热、压力、超声波能量为使金属引线与基板焊盘紧密焊合&#xff0c;实现芯片与基板间的电气互连和芯片间的信息互通。在理想控制条件下&#xff0c;引线和基板间会发生电子共享或原子的相…...

Windows Defender Remover终极指南:彻底释放系统性能的3种方法

Windows Defender Remover终极指南&#xff1a;彻底释放系统性能的3种方法 【免费下载链接】windows-defender-remover A tool which is uses to remove Windows Defender in Windows 8.x, Windows 10 (every version) and Windows 11. 项目地址: https://gitcode.com/gh_mir…...

易基因|PBJ/IF10.5:西南大学吕典秋课题组揭示m6A甲基化修饰调控马铃薯耐盐性的新机制

​​大家好&#xff0c;这里是专注表观组学十余年&#xff0c;领跑多组学科研服务的易基因。 近日&#xff0c;Plant Biotechnology Journal杂志在线发表了由西南大学吕典秋课题组撰写的“StALKBH10B-mediated RNA m6A modification inhibits potato salt tolerance by target…...

如何处理死锁异常_ORA-00060捕获与重试机制设计

ORA-00060是死锁&#xff0c;非单纯竞争&#xff1b;Oracle检测到多个会话互持对方所需锁并主动回滚其中一个事务&#xff0c;需通过trace文件分析Deadlock graph定位具体行锁冲突及session&#xff0c;不可盲目重试。ORA-00060 是死锁还是竞争&#xff1f;先看日志里真正冲突的…...

不换设备、不重写程序:耐达讯自动化网关如何实现CC-Link IE转Modbus TCP的高效互通?

在工业4.0与智能制造加速落地的当下&#xff0c;工厂自动化系统的集成复杂度日益攀升。一个普遍存在的工程痛点在于&#xff1a;控制层往往采用以三菱电机为代表的CC-Link IE高速工业以太网&#xff0c;追求微秒级的同步与海量数据吞吐&#xff1b;而现场设备层却依然大量存留着…...

LangChain教程-、Langchain基础磐

简介 AI Agent 不仅仅是一个能聊天的机器人&#xff08;如普通的 ChatGPT&#xff09;&#xff0c;而是一个能够感知环境、进行推理、自主决策并调用工具来完成特定任务的智能系统&#xff0c;更够完成更为复杂的AI场景需求。 AI Agent 功能 根据查阅的资料&#xff0c;agent的…...

OpenClaw安全实践:Gemma-3-12b-it本地化保障敏感数据处理

OpenClaw安全实践&#xff1a;Gemma-3-12b-it本地化保障敏感数据处理 1. 为什么选择本地化部署 去年我在处理一批财务数据时&#xff0c;曾尝试使用某云端大模型服务进行报表分析。当系统提示"您的数据将被传输至第三方服务器进行处理"时&#xff0c;那种对敏感信息…...

性价比高的水泥压力板哪家技术强

在建筑材料市场中&#xff0c;水泥压力板凭借其诸多优势&#xff0c;如防火、防潮、隔音等&#xff0c;成为众多建筑项目的理想选择。对于追求性价比的客户来说&#xff0c;选择一家技术实力强的水泥压力板品牌至关重要。兴达成就是这样一家在市场上具有较高声誉的品牌&#xf…...

StructBERT中文相似度模型效果展示:LCQMC与ChineseSTS精准匹配案例集

StructBERT中文相似度模型效果展示&#xff1a;LCQMC与ChineseSTS精准匹配案例集 1. 引言&#xff1a;当AI能读懂句子的“言外之意” 你有没有遇到过这样的场景&#xff1f;在搜索引擎里输入一个问题&#xff0c;结果返回的答案和你问的完全不是一回事。或者&#xff0c;你想…...

智能营销新纪元:揭秘星图销冠系统如何用AI自动化重塑企业获客生态

在数字化转型浪潮席卷各行各业的今天&#xff0c;企业获客成本持续攀升&#xff0c;传统营销方式疲态尽显。寻找一家真正专业AI企业、服务好AI服务商&#xff0c;引入一套能打通公域引流与私域转化全链路的智能系统&#xff0c;已成为众多市场决策者的核心诉求。市场上声称能提…...

如何划分接口文档?

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快1、首先最主要的就是要分析接口测试文档&#xff0c;每一个公司的测试文档都是不一样的。具体的就要根据自己公司的接口而定&#xff0c;里面缺少的内容自己需要与开…...

OpenClaw性能调优实战:提升Kimi-VL-A3B-Thinking多模态响应速度的5个技巧

OpenClaw性能调优实战&#xff1a;提升Kimi-VL-A3B-Thinking多模态响应速度的5个技巧 1. 问题背景与性能瓶颈分析 最近我在本地部署了Kimi-VL-A3B-Thinking多模态模型&#xff0c;并通过OpenClaw与之对接&#xff0c;构建了一个自动化图文处理的工作流。但在实际使用中发现&a…...

Glide:Android图片加载的瑞士军刀,真的有这么神?

Glide&#xff1a;Android图片加载的瑞士军刀&#xff0c;真的有这么神&#xff1f; Glide 是什么&#xff0c;为何选择它 在 Android 开发的世界里&#xff0c;图片加载是一个绕不开的重要环节。想象一下&#xff0c;在一个社交类 APP 中&#xff0c;用户的头像、发布的照片&a…...

基于Arm Cortex-M7内核GD32H7

基于Arm Cortex-M7内核&#xff0c;主频高达750MHz&#xff0c;并配备了高速大容量内存架构&#xff0c;旨在以“超高算力”与“实时通信”能力&#xff0c;为伺服控制、数字电源、智能家居&#xff08;885478&#xff09;等下一代智能装备提供核心硬件基础。 性能铁三角&#…...

查老板信息免费?3款工具深度功能对比(附避坑指南)

查老板信息免费的方法有很多&#xff0c;但大多数人都只停留在基础工商信息层面。真正能免费查到深度信息&#xff08;关联企业、风险记录、AI解读&#xff09;的工具其实不多&#xff0c;我最近亲测了几款常用工具&#xff0c;发现风鸟企业查询平台在免费深度功能方面表现突出…...