打开压缩包,用TXT格式打开bat文件,看到一串乱码。
用命令行对bat的混淆进行整理
发现这个bat的作用就是调用loader.exe,再传参114514进入exe
然后就IDA开始动调,限制一波传参,然后开始
首先这里判断传参,如果没传114514就弹出
进入那个sub_401A6E函数,里面的大致操作是把一个加密了的文件解密并写入内存空间。在C盘Temp中其实能找到这个文件的。但是懒得解密,所以直接去内存里面找。
然后一个个整理,Makefunction。然后整理出来了个这个东西
一个个查看函数,最后在v2的返回值的函数里面找到了对比函数
逻辑清晰。直接可以写脚本,但是这里好像用了%C来定义输入,所以Python写代码的话必须& 0xFF,才能输出正确值。
>>> a = [0x02,0x0D,0x6A,0x1A,0x27,0x7F,0x32,0x65,0x86,0xA5,0xC5,0xD7,0xCF,0xDD,0xE3,0x98,0x3D,0x79,0x53,0x6A,0x18,0x54,0x37,0x14,0xA9,0xE0,0x82,0xB2,0xCE,0x80,0xCD,0x8C]
>>> b = [0x50,0x45,0x46,0x69,0x6C,0x65]
>>> flag = ''
>>> for i in range(len(a)):
flag += chr(0xFF & (a[i] ^ (16 * i ^ (i | 0xE3) + b[i % 6])))
>>> flag
'15cf4ce97a270960b10bed48b0cfe4b8'
>>>
这道题代码有点难找。但是不算很难