buuoj-[Zer0pts2020]easy strcmp

1.无壳

2.打开直奔main函数

啊,又是签到题吗?

交上去,不对。。。

然后开始一顿乱翻

这个看起来很可疑

查一下谁调用了这个函数,结果

又是一顿乱翻,从程序入口找到了这个:

一顿瞎点,找到:

off_201028 = sub_6EA,原来是间接调用,怪不得之前找不到

上面这个也留意一下,qword_201090就是strcmp函数

注意原strcmp这里:

双击,查看汇编代码,是跳转到off_201028,也就是 sub_6EA,所以这里的strcmp其实是 sub_6EA

查看sub_6EA,最后面有一个:

上面说了,qword_201090就是strcmp函数

也就是说,假的strcmp把flag放入了sub_6EA,然后一顿操作完成后,才调用了strcmp,也就是flag一顿操作完成后,变成了

那我们就看一看具体是什么操作就好了:

注意给的数据以小端序的形式存储,不过shift+e提取也不需要考虑这个问题,ida帮你做了

写个脚本加回去就得到flag了

data='zer0pts{********CENSORED********}'
data2=[0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x09,
  0x4A, 0x49, 0x35, 0x43, 0x0A, 0x41, 0xF0, 0x19, 0xE6, 0x0B,
  0xF5, 0xF2, 0x0E, 0x0B, 0x2B, 0x28, 0x35, 0x4A, 0x06, 0x3A,
  0x0A, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]
for i in range(len(data)):
    tem=ord(data[i])+data2[i]
    print(chr((tem)),end='')

得到:zer0pts{l3ts_m4kijĴńńSOUR_t0d4y}

乍一看是对的,但是不对。。

去看了一下大佬的博客

多者溢出。。

那就改一下脚本

data='zer0pts{********CENSORED********}'
data2=[0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x09,
  0x4A, 0x49, 0x35, 0x43, 0x0A, 0x41, 0xF0, 0x19, 0xE6, 0x0B,
  0xF5, 0xF2, 0x0E, 0x0B, 0x2B, 0x28, 0x35, 0x4A, 0x06, 0x3A,
  0x0A, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]
for i in range(len(data)):
    tem=(ord(data[i])+data2[i])&0xff
    print(chr((tem)),end='')

得到了:zer0pts{l3ts_m4k34DDSOUR_t0d4y}

还是不对,又去翻了好久博客,正确flag是:zer0pts{l3ts_m4k3_4_DDSOUR_t0d4y}

差了一点点:

是什么导致缺了1呢。。

想了好久,突然意识到 不会是上一字节溢出的给了下一位吧

然后改了一下脚本

data='zer0pts{********CENSORED********}'
data2=[0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x09,
  0x4A, 0x49, 0x35, 0x43, 0x0A, 0x41, 0xF0, 0x19, 0xE6, 0x0B,
  0xF5, 0xF2, 0x0E, 0x0B, 0x2B, 0x28, 0x35, 0x4A, 0x06, 0x3A,
  0x0A, 0x4F, 0x00]
f=0

for i in range(len(data)):
    if f!=0:
        tem = ord(data[i]) + data2[i]+f
        f=0
    else:
        tem=ord(data[i])+data2[i]
    if tem>0xff:
        f=1
    tem&=0xff
    print(chr((tem)),end='')

得到

zer0pts{l3ts_m4k3_4_DETOUR_t0d4y}

posted @ 2022-12-17 19:01  今天吃大鸡腿  阅读(415)  评论(0编辑  收藏  举报