64位无壳程序。
先在ida64里打开,发现找不到“please input the flag:”字符串,别的提示字符串也找不到,
再看文件名perl,选择网上搜索这个名词,但只了解到perl是个脚本语言,
推测是在程序运行过程中这些字符串才会显现出来,我目前所见过的能实现这样操作的也就SMC,但这题应该不是,可能是新的反静态分析的技术。
本能想到用X64dbg动态调试。
一键F9看它跑到哪里。
它停在了entrypoint处,看不出什么。为了找到那个字符串但又怕跑飞,一直按住F8看他停在哪里,但字符串没出现,flag却出现了。。。
后来参考别的博主的wp和看雪的发帖得知,这是个用perlapp包装的程序,程序执行过程中会用script解压你压缩的源程序
右键查找script字符串并双击进入cpu窗口
按F8向下运行发现flag。
flag{I_WAnt_dynam1c_F1ag}