首页
社区
课程
招聘
[讨论]看《The Shellcoders Handbook》一个不明白的地方
发表于: 2007-4-13 21:54 8279

[讨论]看《The Shellcoders Handbook》一个不明白的地方

2007-4-13 21:54
8279
翻译后pdf的第37页(书中页码21页)
书中有段程序
...
int main(int argc, char *argv[])
{
  char *buff, *ptr;
  long *addr_ptr, addr;
  int offset=offset_size, bsize=buffer_size;
  int i;

  if (argc > 1) bsize  = atoi(argv[1]);
  if (argc > 2) offset = atoi(argv[2]);

  addr = find_start() - offset;
  printf("Attempting address: 0x%x\n", addr);

  ptr = buff;
  addr_ptr = (long *) ptr;
  for (i = 0; i < bsize; i+=4)
       *(addr_ptr++) = addr;
...
关于缓冲buff,这里最后几行根本没有为buff malloc就直接修改其指向的内容,是不是有问题。

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 207
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
唔,不好意思,忘看了楼下的勘误里的内容。

本来想删掉这个帖子,发现好像自己没权利删

版主看到了,麻烦删一下吧。不好意思了
2007-4-13 21:58
0
雪    币: 116
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
那个程序我在rh9.0也没编译通过,请问一下,那个勘误在哪里,我没找到
2007-5-7 20:34
0
雪    币: 116
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
刚找到勘误了
==========================
第20页倒数9-12行之间少了一段代码:
if (!(buff = malloc(bsize))) {
        printf("Can't allocate memory.\n");
        exit(0);
}

第27页同样缺少一段代码:
if (!(buff = malloc(bsize))) {
        printf("Can't allocate memory.\n");
        exit(0);
}
========================================
是这个吧,我也加了,但程序好象还是不行
2007-5-7 21:42
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
shellcode这本书中到处都是错误
不知道是故意的不是
这段代码我眼都看穿了 也不明白是在干什么
2007-7-6 00:16
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
年代问题了吧,……
2007-7-9 04:55
0
雪    币: 2108
活跃值: (208)
能力值: (RANK:1260 )
在线值:
发帖
回帖
粉丝
7
故意的?应该不会。
只不过作者在书中提到:这是一本讲hacking的书,因此,有些东西不会写得很明白。

不过,换个角度想一想,排除这些错误本身就是一种进步。

世上没有白走的冤枉路,因为我们会获得别样的体会(收获)。学习也是一样。
2007-7-9 11:36
0
游客
登录 | 注册 方可回帖
返回
//