CSAPP——bomblab拆弹实验4、5记录

4这个有点巧过了,就直接写了。

因为这个phase_4上面是func4,我就直接先看了。

看完func4,感觉用了4个传参寄存器,结合源代码的提示是个数学风暴,那就先解这个数学式呗,特殊值直接一看,0 0 0 0的话就行,于是phase_4都没看,直接试,就过了。然后再一看phase_4,只需要2个数字。


也就是0 0就行。就过了看phase_5。


emm不知道为什么这个图的分析编辑记录没保存上,就再写一遍吧。string_length一看就是读取字符串长度,然后cmp rax是不是=6,那就是长度为6的字符串。然后说实话下面一串循环6次一个个字符处理不知道在干嘛,有点没看懂是想干什么。下面的0x4024b0出现了一个奇怪的字符串

后面一看就是一句话,那就是前面的乱码一样的maduiersnfotvbyl是重点。


rbx放的是我输入的字符串。看起来就是处理完了以后和下面一个特定的字符串进行比较,比较一致后就过了。那看看是啥


感觉还是个单词,abcdef这处理成个单词就有点微妙啊。难道就是个定值?那我输入flyers试试。结果booom。一看这个值,又变了

我就?????,输入这个rvfedu试试呢?


麻了,我还是输入aaaaaa试试看是怎么处理的,应该是按位怎么有个变化吧

结果一看又变成flyers了。感觉这个关键就在这个循环处理字符上。看起来逻辑是取我输入的字符的后四位加上之前那个乱码再怎么处理了一下?实在有点没搞懂。于是就去看了一下视频解析。发现好像就是固定的取这个乱码字符去对应ASCII码表。


从line5--->line6的想法是因为小写字母从61开始对应


查表就完了。说实话这个题我还是有点没搞懂代码,而且这个猜测的思路我也有点觉得想不到。还需要多练。就记录到此。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容