Logo WP

2024-04-29

如何优雅的使用字节码呢?

【CISCN 2023 初赛】ezbyte

超纲了TwT

运行,要求输入字符串,输入了之后,会复读一次,然后退出程序

Article Image

在 sub_404D25 找到scanf

Article Image

这里的a2是scanf到的字符串指针,这里的if else判断是否合法

v2 = sub_401200(a2) 猜测是strlen,尝试了几个字符串,确实是

恢复符号表#

[[IDA插件#IDA符号表恢复]]

#

从头开始逆有点困难,从printf/putchar入手

搜索 printf putc 函数,全部打上断点

_IO_sputbackc 断到了

<Ctrl+F7> 回溯,找到一个地狱绘图

Article Image

不过这看起来是libc里的函数,看了函数头之后 _vfscanf_internal

Article Image

继续回溯,没事了,就是main函数里的第一次 scanf

重新给putc打上断点

_IO_new_file_xsputn 断到了

_IO_new_file_xsputn
-> _IO_new_file_xsputn
-> _IO_fwrite
-> call qword ptr [rax+60h]

没事了,这个是加密的函数,继续F8

_IO_putc_0 断到了

_IO_putc_0
-> sub_46EB90下的call  qword ptr [rax+68h]

打印出来了 aaaaa