免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2365 | 回复: 7
打印 上一主题 下一主题

gdb调试汇编的一点问题` [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-08-19 19:20 |只看该作者 |倒序浏览
有这么一段汇编代码(movtest.s):

  1. .section .data
  2. values:
  3. .int 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60
  4. .section .text
  5. .globl _start
  6. _start:
  7. nop
  8. movl $values, %edi
  9. movl $100, 4(%edi)
  10. movl $1, %edi
  11. movl values(, %edi, 4), %ebx
  12. movl $1, %eax
  13. int $0x80
复制代码

然后我是这么汇编和链接的:
as -o movtest.o movtest.s -g
ld -o movtest movtest.o

然后进入gdb里面, movl $values, %edi是怎么也执行不了, 下面是错误提示
  1. Warning:
  2. Cannot insert breakpoint -2.
  3. Error accessing memory address 0x8048074: Input/output error.
复制代码

论坛徽章:
0
2 [报告]
发表于 2009-08-19 22:39 |只看该作者
调用100号,系统调用。
不知道你这个shellcode是干吗用的?

你是要设置断点?

论坛徽章:
0
3 [报告]
发表于 2009-08-19 23:32 |只看该作者
objdump -D movtest.o
看看

论坛徽章:
0
4 [报告]
发表于 2009-08-20 10:46 |只看该作者

回复 #2 emmoblin 的帖子

系统调用号100 ?啥意思?
我是说在gdb里movl $values, %edi怎么也执行不了, 设置了一个断点
  1. break *_start+1
复制代码

论坛徽章:
0
5 [报告]
发表于 2009-08-20 10:48 |只看该作者
...
发现values变成了一个,,, 类似于函数的标签`

论坛徽章:
0
6 [报告]
发表于 2009-08-20 11:07 |只看该作者
我试了,能执行,能断住,一点问题没有。

论坛徽章:
0
7 [报告]
发表于 2009-08-20 14:06 |只看该作者

回复 #6 albcamus 的帖子

嗯, 我发现是在64位的系统上总出问题, 32位的就Ok..

论坛徽章:
0
8 [报告]
发表于 2009-08-24 10:36 |只看该作者

回复 #7 yylogo 的帖子

在64bit os上,你怎么编译、怎么连接的? 估计是这里的错误。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP