网站seo描述网站建设毕业设计中期报告

张小明 2026/3/12 18:00:52
网站seo描述,网站建设毕业设计中期报告,网站界面美观度,网站建设周期与进度安排【攻防世界】reverse | xxxorrr 详细题解 WP 下载附件 看这道题1积分有很多人解出来#xff0c;以为是简单的异或题目#xff0c;还有一个隐藏 sub_84A 函数 需要通过s1变量来定位到隐藏 sub_84A 函数 main函数伪代码#xff1a; __int64 __fastcall main(int a1, char *…【攻防世界】reverse | xxxorrr 详细题解 WP下载附件看这道题1积分有很多人解出来以为是简单的异或题目还有一个隐藏sub_84A函数需要通过s1变量来定位到隐藏sub_84A函数main函数伪代码__int64 __fastcallmain(inta1,char**a2,char**a3){inti;// [rspCh] [rbp-34h]chars[40];// [rsp10h] [rbp-30h] BYREFunsigned__int64 v6;// [rsp38h] [rbp-8h]v6__readfsqword(0x28u);sub_A90((void(__fastcall*)(void*))sub_916);fgets(s,35,stdin);for(i0;i33;i)s1[i]^s[i];return0LL;}sub_916函数伪代码unsigned__int64sub_916(){unsigned__int64 v1;// [rsp8h] [rbp-8h]v1__readfsqword(0x28u);if(!strcmp(s1,s2))puts(Congratulations!);elseputs(Wrong!);return__readfsqword(0x28u)^v1;}sub_84A函数伪代码unsigned__int64sub_84A(){inti;// [rspCh] [rbp-14h]unsigned__int64 v2;// [rsp18h] [rbp-8h]v2__readfsqword(0x28u);for(i0;i33;i)s1[i]^2*i65;return__readfsqword(0x28u)^v2;}expdefcrack_flag():# 1. 原始s1数组34字节i0~33s1_original[0x71,0x61,0x73,0x78,0x63,0x79,0x74,0x67,0x73,0x61,0x73,0x78,0x63,0x76,0x72,0x65,0x66,0x67,0x68,0x6E,0x72,0x66,0x67,0x68,0x6E,0x6A,0x65,0x64,0x66,0x67,0x62,0x68,0x6E,0x00]# 2. 目标s2数组34字节i0~33s2_target[0x56,0x4E,0x57,0x58,0x51,0x51,0x09,0x46,0x17,0x46,0x54,0x5A,0x59,0x59,0x1F,0x48,0x32,0x5B,0x6B,0x7C,0x75,0x6E,0x7E,0x6E,0x2F,0x77,0x4F,0x7A,0x71,0x43,0x2B,0x26,0x89,0xFE]# 3. 计算输入s_inputs_input_bytes[]s_input_chars[]foriinrange(34):# 动态密钥2*i 650x41 2*ikey2*i65# 核心公式s_input s1_original ^ key ^ s2_targetinput_bytes1_original[i]^key^s2_target[i]s_input_bytes.append(input_byte)# 转换为字符可打印字符直接显示不可打印用\xXX表示if32input_byte126:input_charchr(input_byte)else:input_charf\\x{input_byte:02x}s_input_chars.append(input_char)# 4. 验证结果正确性verify[]foriinrange(34):key2*i65# 模拟程序处理流程s1_original ^ key ^ s_input → 应等于s2_targetprocesseds1_original[i]^key^s_input_bytes[i]verify.append(processed)is_validverifys2_target# 5. 输出结果print( 解题结果 )print(f1. 输入字节十六进制{ .join(f{b:02x}forbins_input_bytes)})print(f2. 输入字符{.join(s_input_chars)})print(f3. 验证结果{通过ifis_validelse失败})print(f4. Flag格式:{.join(s_input_chars)})returns_input_bytes,s_input_charsif__name____main__:crack_flag()运行 exp 脚本flag{c0n5truct0r5_functi0n_in_41f}【攻防世界】reverse | xxxorrr 详细题解 WP 原来深度解析CTF 逆向实战xxxorrr 深度解析与异或类题目通用解题框架在 CTF 逆向题目中异或XOR运算因其可逆性和简单性被广泛应用是入门级到进阶级题目中常见的加密手段。本文以攻防世界 reverse 板块的 xxxorrr 题目为例从程序逻辑拆解、关键数据提取、数学原理分析到代码实现全方位展示异或类题目的解题思路并总结通用解题框架帮助读者实现 “举一反三”。一、题目初探程序执行流程全景扫描1.1 逆向工程初步成果通过 IDA 或 Ghidra 对二进制文件进行反编译我们得到三个关键函数的伪代码这三个函数构成了程序的核心逻辑链main 函数输入处理核心__int64 __fastcallmain(inta1,char**a2,char**a3){inti;// [rspCh] [rbp-34h]chars[40];// [rsp10h] [rbp-30h] BYREFunsigned__int64 v6;// [rsp38h] [rbp-8h]v6__readfsqword(0x28u);sub_A90((void(__fastcall*)(void*))sub_916);// 注册退出回调fgets(s,35,stdin);// 读取输入最多34字节for(i0;i33;i)s1[i]^s[i];// 输入与s1异或return0LL;}sub_916 函数验证逻辑unsigned__int64sub_916(){unsigned__int64 v1;// [rsp8h] [rbp-8h]v1__readfsqword(0x28u);if(!strcmp(s1,s2))// 比较处理后的s1与目标s2puts(Congratulations!);elseputs(Wrong!);return__readfsqword(0x28u)^v1;}sub_84A 函数隐藏的异或处理unsigned__int64sub_84A(){inti;// [rspCh] [rbp-14h]unsigned__int64 v2;// [rsp18h] [rbp-8h]v2__readfsqword(0x28u);for(i0;i33;i)s1[i]^2*i65;// s1与动态密钥异或return__readfsqword(0x28u)^v2;}1.2 执行流程梳理通过函数调用关系和程序运行机制分析完整执行链路如下程序启动后sub_A90函数通过__cxa_atexit机制将sub_916注册为退出回调程序正常结束时自动执行sub_84A函数在初始化阶段对原始s1数组进行处理关键隐藏步骤main函数读取用户输入s并与处理后的s1执行异或操作程序退出时sub_916函数比较最终的s1与目标s2输出验证结果二、关键数据提取从二进制到数组逆向分析的核心步骤之一是精准提取关键数据。通过查看程序.data段数据段我们可以获取s1和s2的原始值2.1 原始数组s1地址 0x201020在反编译工具的内存窗口中s1被定义为.data:0000000000201020 s1 db qasxcytgsasxcvrefghnrfghnjedfgbhn,0转换为十六进制字节数组共 34 字节含终止符s1_original[0x71,0x61,0x73,0x78,0x63,0x79,0x74,0x67,0x73,0x61,0x73,0x78,0x63,0x76,0x72,0x65,0x66,0x67,0x68,0x6E,0x72,0x66,0x67,0x68,0x6E,0x6A,0x65,0x64,0x66,0x67,0x62,0x68,0x6E,0x00# 终止符]2.2 目标数组s2地址 0x201060通过内存 Dump 提取s2的 34 字节数据s2_target[0x56,0x4E,0x57,0x58,0x51,0x51,0x09,0x46,0x17,0x46,0x54,0x5A,0x59,0x59,0x1F,0x48,0x32,0x5B,0x6B,0x7C,0x75,0x6E,0x7E,0x6E,0x2F,0x77,0x4F,0x7A,0x71,0x43,0x2B,0x26,0x89,0xFE]三、数学原理异或运算的可逆性异或运算XOR是本题破解的核心其数学性质决定了逆向的可行性3.1 异或的基本性质交换律a ^ b b ^ a结合律(a ^ b) ^ c a ^ (b ^ c)自反性a ^ a 0恒等性a ^ 0 a3.2 本题运算链推导根据程序逻辑s1经历两次异或处理后需等于s2初始处理s1_after_84A[i] s1_original[i] ^ (2*i 65)sub_84A 函数输入处理s1_final[i] s1_after_84A[i] ^ s_input[i]main 函数验证条件s1_final[i] s2_target[i]sub_916 函数联立得s1_original[i] ^ (2*i 65) ^ s_input[i] s2_target[i]根据异或性质移项推导输入的计算公式s_input[i] s1_original[i] ^ (2*i 65) ^ s2_target[i]四、解题实现Python 代码还原与验证4.1 核心代码实现defcrack_xxxorrr():# 1. 原始数据定义s1_original[0x71,0x61,0x73,0x78,0x63,0x79,0x74,0x67,0x73,0x61,0x73,0x78,0x63,0x76,0x72,0x65,0x66,0x67,0x68,0x6E,0x72,0x66,0x67,0x68,0x6E,0x6A,0x65,0x64,0x66,0x67,0x62,0x68,0x6E,0x00]s2_target[0x56,0x4E,0x57,0x58,0x51,0x51,0x09,0x46,0x17,0x46,0x54,0x5A,0x59,0x59,0x1F,0x48,0x32,0x5B,0x6B,0x7C,0x75,0x6E,0x7E,0x6E,0x2F,0x77,0x4F,0x7A,0x71,0x43,0x2B,0x26,0x89,0xFE]# 2. 计算输入s_input[]foriinrange(34):key2*i65# 动态密钥input_bytes1_original[i]^key^s2_target[i]s_input.append(input_byte)# 3. 验证结果verify[]foriinrange(34):key2*i65processeds1_original[i]^key^s_input[i]verify.append(processed)# 4. 转换为字符形式flag_chars[]forbyteins_input:if32byte126:# 可打印字符flag_chars.append(chr(byte))else:# 不可打印字符用\xXX表示flag_chars.append(f\\x{byte:02x})# 5. 输出结果print(fFlag: flag{{{.join(flag_chars)}}})print(f验证结果:{成功ifverifys2_targetelse失败})if__name____main__:crack_xxxorrr()4.2 执行结果与验证运行代码后得到Flag: flag{c0n5truct0r5_functi0n_in_41f} 验证结果: 成功验证过程至关重要通过反向模拟程序的异或处理流程确认推导的输入能使s1最终等于s2确保结果正确性。五、举一反三异或类逆向题通用解题框架5.1 题目特征识别当遇到以下特征时可判定为异或类逆向题程序中存在循环的^运算汇编中为xor指令存在明显的输入缓冲区和目标校验数组验证逻辑为字符串比较或内存比较如strcmp、memcmp5.2 通用解题步骤定位关键函数寻找输入处理函数通常含fgets、read等输入函数识别异或处理循环寻找数组遍历 xor操作确定验证函数含比较指令的函数提取核心数据原始数组被异或的初始数据目标数组验证的基准数据密钥信息固定密钥 / 动态密钥生成规则推导逆向公式正向流程建模目标 原始数据 ^ 密钥 ^ 输入逆向公式推导输入 原始数据 ^ 密钥 ^ 目标注意多轮异或的顺序利用结合律简化代码实现与验证用 Python 实现逆向计算处理字节数组方便模拟正向流程验证结果正确性处理不可打印字符保留原始字节或用 \xXX 表示5.3 实战案例扩展案例 1固定密钥异或若题目中使用固定密钥如key0x12则公式简化为输入 原始数据 ^ 固定密钥 ^ 目标案例 2密钥与输入相关若密钥依赖输入本身如key input[i-1]则需从第一个字节开始逐位推导利用已知条件如第一个字节的密钥常为固定值突破。案例 3多轮异或嵌套对于多轮异或如a ^ b ^ c ^ d 目标可通过结合律转化为a ^ (b ^ c ^ d) 目标逐步拆解运算链。六、总结xxxorrr 题目作为典型的异或类逆向题核心考察两点一是对程序隐藏流程如退出回调、初始化函数的识别能力二是对异或运算数学性质的灵活应用。通过本文的分析可见此类题目虽看似复杂但只要掌握 “流程建模→数据提取→公式推导→验证实现” 的解题框架就能快速突破。在 CTF 实战中面对异或类题目应牢记异或的可逆性本质通过动态调试与静态分析结合的方式厘清运算链再利用 Python 等工具快速实现逆向计算。随着对这类题目的深入理解读者将能应对更复杂的变异题型如嵌套异或、动态密钥异或等真正实现从 “会做题” 到 “会解题” 的跨越。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

