情景再现

查壳

image-20230218183007695

然后运行一下程序

老规矩动调运行(能够顺便看下字符串 有无切入点)

image-20230218183244297

image-20230218183104349

拖入ida(一般打开后都会直接停在主函数出)

字符串跟踪 交叉引用找到主函数

发现无法反编译 看看 汇编

image-20230218183608405

image-20230218183449495

跟进401020 可以发现类似反调试的混淆

然后返回再次反编译

啊?竟然可以了 (笔者太菜啦 不知道是因为什么造成的 )

有大佬知道原因 希望可以赐教Orz

修复一下代码 发现入题目一般

就是一个简单的xor

image-20230218183905760

贴exp

1
2
3
4
5
6
7
8
#include<iostream>
using namespace std;
int main()
{
int c[] = {0X4D,0X53,0X41,0X57,0X42,0X7E,0X46,0X58,0X5A,0X3A,0X4A,0X3A,0X60,0X74,0X51,0X4A,0X22,0X4E,0X40,0X20,0X62,0X70,0X64,0X64,0X7D,0X38,0X67};
for(int i=0;i<33;i++)cout << (char)(c[i]^i);
}

1
2
3
4
5
6
encData ='MSAWB~FXZ:J:`tQJ"N@ bpdd}8g'
flag = ''
for i in range(27):
flag +=chr(ord(encData[i]) ^ i)
print(flag)
# MRCTF{@_R3@1ly_E2_R3verse!}

总结

这题超简单耶

但有一个令人迷惑的操作

(虽然不0影响做题?有大佬知道,还请教教我)

好的, 本题结束

感谢观看 Orz