-
-
[讨论]看雪秋季赛第三题,莫斯电码的解码函数错误
-
发表于: 2017-11-4 20:31 3016
-
看了这么多writeup,没有一个人提到这一题的morse编码的解码函数写错了。
函数中的一个关键逻辑如下:
其中a1指向莫斯电码字符串,v14是数组下标。
按照上图的逻辑,若解码函数遇到0x2f, 也就是‘/’时,图中的三个if都会通过,直接向译码输出区域输出一个空格。
而在处理非0x20和0x2f字符时,函数只会将遇到的字符暂时存在另一个缓冲区(这部分逻辑不在截图中)。
这样的结果就是,面对任何以'/'为分割的摩斯电码,解码函数只能译码出一堆空格来。
下面上证据
程序执行完call 42d96a, 也就是解码函数之后
ebp-1440处(解码函数输入)的值
ebp-1038处的值
可以见到,程序将 .-/-.../-.-./ 译为了三个空格
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
赞赏
看原图
赞赏
雪币:
留言: