首页 > 其他分享 >BUUCTF之[GWCTF 2019]xxor~~

BUUCTF之[GWCTF 2019]xxor~~

时间:2022-12-03 12:35:04浏览次数:49  
标签:BUUCTF 加密 字节 int GWCTF 2019 密文 数据 函数

老样子,无壳64位。

然后丢ida继续分析.

在函数列表中找到Main函数,继续分析

一开始是让你输入6个int类型的数,并存入到v6数组中

在外层的循环中,出现了LODWORD和HIDWORD,这里就是指的高位字节,和地位字节。

而为什么上面的dword_601078不用LODWORD呢?这里我是将数据类型改为了int,也就是传入一个字节,这里原来的数据类型是__int64,也就是8个字节,我强制转了int.

然后在第二个for循环中,有一个关键的函数sub_400686,继续跟进

发现是对传入的数据进行一个整体的加密,而传入的参数也是我们输入的数据。

这里要注意一个点,外层是三次循环,对每次传入的第a[i],a[i+1]的数据进行加密,也就是一共加密了3次,每次加密2组数据

而内层循环也应证了这一点,每次对a[i],a[i+1]进行加密

 

最后在main函数的末尾中,有一个sub_400770函数,发现里面是将加密后的数据进行比对.

这里就可以作为密文了。

这里我们可以通过z3解出来这几个密文的数据

tips:这里的负数,在计算机中是以补码的形式存在的,不能直接转Hex,而是要按位取反+1,在计算器直接用not也行

下面直接用z3爆出这几个密文的数据就行:

知道了密文后,直接根据加密的算法,写解密脚本即可

标签:BUUCTF,加密,字节,int,GWCTF,2019,密文,数据,函数
From: https://www.cnblogs.com/qsons/p/16947324.html

相关文章