[西湖论剑wp] 笨方法解逆向第一题(Cellular)
正常解法
通过查看字符串发现有个类似迷宫(蜂巢)地图的区域,猜测得先逆向得出地图字符串如何使用
然后再分析CheckFlag函数中用户输入R或者L之后蜂巢的走向
最后得出一段由R和L组成的Flag
我的解法
我发现在CheckFlag函数中验证Flag不是非常严谨,每一位Flag之间没有很深的关联,并且是按位校验的,只要当前校验位不正确程序就会打印错误提示。由此我们可以在判断用户输入处下断点,进行人工爆破,例如当前输入R程序提示错误则当前位应该为L。
通过前面输入处可知,Flag一共是25位而且只有每位只有两种可能性,所以人工爆破用不了多少时间
通过十多分钟的尝试,爆破出了结果,最后md5一下就可以交了
总结
我这种解法是投机取巧的,看看其他师傅的文章。
更优雅的爆破