这个实验的要做的是用gdb逆向一段code,通过查看汇编代码以及单步调试找出这段code需要你填入的字符串,好像每个人都不一样,所以每个人都需要找到自己的拆弹密码,很有意思。 实验一共有6关,我们一关关来看一下: phase_1 打开bomb.c看些c源码(这里的核心方法已经被删除了,只能看到最外层 ...
分类:
移动开发 时间:
2018-07-29 22:27:47
阅读次数:
851
计算机科学三本经典书籍 CSAPP 《深入理解计算机系统》 这是 CMU "CMU: 15 213/18 213: Introduction to Computer Systems (ICS)" 的教材。是计算机系统和操作系统入门。 Github: "https://github.com/travm ...
分类:
其他好文 时间:
2018-07-26 23:37:42
阅读次数:
224
【前言】虽然现在没有接触过大型项目,但是工作了会注重性能。学习一下,应该能更好更快的理解别人写的经典优秀的代码。结合CSAPP和自己的理解,总结一下。 一、程序优化综述 1、高效程序的特点 (1)适当的算法和数据结构。方法和数据的组织形式无疑是最关键的,是优化的基础; (2)代码能够被编译器转化成高 ...
分类:
移动开发 时间:
2018-06-14 01:08:46
阅读次数:
226
这是一个关于机器级的整数、浮点数表示和位运算的实验。要求用给定的操作符、尽可能少的操作数去实现对应的函数功能。 完整的实验包:链接: https://pan.baidu.com/s/1xUBi3XDlidPQFNexbjXoLw 密码: 2333 以下是全部函数的代码: ...
分类:
移动开发 时间:
2018-05-27 21:36:26
阅读次数:
337
从去年7月份开始陆续看了想SICP,CLRS,CSAPP和几门相关的公开课以后(因为实力不足,这几本书,几门课都只是通读了一遍),但看完以后写代码的心情就越来越逼迫。 于是买了邹欣老师的《构建之法》和在udacity上选修了一门叫《programming language》的课(主要是用Python ...
分类:
其他好文 时间:
2018-03-17 10:54:31
阅读次数:
162
CSAPP-2.1 信息存储 0.未知: 1.新知: 0.字长指明指针数据的标称大小。字长决定的最重要的系统参数就是虚拟地址空间的最大大小 1.char类型也能被用来存储整数值 2.使用确定大小的整数类型是程序员准确控制数据表示的最佳途径 3.面向普通用户的机器中排列表示一个对象字节的模式是小端模式 ...
分类:
移动开发 时间:
2018-02-11 22:35:34
阅读次数:
229
0.上手指南 一共 12 个需要补充的函数,所有的工作都只需修改 bits.c 文件,测试的话有三种方式:btest, dlc, 和 BDD checker。 一些小技巧: 在函数开始时声明所有变量 }应该在第一列 注意运算符号的优先级,使用括号确保顺序的正确 关注 !, 0, TMin 等 任务指 ...
分类:
移动开发 时间:
2018-02-11 21:26:36
阅读次数:
558
2.55(*) 编译并运行示例代码: 答:由此可见我的机器是采用低位先输出的小端法机器。 2.56 -2.57 :略 2.58(**) 2.59(**) C表达式:(x & 0xFF)|(y & ~0xFF) 2.60(**) (PS:这里要求不能用乘法,为了实现8*i,也是用移位来实现乘法,其他的 ...
分类:
移动开发 时间:
2018-02-05 23:29:59
阅读次数:
231
1 平台 1.1 硬件 Table 1. 硬件(lscpu) Architecture: i686(Intel 80386) Byte Order: Little Endian 1.2 操作系统 Table 2. 操作系统类型 操作系统(cat /proc/version) 位数(uname -a) ...
分类:
移动开发 时间:
2018-01-11 22:31:48
阅读次数:
293
编译器承担了生成汇编代码的大部分工作,但是阅读和理解汇编代码仍然是重要能力。 学习意义:(1)理解编译器的优化能力,分析代码中隐含的低效率。(2)高级语言提供的抽象层会隐藏我们想要了解的程序的运行时行为。e 相对于C代码表示的计算操作,优化编译器能够重新排列执行顺序,消除不必要计算,用快速操作替换慢 ...
分类:
移动开发 时间:
2018-01-01 21:50:24
阅读次数:
223