BUUCTF逆向wp [MRCTF2020]Xor

第一步 查壳,该题是32位,无壳。

第二步 跟进main,发现反汇编不了

通过下图我们可以发现一串类似字符串的东西

第三步 我们看一下汇编

我们可以得到这些信息:flag的长度为27(下面是对本条指令cmp edx 27指令的应用介绍:这条指令通常用在条件分支处理中,比如决定程序的下一步执行路径。根据 cmp 指令后的条件跳转指令(如 je, jne, jl, jg 等),程序可以根据比较结果跳转到不同的代码段。

例如:

cmp edx, 27

je equal_label ; 如果 EDX 等于 27,跳转到 equal_label

jg greater_label ; 如果 EDX 大于 27,跳转到 greater_label

这样,cmp edx, 27 在程序中起到了决定程序流程的关键作用,根据 EDX 寄存器的值与 27 的比较结果来控制程序的执行路径。)

字符串的长度等于27则为right,不是则为wrong。

接下来我们看到异或操作(xor cl,al)

结合汇编代码和以上信息我们得出这就是一个简单的异或,将我们之前的字符串进行异或。

第四步 编写脚本

分析脚本:

初始化变量

  1. 初始化字符串 code:
  2. code='MSAWB~FXZ:J:`tQJ"N@ bpdd}8g'

这里定义了一个字符串 code,它包含了加密或编码后的数据。

  1. 初始化字符串 flag:
  2. flag=''

这里初始化了一个空字符串 flag,用来存储解码后的结果。

解码过程

  1. 遍历字符串并解码:
  2. for i in range(0,len(code)):
  3. flag+=chr((i^ord(codei)))
    • for i in range(0,len(code)): 这个循环遍历 code 字符串中的每个字符,i 是字符的索引。
    • ord(codei): 获取 code 中第 i 个字符的 ASCII 值。
    • i^ord(codei): 将字符的 ASCII 值与其索引进行异或操作。异或是一种基本的位操作,它对位值相同的对返回 0,对位值不同的对返回 1。
    • chr(...): 将异或操作的结果转换回对应的字符。
    • flag+=...: 将转换后的字符追加到字符串 flag 的末尾。

flag{@_R3@1ly_E2_R3verse!}

相关推荐
自由彩虹12 小时前
靶场通关15--bossplayersctf
linux·服务器·网络·安全·web安全·网络安全
武雄(小星Ai)12 小时前
Cursor市场Claude Code扩展被植入SSH后门:一次供应链投毒的完整拆解与自查手册
安全·网络安全·供应链攻击
~央千澈~12 小时前
优雅草新产品2026 年 10 月 31 日公测完毕v1.0.0 优雅草人机盾正式运营上线
安全·网络安全·安全防御
山川绿水13 小时前
DeepSeek-DSH安装报错[deploy] 命令失败:npx -y pnpm install --prefer-offline
人工智能·网络安全
中云DDoS CC防护蔡蔡1 天前
DDOS和CC攻击谁更可怕
运维·服务器·经验分享·网络安全·ddos
leagsoft_10031 天前
勒索病毒扩散控制深度解析:四大扩散路径、主流方案局限与联软科技差异化实践
网络安全·零信任·内网安全·勒索病毒·微隔离·防勒索·ad域安全
砚凝霜1 天前
保姆级 | CTF 命令执行 system($_POST[‘a‘]):直接传系统命令拿 flag(对比 eval)
web安全·网络安全
2501_915106321 天前
抓包抓到乱码或压缩字节怎么解析,TraceEagle五种查看模式和一键解码
网络协议·计算机网络·网络安全·ios·adb·https·udp
菩提小狗1 天前
每日安全情报报告 · 2026-10-30
网络安全·漏洞·cve·安全情报·每日安全
文章永久免费只为良心1 天前
Web应用安全与防护_第三章_日志文件包含_从一道 CTFshow 题目讲透「日志投毒型 LFI → RCE」:原理、时序陷阱与全变种攻防手册
android·网络安全·渗透测试·漏洞危害·漏洞描述·日志投毒·红队指南