执行一下后
查壳
32位无壳
shift+f12查找字符串
然后找到应该答案的位置按x查找函数
猜测v2为忘记补充的变量
新年快乐
先查壳
有upx的壳
UPX有不光彩的使用记录,它被用来给木马和病毒加壳,躲避杀毒软件的查杀。
UPX是一个著名的压缩壳,主要功能是压缩PE文件(比如exe,dll等文件),有时候也可能被病毒用于免杀.壳upx是一种保护程序。一般是EXE文件的一种外保护措施,主要用途 :
1、让正规文件被保护起来,不容易被修改和破解。
2、使文件压缩变小。
使用脱壳工具
由strcpy和strcmp可知答案为HappyNewYear!
xor
SHIFT+E导出数据unsigned char ida_chars[] =
{
0x66, 0x0A, 0x6B, 0x0C, 0x77, 0x26, 0x4F, 0x2E, 0x40, 0x11,
0x78, 0x0D, 0x5A, 0x3B, 0x55, 0x11, 0x70, 0x19, 0x46, 0x1F,
0x76, 0x22, 0x4D, 0x23, 0x44, 0x0E, 0x67, 0x06, 0x68, 0x0F,
0x47, 0x32, 0x4F, 0x00
};
flag{QianQiuWanDai_YiTongJiangHu}
#include <stdio.h>
#include <stdlib.h>
int main() {
FILE *file;
long file_size;
// 打开文件
file = fopen("example.exe", "rb");
// 获取文件大小
fseek(file, 0, SEEK_END);
file_size = ftell(file);
rewind(file);
// 分配缓冲区内存
int *buffer = (int *)malloc(file_size * sizeof(int));
// 读取文件内容到缓冲区
if (fread(buffer, 1, file_size, file) != file_size) {
perror("Error reading file");
fclose(file);
free(buffer);
return 1;
}
// 关闭文件
fclose(file);
// 在这里可以使用缓冲区的内容进行其他操作
for (int i = 0; i < file_size; i++) {
printf("%c", buffer[i]);
}
// 释放缓冲区内存
free(buffer);
return 0;
}