news 2026/6/23 21:41:05

逆向方向第二周任务

作者头像

张小明

前端开发工程师

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/6/23 16:30:25

【紧急避坑指南】:云边协同部署中Agent任务分配的4大致命错误

第一章:云边协同Agent任务分配的背景与挑战随着物联网和边缘计算的快速发展,云边协同架构逐渐成为支撑大规模分布式智能系统的核心范式。在该架构中,云端负责全局调度与深度分析,边缘节点则承担实时响应与本地数据处理&#xff0c…

作者头像 李华
网站建设 2026/6/23 16:09:23

【教育测评Agent自动批改揭秘】:如何用AI实现99%准确率的智能评分系统

第一章:教育测评Agent自动批改概述随着人工智能技术在教育领域的深入应用,教育测评Agent的自动批改能力正逐步改变传统教学评估模式。这类智能系统能够基于自然语言处理、语义理解与深度学习模型,对学生的主观题作答进行高效、准确的评分&…

作者头像 李华
网站建设 2026/6/23 16:25:18

英雄联盟智能助手ChampR:5分钟快速上手的终极游戏配置方案

英雄联盟智能助手ChampR:5分钟快速上手的终极游戏配置方案 【免费下载链接】champ-r 🐶 Yet another League of Legends helper 项目地址: https://gitcode.com/gh_mirrors/ch/champ-r 还在为英雄联盟复杂的装备搭配和符文选择而烦恼吗&#xff1…

作者头像 李华
网站建设 2026/6/23 5:16:15

设备数据采集效率提升300%?看这家头部企业Agent部署实战

第一章:工业互联网 Agent 的设备管理在工业互联网架构中,Agent 作为边缘侧的核心组件,承担着设备接入、状态监控与指令执行的关键职责。它运行于工业网关或本地控制器之上,实现物理设备与云端平台之间的双向通信与数据同步。设备注…

作者头像 李华
网站建设 2026/6/23 18:27:17

【dz-996】物联网的家居环境预警监测系统

摘要 随着城市化进程的加快和居民安全意识的提升,家居环境的安全监测与智能预警对保障家庭生命财产安全具有重要意义。传统的家居安全管理多依赖人工检查和独立报警设备,存在监测不全面、响应滞后、联动性差等问题,难以满足现代化家居的安全…

作者头像 李华
网站建设 2026/6/23 18:23:59

【dz-998】导盲犬多功能喂食器的设计与实现

摘要 导盲犬作为视障人士的重要辅助伙伴,其健康状况与饮食管理密切相关。传统的喂食方式依赖人工操作,存在喂食时间不规律、食物和水量把控不准、环境不适影响健康等问题,难以满足导盲犬科学养护的需求。​ 基于 STM32F103C8T6 单片机的导盲…

作者头像 李华