对于BASE64编码的逆向分析


在反编译文件中找到主函数,点击后按F5
得到反编译出的主函数部分





其中1至7行是程序编译过程中系统预置的,可以不用理解。
假设第一次剪刀这个程序,对主函数逐段从第九行开始就是程序的主函数部分逐段进行分析。
10行: 输出一段文字


双击这段文字,就是如上的汇编,可以不用理解,大意就是说输入了一行字符串
11行: 读入了一个数字,这个数字在之后的第13和30行用到了。大致的用处就是分开判断两部分,分别进行两个程序当输入的v6为1时进行第15到28行的程序,当v6为2时进行30到46行的程序
15到28行: 读到了字符串,这一串就是要编码的字符串,首先v8表示字符串的长度,每三个字符处理一次,具体的处理函数时get_number函数在进行,之后判断函数的长度是否时3的倍数,这里就是对需要编码的字符串进行特判=的存在,分别在之后的两个函数中进行处理,之后输出答案
30到46行: 和之前的很类似,就是将BASE64编码的步骤反着进行了下,就是解码的步骤
举例看一下get_number函数




其中很多部分是不需要理解的大致的意思就是说在取得二进制,然后按照BASE64编码的形式进行操作
一些即将进行的工作:
BASE64算法中可以控制的地方为编码时对照表,所以大多数的题目中BASE64的魔改都可以通过修改对照表进行
通常魔改BASE64有两周情况
直接定义新的编码对照表
动态生成新的编码对照表,这里就是下一步即将学习的地方
-
编码
+关注
关注
6文章
1017浏览量
56669 -
函数
+关注
关注
3文章
4406浏览量
66865 -
Base64
+关注
关注
0文章
26浏览量
9205 -
程序编译
+关注
关注
0文章
9浏览量
5593
发布评论请先 登录
Base64的编解码方法
base64解码编码详解
base64编码有什么用?(base64介绍及应用)
java实现图片与base64编码的转换
什么是Base64,如何编解码?
base64编码和解码的使用方法
如何使用base64处理图像数据
base64字符串转换为二进制文件
base64的安全性及其应用场景
base64与URL编码的区别和联系
如何优化base64编码的性能
base64在前端开发中的应用
基于RK3576的BASE64编解码

对BASE64编码的逆向分析
评论