pwnable.tw的calc和pwnable.kr的memcpy难度提升得让我突然像是到了一片知识的孤岛上,举目所望是无尽的未知。才发现自己的汇编基础实在薄弱,另外只通过0day安全分析学了windows的堆管理,对linux的堆管理实在是所知甚少,鉴于此,在补足基础的时候,打算做一下bugku上的逆向维持一下基本的做题感觉。
bugku逆向的前三题都是用IDA打开就看到答案了,所以从游戏过关这一题开始。
用IDA打开,搜索main,没看到,搜索_main查到主函数。
一进主函数就看到
sub_45A7BE((int)&unk_50B110, v21);
sub_45A7BE((int)&unk_50B158, v3);
sub_45A7BE((int)&unk_50B1A0, v4);
sub_45A7BE((int)&unk_50B1E8, v5);
sub_45A7BE((int)&unk_50B230, v6);
sub_45A7BE((int)&unk_50B278, v7);
sub_45A7BE((int)&unk_50B2C0, v8);
sub_45A7BE((int)&unk_50B308, v9);
sub_45A7BE((int)&unk_50AFD0, v10);
sub_45A7BE((int)"| by 0x61 |\n", v11);
sub_45A7BE((int)"| |\n", v12);
sub_45A7BE((int)"|------------------------------------------------------|\n", v13);
sub_45A7BE(
(int)"Play a game\n"
"The n is the serial number of

博主在pwnable平台遇到困难后,决定通过解决bugku的逆向题目来巩固基础。从'游戏过关'题目开始,通过IDA分析发现程序涉及黑灯转亮灯的游戏逻辑。通过函数调用和参数分析,理解了游戏胜利条件和异或运算过程,最终找到并输出了flag。在分析过程中,意外在数据段中发现flag,并通过函数调用关系理清了获取flag的途径。

4811

被折叠的 条评论
为什么被折叠?



