BUUCTF----CrackRtf


1.拿到题目文件

2.进行查壳

发现基本信息,无壳,并且为32为程序

3.在cmd中对该程序进行运行

运行发现,大概意思是输入,密码,得到flag

4.拖入ida进行分析

发现要输入两次密码

对程序的整个过程进行分析

发现第一次输入的密码进入了sub_40100A函数,跟进函数

通过百度,发现是哈希加密算法,通过查询标识符,发现是sha加密

网上学习,python的hashlib模块的使用,编写脚本,得出前6位密码

得出前六位为123321

输入进行验证,发现正确,接下来,进行第二部分的解密

第一种:

分析第二次加密没有给定范围(第一次是大于100000),所以这个地方不能采用爆破,进入函数,查看标识符,发现是0x8003,查询发现是md5加密算法在网上看到的网站,直接复制字符串到网站中,进行在线解密,得第二部分密码

带入程序进行验证

验证成功,在题目的文件夹中生成了一个rtf文件

rtf文件里面就是flag

 第二种:脚本解密

进入一个判断函数sub_40100F,又是一堆看不懂的函数,看来最好的老师是百度
进行一番百度之后,发现是从AAA的文件中取出字符和密码进行异或(异或函数在sub_401005)
这个时候就要用到一个软件:可以直接查看文件中的资源的工具——ResourceHacker

使用软件进行查看发现是一堆字符串

这个时候进入异或函数sub _401005,a2就是AAA中得到的首部指针,v5是字符串的长度,也就是密码的长度,整理一下,在进行异或完之后会生成一个RTF文件;

我们取文件标志位前六位和AAA文件中的前六位进行异或

写脚本

得到flag的第二次密码,带入程序,进行和第一种方法一样的验证,得到flag

猜你喜欢

转载自blog.csdn.net/qq_64558075/article/details/121735585