zoukankan      html  css  js  c++  java
  • CrackRTF

    这算是第一次写ctf题目的博客把。

    被这道题搞得头大,各种没见过的API(不过通过查资料了解到了)

     检查了一下,没壳,win32

    然后运行

     让你输入第一个密码,猜想一下,说明后面可能还会有几个输入,并且有strcmp类似的检查密码函数。

    打开ida

     简单分析一下

     输入字符串并且长度等于6,大小大于100000

     strcmp上面有个函数,参数里有String1,所以这个应该是加密函数

    点进去看看

     不知道这些是什么,查了额下发现有些函数竟然会被淘汰?(与本题无关)

    CryptCreateHash哈希加密,有了解过哈希的是可以知道,哈希是很多算法放在一起,然后随机抽一个算法来加密

    查了官方文档MSDN,发现第二个参数时加密时所用的方法标号。0x8004u是shl加密,赶紧跑去ctf wiki上面看看这个shl是否可以手动解答.....

    没有看懂。从前面的v4<100000发现有范围限制,那么暴力破解从100000到6个字符能表达的最大数字0x393939393939不过,我看了网上的一些人博客他们到999999就可以了,不知道为啥。。

    破解出来后发现是123321

    接着分析

     

     发现又需要输入字符串并且长度也是6

    还链接了pbdata,就是说6+123321+"@DBApp"

    然后在进行加密

    进去看看

     函数与上面的差不多,只是换了个加密方式,md5加密。我在网上找了好多个md5解密网站都无法对

     这串字符串解密,不知道为啥,希望有好心人告诉我下。没有范围不能爆破。

    发现这里还有个加密的函数

     这都是写啥?

    后来查了的https://blog.csdn.net/singleyellow/article/details/80308789

    发现是查找一个叫AAA的文件,然后获取资源大小等...后面还有个函数点进去看看

     异或运算,自己输入的字符串和指向文件第一个字节的指针

    看了别人博客发现要用到

     这个东西。

    我不是很理解为什么密码是6,听别人说是加密后是一个rtf的头,所以是6.我还没搞清楚

     取AAA文件的前6个字节。

    然后在做异或的逆向运算,与rtf头做逆向。得出了

    ~!3a@0

    然后该exe会在目录下创建一个rtf文件,里面有flag

    Flag{N0_M0re_Free_Bugs}

  • 相关阅读:
    ROS_Kinetic_08 ROS的集成开发环境(IDEs)之使用Eclipse
    如何写好一份竞品运营分析报告?
    我眼中的Linux设备树(六 memory&chosen节点)
    【干货】前端开发者最常用的六款IDE
    【前端图表】echarts散点图鼠标划过散点显示信息
    【前端图表】echarts实现散点图x轴时间轴
    三分钟教你学会如何将密文解码成明文
    2018上半年GitHub上最热门的开源项目
    进阶攻略|前端完整的学习路线
    进阶攻略|前端最全的框架总结
  • 原文地址:https://www.cnblogs.com/pppyyyzzz/p/12462068.html
Copyright © 2011-2022 走看看