首页
社区
课程
招聘
[原创]Bugku-杰瑞的下午茶
发表于: 2022-3-10 20:57 6943

[原创]Bugku-杰瑞的下午茶

2022-3-10 20:57
6943

Bugku-杰瑞的下午茶

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

 

 

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

 

img

 

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

 

输入我们的测试字符串123456789

 

img

 

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

 

img

 

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

 

img

 

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

 

img

 

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

 

img

 

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

 

img

 

加密后的数据

 

img

 

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

 

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

 

img

 

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

 

img

 

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

 

img

 

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

 

img

 

脚本:

1
2
3
4
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]))

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2022-3-26 14:04 被愿风载尘编辑 ,原因:
上传的附件:
收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 26398
活跃值: (63257)
能力值: (RANK:135 )
在线值:
发帖
回帖
粉丝
2
将程序上传一份?
2022-3-23 11:03
0
游客
登录 | 注册 方可回帖
返回
//