news 2026/4/15 13:26:50

逆向方向第二周任务

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
逆向方向第二周任务

一,学习加密算法RC4,tea,编码Base64

1.学习加密算法RC4

RC4(Rivest Cipher 4)是一种流密码算法,由Ron Rivest于1987年设计。它以其简单性和速度而闻名,曾经被广泛应用于各种安全协议中,如早期的SSL/TLS(用于保护网页安全)和WEP(用于保护Wi-Fi网络)。它是一种对称密钥算法,即加密和解密使用相同的密钥。

RC4的工作原理

RC4的核心在于生成一个伪随机字节流(称为密钥流),然后将这个密钥流与明文(需要加密的数据)进行异或(XOR)操作来生成密文。解密时,使用相同的密钥再次生成相同的密钥流,并与密文进行异或操作即可恢复出明文。

算法主要包含两个部分:

  1. 密钥调度算法(Key Scheduling Algorithm - KSA)

    • 初始化一个256字节的数组 $S$(称为S盒),通常 $S$ 被初始化为 $S[i] = i$($i$ 从 0 到 255)。
    • 使用用户提供的密钥(长度可变)来打乱这个 $S$ 盒。

RC4的特点和安全性

  • 优点: 算法简单、实现容易、运行速度快。
  • 缺点(安全性问题)
    • 密钥相关偏差: RC4生成的密钥流在初始阶段存在统计偏差(称为“初始字节问题”或“偏差”),攻击者可以利用这些偏差来恢复密钥或明文。
    • 密钥重用风险: 绝对不能使用相同的密钥流加密不同的数据(即不能重用密钥),否则攻击者可以轻易恢复明文。
    • 弱密钥: 存在某些密钥,使得生成的密钥流更易被预测。
    • 已知攻击: 存在多种针对RC4的实际攻

RC4是一种历史悠久的流密码算法,曾因其高效性而被广泛采用。然而,其固有的安全缺陷导致它最终被淘汰。在需要加密的现代应用中,应避免使用RC4,转而采用更安全的替代方案。

2.tea

TEA(Tiny Encryption Algorithm)是一种轻量级对称加密算法,由David Wheeler和Roger Needham于1994年提出。它以简洁高效著称,适用于资源受限的环境(如嵌入式系统)。以下是核心要点:

算法原理

  1. 基本结构
    TEA采用Feistel网络结构,将64位明文分成两个32位块($L_0$、$R_0$),通过多轮迭代(通常64轮)混淆数据。
    每轮操作包含:

    • 轮函数:$F(R, K) = \left( (R \ll 4) + K_0 \right) \oplus \left( R + \delta \right) \oplus \left( (R \gg 5) + K_1 \right)$
    • 更新规则:
      $$ \begin{cases} L_{i+1} = R_i \ R_{i+1} = L_i + F(R_i, K) \end{cases} $$
  2. 密钥与常量

    • 密钥:128位,分为4个32位子密钥($K_0, K_1, K_2, K_3$)。
    • 常量$\delta$:固定值$0x9e3779b9$(黄金分割数衍生值),用于增强非线性。

安全性

  • 优点:结构简单、执行速度快,抗已知明文攻击。
  • 弱点
    • 易受相关密钥攻击(Related-key Attack)
    • 每轮数据变化较小,需足够轮数(建议≥64轮)。
  • 改进版本:XTEA(扩展TEA)和XXTEA(支持可变块长)弥补了部分缺陷。

3.编码Base64

Base64编码是一种将二进制数据转换为可打印ASCII字符的编码方案,常用于数据传输和存储中,以避免二进制数据的特殊字符问题。其核心原理是将输入数据划分为固定大小的块(通常为3字节),然后将每个块转换为4个Base64字符。Base64字符集包含64个字符:大写字母A-Z、小写字母a-z、数字0-9,以及符号+和/,填充字符=用于处理输入长度不足的情况。

