如何将解题之路转化为一个?

摘要:写点新的题目 我打算更新下我得写题记录,因为有的前辈的wp不算特别完善,在这里尽我微薄之力,让后面写题的人能找到题目解法(希望如此) 当然我写的也不一定特别的好,希望大家多多包涵。大部分题目来自于nssctf。 [LitCTF 2023]d
写点新的题目 我打算更新下我得写题记录,因为有的前辈的wp不算特别完善,在这里尽我微薄之力,让后面写题的人能找到题目解法(希望如此) 当然我写的也不一定特别的好,希望大家多多包涵。大部分题目来自于nssctf。 [LitCTF 2023]debase64 好吧,其实做这一道题目的想法已经完全跑偏了。 首先,点开main函数,能够看到很重要的数据 在这里的话,里面有正数有负数,所以,把负数补成正的。 负数转正数方法: unsigned = signed + 65536 转换: v8 -11618 + 65536 = 53918 v9 -19854 + 65536 = 45682 v10 -32589 + 65536 = 32947 v11 -144 + 65536 = 65392 接着转成16进制,看hex编码 46 18ED 5696 D2BE B2B2 8003 FF70 0000 然后拆字节端序处理 46 ED 18 96 56 9E D2 72 B2 B3 80 03 FF 70 然后把这个字节换成二进制再换成十进制 然后 点进去 再点击byte,能看到base64编码 BCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ 把上述转化成十进制的对应找出来 是Ru0Y + llae + 0nKy + s4Bw, 但是端序顺序有问题,所以我们改一下 Y0uReallyKn0wB4s,还差一位,找出来这一位直接补三个=就行了,然后用它给的MD5进行爆破 借用大佬的代码import hashlib en_flag = 'Y0uReallyKn0wB4s' for i in string.printable: end = en_flag + i + '=' if hashlib.md5(end.encode()).hexdigest() == '5a3ebb487ad0046e52db00570339aace': print(end) exit() 答案出来了Y0uReallyKn0wB4s3===