攻防世界crypt-writeup

一.默认已装好IDA,exeinfope,winrar/7-zip

二.开始愉快解题吧:目标找到flag

(1)下载题,解压

(2)将拖入exeinfope中

(3)为64位exe文件,在windows环境下运行

发现输入后回车闪退,故在程序目录下cmd回车进入

随机输入一串字符串,出现关键字符串error

(4)将文件拖入IDAPro(x64)中,按键盘上f5键(有的电脑同时按住f5与fn键)得到对应c语言伪代码。

根据流程初步得到:

byte_14013B000[ ]已知,Str[ ]已知---->v10可求

加密后的v10求解:

双击进入byte_14013B000,shift+e提取数据

因为a^b=c   a=b^c

加密后的v9求解:

进入sub_140001120

看到经典RC4加密算法的特征 详见 

且因为未用到v10,可初步判断为RC4加密算法中的初始化S盒

v10解密:

双击进入sub_140001240函数

即可判断就是RC4加密,这步为生成密钥流并加密

且题目为crypt本身就是加密意思,暗示题目中出现某种加密算法

使用python库函数

首先

pip install pycryptodome
from Crypto.Cipher import ARC4

# 原始加密数据
c = [0x9E, 0xE7, 0x30, 0x5F, 0xA7, 0x01, 0xA6, 0x53, 0x59, 0x1B,
     0x0A, 0x20, 0xF1, 0x73, 0xD1, 0x0E, 0xAB, 0x09, 0x84, 0x0E,
     0x8D, 0x2B]

# 将 c 数组与 0x22 异或得到 a 数组
a = bytes([byte ^ 0x22 for byte in c])

# RC4 密钥
key = b'12345678abcdefghijklmnopqrspxyz'

# 使用 ARC4 解密
cipher = ARC4.new(key)
decrypted_data = cipher.decrypt(a)

# 输出解密结果
print("Decrypted Data:", decrypted_data)

得到flag{nice_to_meet_you}

如有错误,请大家不吝赐教

### 关于攻防世界中的加密技术及其应用 #### 加密与解密的基础概念 加密是一种通过特定算法将原始数据转换为不可读形式的技术,目的是保护数据的安全性和隐私性。在网络安全领域,加密技术被广泛应用于防止敏感信息泄露、篡改和窃听。常见的加密方法包括对称加密(如AES)、非对称加密(如RSA)以及流加密(如RC4)。这些技术不仅用于静态数据的存储安全,还适用于动态通信过程中的数据传输安全保障[^1]。 #### 开源工具的应用实例 在网络攻防实践中,开源工具扮演着重要角色。例如,`Bash Crypt` 是一种基于命令行的简单加密工具,它能够实现基本的数据加密功能;而 `EAS Phish` 则专注于钓鱼攻击场景下的密码学运用。通过对这些工具的学习和实践,可以深入理解加密机制的实际操作流程及其潜在漏洞[^2]。 #### 动态解密技术探讨 针对某些复杂的恶意软件或者高级持续威胁 (APT),它们可能采用自定义或嵌套式的加解密逻辑来隐藏行为特征。在这种情况下,研究如何逆向分析并修改其内部处理函数变得尤为重要。正如提到的一种技巧——将原本负责加密的部分代码替换为对应的反向运算即解密操作,则可有效还原受保护的内容结构[^3]。 #### 蜜罐技术的成本考量 从更宏观的战略层面来看,在构建防御体系时引入蜜罐作为诱饵节点之一,不仅可以迷惑入侵者延长其探索周期,更重要的是收集到更多有关对方战术情报以便后续改进措施制定。这种做法体现了现代信息安全防护理念中对于资源消耗平衡的关注点所在[^4]。 ```python import base64 def simple_encrypt(data, key='secret'): """ 使用Base64编码模拟简易加密 """ encoded_data = data.encode('utf-8') encrypted = base64.b64encode(encoded_data).decode() return f"{key}:{encrypted}" def simple_decrypt(encrypted_text, key='secret'): """ 对应上述方法进行解码恢复原字符串 """ _, cipher_part = encrypted_text.split(':') # 假设格式固定 decrypted_bytes = base64.b64decode(cipher_part) return decrypted_bytes.decode() example_message = "This is a secret message." print("Original Message:", example_message) ciphered_result = simple_encrypt(example_message) print("Encrypted Result:", ciphered_result) deciphered_output = simple_decrypt(ciphered_result) print("Decrypted Output:", deciphered_output) ``` 以上示例展示了基础层次上的字符串加密/解密过程,尽管实际应用场景下通常需要更加复杂且经过验证强度更高的方案支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

crow\a

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值