无壳程序
IDA静态分析
找到main函数

看到弹窗 但是可以知道的是这个函数是IsDebuggerPresent()判断是否到调试器内
所以最终我们看到的加密函数影应该是
sub_401000()这个函数
所以我们打开这个函数

其中一个数组是
那么我们需要找另外与之异或的数组,经过分析我们可以知道lpMem这个变量储存的是flag

我们可以看到HeapAlloc()函数分配内存与Memcpy_s函数 拷贝内容函数
那么具体数组就是在unk_400B10变量里面 所以我们dump数据下来
EXP
str1 = [0xBB, 0xCC, 0xA0, 0xBC, 0xDC, 0xD1, 0xBE, 0xB8, 0xCD, 0xCF,
0xBE, 0xAE, 0xD2, 0xC4, 0xAB, 0x82, 0xD2, 0xD9, 0x93, 0xB3,
0xD4, 0xDE, 0x93, 0xA9, 0xD3, 0xCB, 0xB8, 0x82, 0xD3, 0xCB,
0xBE, 0xB9, 0x9A, 0xD7, 0xCC, 0xDD]
str2 = [0xBB, 0xAA, 0xCC, 0xDD]
flag = ''
for i in range(len(str1)):
flag+= chr(str1[i] ^ str2[i%4])
print(flag)