新手一枚,如有错误(不足)请指正,谢谢!!
题目下载:下载地址
先用peid查壳
nsp1的壳,exe可执行文件,打开od,F8单步一下,发现可以使用esp定律脱壳
然后下硬件断点
F9运行程序
F8单步
在这里对代码进行分析,删除分析
来到这里,继续单步
来到OEP
右键用od自带的脱壳工具脱壳
IDA载入脱壳后的程序
字符串中找到right,双击
交叉引用
F5伪代码之后
写脚本
#include <stdio.h>
int main(void)
{
int i;
char str1[] = "this_is_not_flag";
char str2[] = {0x12,0x4,0x8,0x14,0x24,0x5C,0x4A,0x3D,0x56,0x0A,0x10,0x67,0x0,0x41,0x0,0x1,0x46,0x5A,0x44,0x42,0x6E,0x0C,0x44,0x72,0x0C,0x0D,0x40,0x3E,0x4B,0x5F,0x2,0x1,0x4C,0x5E,0x5B,0x17,0x6E,0x0C,0x16,0x68,0x5B,0x12};
char flag[43] = {0};
for(i=0;i<42;i++)
flag[i] = str2[i] ^ str1[i%16];
puts(flag);
return 0;
}
得到flag
<mark>flag{59b8ed8f-af22-11e7-bb4a-3cf862d1ee75}</mark>