对于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有两周情况
直接定义新的编码对照表
动态生成新的编码对照表,这里就是下一步即将学习的地方
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
相关推荐
最近,有项目中需要用到base64的加解密,所以用C语言实现了一遍,测试效果还不错,代码量和RAM消耗都比较低,可以提供给大家参考下。
发表于 09-18 09:31
•3538次阅读
一、base64加密格式:base64从标准输入中读取数据,按Ctrl+D结束输入。将输入的内容编码为base64字符串输出。
发表于 07-15 08:02
如何将一个base64编码的图片字符串转换回图片呢?求大神解答
发表于 12-20 06:40
Base64是什么?Base64编码转换有哪些具体步骤呢?Base64加密与解密该怎样去实现呢?
发表于 01-20 06:37
救命,我想办法都和鸿蒙js在网上找不着用的方法,然后我想调用f的库进行编码发现蒙鸿也用不了!救命,孩子明天晚上项目了,就差图片编码上传了。有没有伙伴知道js开发如何通过uri将图片进行base64
发表于 05-06 10:11
需要用到base64编码方式的可以下载一下,程序还可以自己优化
发表于 06-14 17:42
信息通过Base64 编码变成ASCII 码,利用XML 编码对ASCII 码形式的结果进行组织,来实现各个异构系统的信息快速和低成本地通信。
发表于 12-18 17:28
•22次下载
Base64是一种很常用的编码方式,利用它可以将任何二进制的字符编码到可打印的64个字符之中, 这样,不管是图片,中文文本等都可以编码成只有
发表于 10-18 11:11
•10次下载
Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。例如,在Java Persistence系统Hibernate中,就采用了Base64来将一个较长的唯一标识符(一般
发表于 11-14 09:43
•1.5w次阅读
Base64是一种很常见的编码规范,其作用是将二进制序列转换为人类可读的ASCII字符序列,常用在需用通过文本协议(比如HTTP和SMTP)来传输二进制数据的情况下。
发表于 11-14 10:21
•1.6w次阅读
由于某些系统中只能使用ASCII字符。Base64就是用来将非ASCII字符的数据转换成ASCII字符的一种方法。base64特别适合在http,mime协议下快速传输数据。
发表于 11-14 10:35
•2.8w次阅读
这篇文章主要介绍了Java实现图片与base64编码之间的转换实例代码,非常不错,具有参考借鉴价值,需要的朋友参考下。
发表于 11-14 10:59
•1759次阅读
codes为Base64编码key值,包括64个字符,由‘A’~‘Z’,‘a’~‘z’,‘0’~‘9’,‘+’,‘/’组成字符串,且每个字符只能出现一次,但顺序可以自由调整。
发表于 11-14 22:29
•3104次阅读
打开 rsa_V3.4 软件(公司内部软件,用户可使用),如图一所示。在“RSA”页面下选择“Tool”,进入图二界面。在上面的文本输入框中拷贝私钥的 Base64 编码,然后点击“Base64—>HEX”按钮,下面的文本框中会
发表于 01-10 11:43
•3577次阅读
在我们嵌入式开发中,我们常常都会用到一些通用的工具库,往往都会有个base64编解码模块。
发表于 02-09 16:34
•2380次阅读
评论