-->
当前位置:首页 > DayDayUp > 正文内容

黑盒加密类RE题目的一种爆破解法

Luz5年前 (2020-04-07)DayDayUp4262

有些程序针对任意输入都有密文格式的输出,题目中给出密文求输入的明文  类似黑盒情况下的crypto题目

题目加密往往采用现代密码的方法,整个逻辑难以阅读

image.png

这个题目对输入密钥的校验比较简单,只是一个0x1F异或再对比的方式,

程序从flag.txt中读入明文,并使用密钥加密后以十六进制存放如enflag.txt中

image.png

密文

尝试使用flag{ 字符串加密后发现密文和题目密文的前几字符相同

尝试使用flaa{ 字符串加密后发现除了第二个a对应的密文外其他密文和题目密文的前几字符相同

每个字符生成的密文和前一字符无关


打印所有可显示ascii字符并依次循环加密通过制作成彩虹表

.版本 2
.支持库 spec
.支持库 eAPI

.程序集 窗口程序集_启动窗口

.子程序 _按钮1_被单击
.局部变量 i, 整数型
.局部变量 j, 整数型
.局部变量 f, 文本型, , "20"
.局部变量 a, 文本型
.局部变量 flag, 文本型

.计次循环首 (取文本长度 (编辑框1.内容), i)
    flag = “”
    延迟 (1000)

    a = 取文本中间 (编辑框1.内容, i, 1)
    输出调试文本 (a)
    .计次循环首 (30, )
        flag = flag + a
    .计次循环尾 ()
    写到文件 (“C:\Users\80597\flag.txt”, 到字节集 (flag))
    加密 ()
    延迟 (1000)
    编辑框2.加入文本 (#换行符 + 到文本 (字节集_字节集到十六进制 (读入文件 (“C:\Users\80597\enflag.txt”))) + “ ” + a)

.计次循环尾 ()

.子程序 加密

模拟按键 (#键1, , )
延迟 (200)
模拟按键 (#回车键, , )
延时 (200)
置剪辑板文本 (“[Warnning]Access_Unauthorized”)
鼠标_单击 (取鼠标所在窗口句柄 (), , , 2)
模拟按键 (#回车键, , )


image.png

导数第二行为题目所给密文,最后按字符对照上表得到flag


这种解法的优点是不需要太强的伪代码阅读能力

缺点是需要对程序运行逻辑作出一个大概的判断

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。