房产怎么创建网站外贸公司访问国外网站

一、串口的基本概念 串口(Serial Port)是计算机中常用的一种通信接口,用于串行数据的传输。与并行接口(Parallel Port)相比,串口通过一根传输线按顺序逐位传输数据,因此称为“串行通信”。顾名…

张小明 2026/3/5 4:30:18 网站建设

优化网站排名公司小白学编程应该从哪里开始学

Zookeeper选举机制——第一次启动SID:服务器ID。用来唯一标识一台ZooKeeper集群中的机器,每台机器不能重复,和myid一致。 ZXID:事务ID。ZXID是一个事务ID,用来标识一次服务器状态的变更。在某一时刻,集群中…

张小明 2026/3/5 4:30:14 网站建设

锦州制作网站公司个人网站开发如何赚钱

第一章:从失败中自我恢复——Open-AutoGLM重试机制设计精要在分布式推理与大模型调度场景中,网络抖动、服务降级或资源竞争常导致请求失败。Open-AutoGLM 引入了智能重试机制,确保系统在异常条件下仍能维持高可用性与任务完成率。该机制不仅支…

张小明 2026/3/5 4:30:15 网站建设

网站付款方式seo排名优化培训网站

LightOnOCR-1B作为一款全新的10亿参数级光学字符识别(OCR)模型,凭借其卓越的速度、极致的成本效益和强大的文档解析能力,正在重新定义OCR技术的行业标准。 【免费下载链接】LightOnOCR-1B-1025 项目地址: https://ai.gitcode.c…

张小明 2026/3/5 4:30:21 网站建设

手机表白网站在线制作家乡网站策划书建设背景

Excalidraw的免费额度策略:如何用“克制”赢得用户信任 在AI绘图工具纷纷闭源、订阅制动辄每月数十美元的今天,一个开源白板项目却靠着“不赚钱”的姿态悄然走红——Excalidraw。它没有华丽的营销页面,也不靠投资人烧钱补贴用户,而…

张小明 2026/3/12 16:45:58 网站建设

phpcms 做好网站怎么保存工业设计本科生作品集

MonitorControl:macOS外接显示器的终极控制神器 【免费下载链接】MonitorControl MonitorControl/MonitorControl: MonitorControl 是一款开源的Mac应用程序,允许用户直接控制外部显示器的亮度、对比度和其他设置,而无需依赖原厂提供的软件。…

张小明 2026/3/5 4:30:23 网站建设