Note
  • Introduction
  • PWN
    • __libc_csu_init函数的通用gadget
    • _int_malloc源码分析
    • _IO_FILE利用思路总结
    • C++ 虚表分析
    • Fast_bin笔记
    • house_of_force
    • House_of_Roman
    • Linux_ShellCode
    • Return-to-dl-resolve原理及利用
    • Unlink利用原理
    • Unsorted_Bin_Attack
    • 获取libc方法
    • 利用main_arena泄露libc基址
    • 整数溢出
    • 重写.fini_array函数指针
    • Windows_SEH利用
  • Windows_Operating_System
    • Dll隐藏
    • Dll注入之远程线程注入
    • IAT_HOOK原理实现
    • Windows下通用ShellCode原理
    • 代码注入
    • inline_hook框架
    • 32位程序调用64位函数原理
    • 调试原理
    • Windows异常处理初探
    • Windows_SEH利用
  • Windows_Kernel
    • MSR_HOOK
    • SSDT_HOOK
  • Virus_Analysis
  • Program
    • Dll的生成与使用
  • Miscellaneous
    • ctf笔记
    • 常见算法特征总结
    • ELF文件笔记
  • Linux_Operating_System
    • 系统调用
    • 分页机制
    • 调试原理
    • linux无文件执行elf
    • egg hunter
    • 缺失的动态链接库
  • Linux_Kernel
    • KERNEL_PWN状态切换原理及KPTI绕过
  • IOT
    • IOT调试环境搭建
    • mips_arm汇编学习
    • Cisco RV160W系列路由器漏洞:从1day分析到0day挖掘
  • Symbolic_Execution
    • angr初探
    • angr_进阶
  • Fuzz
    • UAF_overflow_check
    • intel-pin
  • CVE
    • Cisco RV160W系列路由器漏洞:从1day分析到0day挖掘
  • Assembly
    • Junk_Code_Analysis
    • opcode
  • Andriod_Security
Powered by GitBook
On this page
  • 算法的类别:
  • 数据摘要算法(MD5,SHA*)
  • RC4算法的特征:
  • Base64算法特征:
  • AES算法特征:
  • DES算法特征:
  • RSA算法特征:
  • ECC算法:

Was this helpful?

  1. Miscellaneous

常见算法特征总结

Previousctf笔记NextELF文件笔记

Last updated 6 years ago

Was this helpful?

算法的类别:

取数据摘要的算法(MD5, SHA*)

对称加密的算法(AES,DES) (核心算法就是各种复杂的位异或)

非对称加密算法(RSA)(私钥,公钥)

数据摘要算法(MD5,SHA*)

由三个方法组成:1.初始化 2.运算 3.取结果

进入第一个块(初始化方法),可以看到各种算法的固定常量:

MD5有四个固定常量。SHA1算法又5个固定常量。SHA256算法有8个固定常量。

常见表现形式如下:

RC4算法的特征:

有两个256次循环

Base64算法特征:

Base64 是一种基于 64 个可打印字符来表示二进制数据的表示方法。转换的时候,将 3 字节的数据,先后放入一个 24 位的缓冲区中,先来的字节占高位。数据不足 3 字节的话,于缓冲器中剩下的比特用 0 补足。每次取出 6 比特(因为 {\displaystyle 2^{6}=64}),按照其值选择ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/中的字符作为编码后的输出,直到全部输入数据转换完成。

通常而言 Base64 的识别特征为索引表,当我们能找到 ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ 这样索引表,再经过简单的分析基本就能判定是 Base64 编码。

AES算法特征:

一般AES的密钥长度是128bit 或 256bit,加密出来的数据是128或256的整倍数。

一般情况下密钥都是16字节。

AES的密钥不需要进行初始化,都是直接传明文密钥进来。

方法内有很多复杂的位异或xor。

验证方法:用 hook取得明文传入的密钥,然后经过算法验证是否为AES算法。

如果是CBC算法的,还会拥有一个16字节的IV

DES算法特征:

密钥长度固定8字节。

密钥需要单独初始化,需要运行一个密钥初始化函数。

会每8字节分段加密。

CBC方式会自带8字节分段加密,ebc方式需要在外面手动分段。

RSA算法特征:

非对称加密算法

密钥需要单独初始化

密钥长度一般很长,存储格式一般为base64文本

ECC算法:

密钥需要单独初始化