知道了两个知识:一个数组下标溢出,C语言允许下标为负,若不检查则可能泄露邻接处的数据;第二个fork。
一开始没找到溢出点,找了wp才知道思路,由于flag和given_flag和bin_by_hex在栈上相近,同时value1 = bin_by_hex[flag_hex[2 * i]]; value2 = bin_by_hex[flag_hex[2 * i + 1]];
没检查下标不能小于0,通过赋负值得到 bin_by_hex[-x]即flag处,将flag处的值赋给given_flag,同时每次再爆破1个字符,就可得到flag。
具体实现是算法问题没详细研究,wp:(https://blog.youkuaiyun.com/qq_38204481/article/details/80872005)
jarvis guess
最新推荐文章于 2020-07-30 15:40:33 发布