编码过程
  1. 输入处理:将输入数据视为字节序列(例如字符串的字节表示)。
  2. 分组:将字节序列分成每组3字节(24位)。如果输入长度不是3的倍数,则使用0字节填充剩余部分。
  3. 位操作:对于每组3字节$b_1, b_2, b_3$(每个字节为8位),组合成一个24位整数: $$v = (b_1 \ll 16) | (b_2 \ll 8) | b_3$$ 其中$\ll$表示左移位操作。
  4. 提取6位组:将24位整数$v$分成4个6位组:
    • 第一组:$g_1 = (v \gg 18) \mathbin{&} 63$
    • 第二组:$g_2 = (v \gg 12) \mathbin{&} 63$
    • 第三组:$g_3 = (v \gg 6) \mathbin{&} 63$
    • 第四组:$g_4 = v \mathbin{&} 63$ 这里$\gg$表示右移位操作,$\mathbin{&}$表示位与操作,63是$2^6 - 1$(即6位最大值)。
  5. 字符映射:每个6位组$g_k$(范围0-63)映射到Base64字符集中的一个字符:
    • 索引0-25: A-Z
    • 索引26-51: a-z
    • 索引52-61: 0-9
    • 索引62: +
    • 索引63: /
  6. 填充处理:如果输入字节数不是3的倍数,则添加填充字符=:
    • 剩余1字节:添加两个填充字符(编码为2个Base64字符和2个=)。
    • 剩余2字节:添加一个填充字符(编码为3个Base64字符和1个=)。

二,解决upx壳

一、使用UPX官方工具

二、动态调试脱壳

  1. 定位OEP(原始入口点)

    • 在调试器中单步跟踪
    • 观察jmp指令跳转目标地址
    • 典型特征:跳转后出现push ebp等标准入口代码
  2. 内存转储

    • 到达OEP后暂停执行
    • 使用调试器的内存转储功能(如OllyDbg的Scylla插件)
    • 修正IAT(导入地址表)

三、自动化工具

常用工具:

  • UPXUnpacker:专用脱壳脚本
  • x64dbg/OllyDbg:配合脱壳插件
  • PEiD:先检测壳版本再选择对应方法
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/12 13:05:48

MCP MS-720 Agent集成资源稀缺泄露:资深架构师的私藏配置模板

第一章:MCP MS-720 Agent集成概述MCP MS-720 Agent 是现代监控平台中用于设备状态采集与远程控制的核心组件,专为边缘计算环境设计,支持多协议接入与动态配置更新。该代理程序能够在资源受限的设备上稳定运行,实现与中心管理平台的…

作者头像 李华
网站建设 2026/4/13 10:27:51

Java小白求职互联网大厂:从Spring Boot到Kubernetes的面试之旅

Java小白求职互联网大厂:从Spring Boot到Kubernetes的面试之旅 场景:互联网大厂Java小白求职面试 在互联网大厂的面试房间里,程序员超好吃正在准备接受他的第一场Java技术面试。面试官严肃地坐在对面,准备开始一系列的提问。 第一…

作者头像 李华
网站建设 2026/4/12 6:29:43

MCP MS-720 Agent实战手册(从入门到精通的9个必备技巧)

第一章:MCP MS-720 Agent 概述MCP MS-720 Agent 是一款专为现代企业级监控与配置管理设计的轻量级代理程序,广泛应用于分布式系统中对主机资源、服务状态及安全策略的实时采集与响应。该代理支持跨平台部署,兼容主流操作系统如 Linux、Window…

作者头像 李华
网站建设 2026/4/11 12:53:37

医疗护理Agent任务提醒实战指南(9大核心场景全覆盖)

第一章:医疗护理Agent任务提醒的核心价值在现代智慧医疗系统中,护理任务的及时执行直接关系到患者的安全与治疗效果。医疗护理Agent作为智能化调度与监控的核心组件,其任务提醒功能不仅提升了护理工作的效率,更通过自动化干预机制…

作者头像 李华
网站建设 2026/4/13 18:29:11

MonitorControl完整教程:轻松掌控Mac外接显示器设置

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

作者头像 李华
网站建设 2026/4/12 15:00:19

Qualcomm Atheros QCA9377无线网卡Linux驱动完整教程与详细步骤

Qualcomm Atheros QCA9377无线网卡Linux驱动完整教程与详细步骤 【免费下载链接】Qualcomm-Atheros-QCA9377-Wifi-Linux Drivers and Firmware for Qualcomm Atheros QCA9377 0042 [rev. 30] 项目地址: https://gitcode.com/gh_mirrors/qu/Qualcomm-Atheros-QCA9377-Wifi-Lin…

作者头像 李华