无壳64位elf文件
拖入ida看代码
修复一下,方便分析
此处为主要加密及判断段
上面的HIDWORD和LODWORD查了一下资料是取高低4字节,如果是HIWORD就是2字节
从明文text取出之后进行enc函数加密,被加密的low与hi再放入v7数组中,循环三次,而v7的长度为6,实际上这里取高低字节的操作是取了v7[i]和v7[i+1]。为什么呢,进函数看看
进入enc函数
明显的tea加密,v3,和v4就是v7[i]v7[i+1],将部分变量重命名,方便分析
写个脚本解密即可,但这里我们缺个密文,去另一个cmp函数找
这里约束条件可以用z3解出来,我直接丢ai了
用的大佬的脚本,不记得看的哪个师傅了
解出来是666C61677B72655F69735F6772656174217D
将这一串十六进制数转成字符串即为flag