Bugku 您所在的位置:网站首页 杰瑞跳舞 Bugku

Bugku

2023-12-03 03:32| 来源: 网络整理| 查看: 265

先运行测试一下程序,发现还是要求出flag,所以开始分析程序,先查壳,因为用ida分析我并没有像往常一样成功,所以还是用od动调

经过刚才运行程序发现,有一串字符,所以首先尝试od搜索字符串定位到那个地方

 

 找到了程序开始的地方,从这里开始单步调试

输入我们的测试字符串123456789

 继续向下运行将参数61,62压入栈,但并不知道有什么用,进入下面这个函数看一看

 

 有一些操作,但并没有看出来是什么意思

 跳过这个函数继续分析,数据窗口跟随,发现我们输入的字符串传入了下一个函数

 继续向下分析,再进入下一个函数分析时发现,里面调用了我们输入的字符串并且还调用了一个函数,继续跟进去看看

 跟进去发现了以下操作,将输入的内容与3异或

 加密后的数据

 在继续向下分析时,发现进行了一些操作,但并没有影响我们的输入或是加密后的数据

跳过那些函数,发现一个特殊的字符串和我们加密后的数据

 进入这个函数,会发现进行了一些处理,就是将加密后的输入字符串和那一串特殊字符进行比较

当je跳转实现时,就会输出success

 这个函数结束后直接就是判断输出成功还是失败,所以就可以推断出是输入的字符串与3异或然后那一串特殊字符进行比较,相同则输出成功,可以根据这个写脚本了

 脚本:

x = [0x65, 0x6F, 0x62, 0x64, 0x78, 0x77, 0x6C, 0x67, 0x62, 0x7A, 0x7A, 0x5C, 0x6A, 0x70, 0x5C, 0x64, 0x6C, 0x67, 0x7E,0x00] for i in range(0, 20): x[i] = x[i] ^ 3 print(chr(x[i]))

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有