• 我们在哪一颗星上见过 ,以至如此相互思念 ;我们在哪一颗星上相互思念过,以至如此相互深爱
  • 我们在哪一颗星上分别 ,以至如此相互辉映 ;我们在哪一颗星上入睡 ,以至如此唤醒黎明
  • 认识世界 克服困难 洞悉所有 贴近生活 寻找珍爱 感受彼此

2020KCTF秋季赛

CTF赛事 云涯 4年前 (2020-04-21) 2240次浏览

第一题

0x01 背景

本题是找到“KCTF”对应的序列号,提示为使用密码学知识。

0x02 解题验证

1. 如何分辨出用了什么算法?

这是本题的关键,不然跟到像RSA等算法里面,余生就不幸福了!!!

(1)使用sig文件

在静态分析时,查看字符串,发现有OpenSSL0.98字样,可以使用openssl.sig文件,让IDA自动发现一些加密算法。具体步骤如下:

在这个地址(链接:https://pan.baidu.com/s/1n0cYtl7HqHGvxt8rrnMBbQ 提取码:z36s)(https://github.com/push0ebp/sig-database/blob/master/windows/openssl_0.9.8.sig)找到windows的openssl0.9.8.sig文件。

将openssl0.9.8.sig放入到IDA的/sig/pc/文件夹里,然后shift+F5调出“List of applied library modules”,右键“apply new signature”,将openssl0.9.8加入。

images

接下来就会看到一些函数被解析成算法标识了

images

(2)使用IDA的findcrypt3插件或者PEID的krypto

如果觉得还不是很清晰的话可以使用两种插件!

ida的findcrypt插件

在”链接:https://pan.baidu.com/s/1rKynHCGYOzkUFwShMVQe1A 提取码:wm1m “(或者https://github.com/polymorf/findcrypt-yara)下载插件.

然后在主机上注册  “pip2 install yara-python”,安装yara-python.之后将findcrypt3.py以及findcrypt3.rules移动到IDA的plugins文件夹.

之后”Edit-plugins”找到findcrypt插件,或者使用ctrl+Alt+F打开插件.该插件能识别出算法常量.可以是代码,也可以是数据.

images

如果是代码段,就会直接跳到代码部分,如果是数据段就会跳转到数据部分.再利用相互调用,就可以基本定位到函数.

imagesimages

PEID的krypto插件

找到算法点,再相互调用,就可以定位到算法函数.

images

2. 将算法显示出后就该分析程序逻辑

 

 

 

 


云涯历险记 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:2020KCTF秋季赛
喜欢 (0)