攻防世界testre做法(考点:base58)

在做这道题目之前,我们先来简单了解一下base64加密和base58加密,先来说一些预备知识,bit为1个位,即一个0或1,八个位组成一个字节,即八个二进制数。

base64编码原理:1,在使用base64加密前,通常会定义一个数组,数组内容大致为A~Z,a~z,0~9,以及字符/+=   2,将待转换的字符串每三个字节分为一个组,三个字节,即24个二进制数,此时再每6个二进制数分为一组,然后再在每组的首位添加上两个0,这样一组就变成8位了,也就是一个字节   3,最后根据base64编码对照表,获得相对应的值    这边就先不拓展两个字节和一个字节的情况了

如何根据代码判断是否是base64编码呢?首先,我们看代码中有没有定义字符串或者数组,其中包含0~9,A~Z,a~z,像这样的,可以直接预判这是base64编码了,然后再看代码中有没有>>8和<<6,若是有,也可以这么猜了。

base58编码原理:基本原理同base64差不多,只是少了+=/字符,例如1234的base58编码,先是对1234/58得到结果为21,模16,再是用21/58,得到结果0,模21,最后,对照base58的编码表,将21和16在表中先后对应起来,就得到两个字符,两个字符就是1234的base58编码

如何根据代码判断是否是base58编码呢?也是先看有没有数组的定义,再看有没有>>8  <<6以及log数,又或者是%58这种关键字样,直接大胆猜测啊,好了,来做题

首先,查壳,64bit,丢进ida64中,然后进入main函数,发现其中有两个函数直接进入下面这个函数大胆猜测这是base58加密这些字符集为base58编码后的结果,连接起来,注意字符串连接的先后顺序,仔细看,要分清连接的先后顺序,最后放到base58解密的网站上去解密就得到flag了

面向工程应用:市面上的一些密码学课程和密码学的书籍,很多都是从考证出发,讲解算法原理并不面向工程应用,而我们现在缺少的是工程应用相关的知识,本课程从工程应用出发,每种技术都主要讲解其在工程中的使用,并演示工程应用的代码。 从零实现部分算法: 课程中实现了base16编解码 ,XOR对称加解密算法,PKCS7 pading数据填充算法,通过对一些简单算法的实现,从而加深对密码学的理解。理论与实践结合: 课程如果只是讲代码,同学并不能理解接口背后的原理,在项目设计中就会留下隐患,出现错误也不容易排查出问题。如果只讲理论,比如对密码学的一些研究,对于大部分从事工程应用的同学并没有必要,而是理论与实践结合,一切为了工程实践。代码现场打出: 代码不放在ppt而是现场打出,更好的让学员理解代码编写的逻辑,老师现场敲出代码正是展示出了工程项目的思考,每个步骤为什么要这么做,考虑了哪些异常,易学不枯燥: 课程为了确保大部分人开发者都学得会,理解算法原理(才能真正理解算法特性),学会工程应用(接口调用,但不局限接口调用,理解接口背后的机制,并能解决工程中会出现的问题),阅读算法源码但不实现密码算法,,并能将密码学投入到实际工程中,如果是想学习具体的加密算法实现,请关注我后面的课程。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值