1625-5 王子昂 总结《2017年8月25日》 【连续第326天总结】
A. WarGame-Narnia
B.
Level 1
int __cdecl main(int argc, const char **argv, const char **envp)
{
char *v3; // ST1C_4@4
if ( !getenv("EGG") )
{
puts("Give me something to execute at the env-variable EGG");
exit(1);
}
puts("Trying to execute EGG!");
v3 = getenv("EGG");
((void (*)(void))v3)();
return 0;
}
这个看汇编会更准确一些
通过getenv函数获取EGG的值,然后call
刚开始我以为EGG应该赋值一个函数的地址(例如System),还研究了一下libc之类的计算,尝试以后发现不是
getenv函数的返回值就是EGG内容的