[GFCTF 2021]wordy

发布时间 2023-05-09 15:49:54作者: TFOREVERY

查壳

64位,进IDA:

你会发现,啥也没有,别急,再找找:空格切换视图:

往下走:

发现这里存了一堆东西:A转化成字符串:

继续找:

发现转化不了,看看是不是程序爆了:

发现:是这条代码爆红了,没发现堆栈不平衡,试试nop掉:


发现依旧没用,我也蒙了,看了大佬们的文章,发现是一堆机器码,需要nop掉:(上个脚本,不然手动nop掉估计得明天了都)

startaddr = 0x001144
endaddr = 0x3100

for i in range(startaddr,endaddr):
    if get_wide_byte(i) == 0xEB:
        if get_wide_byte(i+1) == 0xFF:
            patch_byte(i,0x90)
            print("[+] Addr {} is patched".format(hex(i)))

怎么用呢:重新进IDA(这里不要保存)



或者快捷键(shift+F2)

换成python,复制代码进去、run:

得到一个新的视图:那就找呗,看看有没有CTF之类的字串:

找到了:获得NSSCTF

这里还有一个方法:不用跑代码,直接在十六进制的窗口里翻:

也能翻到: