骑着驴子追宝马 发表于 2021-11-21 13:45

Bugku-杰瑞的下午茶

Bugku-杰瑞的下午茶先运行测试一下程序,发现还是要求出flag,所以开始分析程序,先查壳,因为用ida分析我并没有像往常一样成功,所以还是用od动调
https://img-blog.csdnimg.cn/1000a5ebf3d949c7a4cb0c2b8ed8e982.png

经过刚才运行程序发现,有一串字符,所以首先尝试od搜索字符串定位到那个地方
https://img-blog.csdnimg.cn/5b670dffc8b5479ca318019f49ae1d9e.png

找到了程序开始的地方,从这里开始单步调试输入我们的测试字符串123456789
https://img-blog.csdnimg.cn/20d9d04a3f4e46148f9fc39ca0bdd398.png

继续向下运行将参数61,62压入栈,但并不知道有什么用,进入下面这个函数看一看
https://img-blog.csdnimg.cn/db9a9f00ed0a4e4db5a60444f7ebe47b.png

有一些操作,但并没有看出来是什么意思
https://img-blog.csdnimg.cn/302dfef8a3e34626a9cc48910a962949.png

跳过这个函数继续分析,数据窗口跟随,发现我们输入的字符串传入了下一个函数
https://img-blog.csdnimg.cn/9cf9199c2ab64e40b964b333afa24683.png

继续向下分析,再进入下一个函数分析时发现,里面调用了我们输入的字符串并且还调用了一个函数,继续跟进去看看
https://img-blog.csdnimg.cn/2b71dd047e51419388a88afa2e7faaee.png

跟进去发现了以下操作,将输入的内容与3异或
https://img-blog.csdnimg.cn/dff01831e52c422eb63e9ce4ac8a7f7b.png

加密后的数据
https://img-blog.csdnimg.cn/af8ee9eabe694babbfd4eb96a209fe6f.png

在继续向下分析时,发现进行了一些操作,但并没有影响我们的输入或是加密后的数据跳过那些函数,发现一个特殊的字符串和我们加密后的数据
https://img-blog.csdnimg.cn/97157a4c113d4de1b012832f17d90e16.png

进入这个函数,会发现进行了一些处理,就是将加密后的输入字符串和那一串特殊字符进行比较
https://img-blog.csdnimg.cn/cc578fbe6c684f2996ca694cab464db5.png

当je跳转实现时,就会输出success
https://img-blog.csdnimg.cn/2a678dbecf684869b1f12e4c9b76c4ba.png

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

脚本:
x =
for i in range(0, 20):
    x = x ^ 3
    print(chr(x))

骑着驴子追宝马 发表于 2021-11-21 15:29

moshuiNW 发表于 2021-11-21 15:17
请问 x 是怎么得出来的,能不能讲下,我没怎么看懂
经过前面一个函数的处理将12345678加密了,然后在00401921上方处将加密后的数据和一个特殊字符串压入栈,然后用call函数进行比较,如果相同则je跳转,如果je跳转则会输出success,所以那个特殊字符串异或三后就可以得出flag了

moshuiNW 发表于 2021-11-21 15:23

moshuiNW 发表于 2021-11-21 15:17
请问 x 是怎么得出来的,能不能讲下,我没怎么看懂

数据窗口中跟随 立即数?

李佑辰 发表于 2021-11-21 14:43

我来喝茶了 看看茶怎么样

moshuiNW 发表于 2021-11-21 15:17

请问 x 是怎么得出来的,能不能讲下,我没怎么看懂

骑着驴子追宝马 发表于 2021-11-21 15:33

moshuiNW 发表于 2021-11-21 15:23
数据窗口中跟随 立即数?

对的,可以直接找到

moshuiNW 发表于 2021-11-21 15:49

骑着驴子追宝马 发表于 2021-11-21 15:33
对的,可以直接找到

嗯,发现了XD

yeshengling 发表于 2021-11-22 14:38

请问能不能直接在OD里调标志位让je不跳转会不会看到falg?

lijisheng 发表于 2021-11-22 16:48

请问x是怎么发现的,没搞明白

rk1790056046 发表于 2021-11-22 22:19

学习一下!虽然看不懂
页: [1] 2
查看完整版本: Bugku-杰瑞的下午茶