代码改变世界

随笔分类 -  programming language

拆弹实验

2011-11-22 20:20 by justvi, 1782 阅读, 收藏,
摘要: 近期重读CSAPP,记得第三章后有一实验,二进制炸弹,找出以前下载的目标文件(不记得在哪里下的了,就不贴原链接了),开始了拆弹实验。实验分六个关卡,每个关卡通过一个phase_x函数来判断输入的正确性,因此先查看phase_1的代码,disas phase_1:在<+22>处,判断strings_not_equal的返回值,从字面意义及在<+6><+11>出传入的参数来看,这个函数判断传入的两个参数是否相等,在<+11>的0x8(%ebp)表示phase_1的第一个参数,因此查看0x8049678处的值:x/s 0x8049678可推测第一个关卡 阅读全文

请用if-else if

2011-10-04 13:59 by justvi, 290 阅读, 收藏,
摘要: 话说在写归并排序的时候,碰到了问题,因为gdb用得不太熟练,折腾了半天,才搞明白为什么出了问题。且看以下代码: 1 void merge(int *a, int l, int m, int u) 2 { 3 int lstart = l; 4 int lend = m; 5 int rstart = m + 1; 6 int rend = u; 7 int n = u - l + 1; 8 int *temp = (int *)malloc(sizeof(int) * n); 9 int i;10 for (i = 0; lsta... 阅读全文