【BUUCTF逆向题】CrackRTF

一.CrackRTF

前言
这题不同于之前的静态分析只需要分析程序然后根据已知逆向推理未知即输入的flag
这题是将未知输入作为密钥,是产生flag的关键,在此题flag的载体是第三方.rtf文件

查得32位无壳
在这里插入图片描述
用IDA32打开,main函数F5反编译
进入main_0函数
在这里插入图片描述
从最下面看,找到正确出口,还有很多错误出口,阅读程序
在这里插入图片描述
先对Destination和String1初始化
提示输入密码
限定输入密码为6为有效数字
字符串连接@DBApp
经过sub_40100A函数处理(哈希SHA-1加密)
验证哈希值
如果验证成功进入第二次密码输入

在这里插入图片描述
补充:atoi这种可识别有特征的函数一般不是需要我们识别的函数,是已有的函数,这里是Windows API中的程序接口,作用图种有,就是转换字符串为数字

接下来进入sub_40100A函数看看哈希SHA-1加密是怎样的
如图:先哈希加密再转换为16进制字符串再连接给String1再断后
在这里插入图片描述
补充:这里得到粉红色字体函数都是可识别有特征的函数不需要我们去弄懂因为是现成的Windows API程序,具体功能知道就行

因为哈希加密是单向的,但是我们知道了前6位是100000-999999的数字,所以加上@DBApp就可以对已知哈希值爆破,附上脚本

import hashlib
string
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值