昨天一上午一直在做这道逆向题,这个题目运行起来输出是乱码,就很烦气,一直在搞这个终端的编码问题,搞了半天结果方向错了,然后就放弃了,其实这道题做出来的人还是很多的,还是自己太菜了,感觉自己的re和pwn还是要多加努力学习才行,今天看到writeup来学习下,做一下学习的笔记哈。
拿到这个binary,用file命令看一下,这个binary的基本信息,这是一个32位的elf文件,放到ubuntu下运行一下发现是乱码。
用ida反汇编逆向一下
int __cdecl main()
{
char v0; // al
char v1; // al
char v2; // al
char v3; // al
char v4; // al
char v5; // al
char v6; // al
char v7; // al
char v8; // al
char v9; // al
char v10; // al
char v11; // al
char v12; // al
char v13; // al
char v14; // al
char v15; // al
char v16; // al
char v17; // al
char v18; // al
char v19; // al
char v20; // al
v0 = encode(dword_804A03C); // 6
printf("%c", v0);
fflush(stdout);