解码base64_CTF逆向中的常见算法解析base64

本文介绍了CTF逆向分析中常见的Base64算法,包括其原理、编程实现、代码特征,并探讨了Base64的扩展应用,如变表和隐写技术。通过理解Base64的加密过程,可以帮助解题者快速识别和处理相关问题。
摘要由CSDN通过智能技术生成

CTF中的逆向题,大多是考察对代码的读写能力以及加密混淆算法的识别能力。能够在一大堆代码里快速识别出经典的加密混淆算法,可以大大提高我们的解题效率

计划从本期开始解析CTF逆向中的常见算法,包括算法的原理、代码、代码特征以及常见应用,先从最常见的base64开始

0x1 base64的原理

对于一串字符,算法要求每三个字符为一组,生成四个字符。如果最后一组字符数不足三个,则用等号补充。具体转换规则如下表所示,三个字符共24位,每6位作为一组计算索引值,再结合base64表查找相应的索引,完成三字符到四字符的转换

74850b317c5c05bfeaee25167b2f6a1e.png

base64表如下:

cecd4e6029e6f2cb6f4ee2eba618befd.png

如下表所示,字符不足三个时,最后一个字符低位补0,计算索引,再添加等号

6491d3118a693f0f8f1f8348541be30b.png

0x2 base64 编程实现:

char *__fastcall base64_encode(char *a1){
      int v1; // eax  int v2; // eax  int v3; // eax  int v4; // eax  int v5; // eax  int v6; // eax  int v8; // [rsp+1Ch] [rbp-54h]  int v9; // [rsp+20h] [rbp-50h]  int v10; // [rsp+24h] [rbp-4Ch]  int v11; // [rsp+24h] [rbp-4Ch]  int v12; //
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值