18.10.10 实验吧----recursive

这题又和python有关,遇到python逆向就是来学姿势的

18.10.10 实验吧----recursive

这是一个elf文件,在linux底下运行一波,就输出了一句话

拖进IDA中看一波

二进制文件在内部运行python解释器,It is created by Freeze,基本上这种情况都可以找到函数Py_FrozenMain,跟进

18.10.10 实验吧----recursive

我们可以看到这个函数里有两个变量“PYTHONINSPECT”和“PYTHONUNBUFFERED”,之后都会调用函数getenv

函数说明:getenv()用来取得参数envvar环境变量的内容。参数envvar为环境变量的名称,如果该变量存在则会返回指向该内容的指针

那么说明如果这两个变量都存在,会产生一些新的东西,我们修改完再运行一下,如下

18.10.10 实验吧----recursive

其中Linux export命令用于设置或显示环境变量

运行完之后我们可以发现多了几个文件,喜出望外,怀疑里面有flag,结果如下

18.10.10 实验吧----recursive

有没有感到一种层层递进的感觉,我们把最后一个文件拖到IDA中看一下

字符串也太多了,这怎么找,我们可以直接用strings搜索以及正则表达式来匹配,如下

18.10.10 实验吧----recursive

.*在正则表达式中表示匹配任意文本