摘要: 先贴出phase_4的代码: 指令的讲解在注释里了,但是想讲讲我的另一种分析方法: 途中通道的意思,表述可能不对,可以理解为是一个运行的路程吧。 为了保证总的返回值是0,所以只能走a,c通道(路程),由此可以计算出%ecx的值,只要在这几次计算中有一次num_0(即输入的第一个数)等于%ecx的值, 阅读全文
posted @ 2017-09-14 23:04 西湖又雨 阅读(1688) 评论(0) 推荐(0)
摘要: 需要注意的一点是,在这个switch结构与内存地址0x402470的关系中,并不是简单的线性关系(按照0 1 2 3 4 5 6 7的顺序对应于0x400f7c这边的地址),而是有变化的(0 2 3 4 5 6 7 1),主要需要查看地址内容才可以看的出来,如下: 需要对应着看,才可以分析出所有答案 阅读全文
posted @ 2017-09-14 20:58 西湖又雨 阅读(1174) 评论(1) 推荐(2)
摘要: 这里是第二关,在这里分享一些在解题过程中用到的GDB功能。 首先,要进行断点,比如,在第二关中,断点操作有: break 81; break 82; break 83; 分别在read_line,phase_2,phase_defused,三个函数入口进行了断点。 另外,还有一个地方需要断点,那就是 阅读全文
posted @ 2017-09-14 19:56 西湖又雨 阅读(1133) 评论(0) 推荐(0)
摘要: 这一个lab拖了好久才开始慢慢完成,花的时间比较多,我也是没想到会需要这么多时间来折腾。考虑到如果把所有关卡的内容都一次发出来,太长了。所以分开操作吧。 然后,有一点是,在开始解题前的确该好好认识一下GDB,因为要使用这个工具。虽然我也感觉有些东西是可以等需要的时候再查的,但是后来找到了一篇介绍gd 阅读全文
posted @ 2017-09-14 18:08 西湖又雨 阅读(916) 评论(0) 推荐(0)
摘要: /* * CS:APP Data Lab * * * * bits.c - Source file with your solutions to the Lab. * This is the file you will hand in to your instructor. * * WARNING: Do not include the header... 阅读全文
posted @ 2017-09-14 17:08 西湖又雨 阅读(1012) 评论(0) 推荐(0)