当前位置:  技术问答>linux和unix

一个汇编的问题

    来源: 互联网  发布时间:2016-11-09

    本文导语:   .section .data    output:    .ascii "what the fuck~!!n"    .section .text    .global main    main:    movl $4,%eax #syscall_write    movl $1,%ebx #(fd = 1 )== stdout    movl $output,%ecx #string addr    movl $1000,%edx #size,but overflo...

 .section .data
   output:
   .ascii "what the fuck~!!n"
   .section .text
   .global main
   main:
   movl $4,%eax #syscall_write
   movl $1,%ebx #(fd = 1 )== stdout
   movl $output,%ecx #string addr
   movl $1000,%edx #size,but overflow?
   int $0x80
   movl $1,%eax
   movl $0,%ebx
   int $0x80
/*我自己猜测的对应c代码为*/
   #include 
   int main()
   {
           char *buf = "what the fuck~!!n";
           write(1,buf,1000);
   }
c语言编译后的可执行代码会溢出(打出n多垃圾...)汇编代码产生的可执行打印正确的字符串。
c语言打印出乱码可以理解,可是汇编不打印乱码不能理解。。。
编译都为命令:
gcc -o 

|
对内核sys_write下断点调试结果
汇编的

Breakpoint 4, sys_write (fd=1, buf=0x80484a0 "what the fuck~!!n", count=1000) at fs/read_write.c:378
378             if (file) {
(gdb) c
Continuing.
[New Thread 3443]
[Switching to Thread 3443]

Breakpoint 4, sys_write (fd=3, buf=0xbfc2309b "", count=1) at fs/read_write.c:378
378             if (file) {
(gdb) c
Continuing.
[Switching to Thread 3155]

Breakpoint 4, sys_write (fd=2, 
    buf=0x937c808 "vmlinux1:~# om[C33[C33[C33[C33[C33[C33[C33[Cls33[K", '锟? ..., count=12)
    at fs/read_write.c:378
378             if (file) {


-----------------------------------


这个是c语言的

Breakpoint 4, sys_write (fd=1, buf=0x8049568 "waht the fuck~!!n", count=1000) at fs/read_write.c:378
378             if (file) {
(gdb) 
Continuing.
[Switching to Thread 3155]

Breakpoint 4, sys_write (fd=2, 
    buf=0x937c808 "vmlinux1:~# om[C33[C33[C33[C33[C33[C33[C33[Cls33[K", '锟? ..., count=12)
    at fs/read_write.c:378
378             if (file) {
(gdb) 
Continuing.

Breakpoint 4, sys_write (fd=2, 
    buf=0x937c808 ".mlinux1:~# om[C33[C33[C33[C33[C33[C33[C33[Cls33[K", '锟? ..., count=1)
    at fs/read_write.c:378
378             if (file) {
(gdb) 
Continuing.

Breakpoint 4, sys_write (fd=2, 
    buf=0x937c808 "/mlinux1:~# om[C33[C33[C33[C33[C33[C33[C33[Cls33[K", '锟? ..., count=1)
    at fs/read_write.c:378
378             if (file) {
(gdb) 
Continuing.

Breakpoint 4, sys_write (fd=2, 
    buf=0x937c808 "amlinux1:~# om[C33[C33[C33[C33[C33[C33[C33[Cls33[K", '锟? ..., count=1)
    at fs/read_write.c:378

应该是write处理不一样

    
 
 

您可能感兴趣的文章:

  • 请教一个函数入口处的汇编问题(压栈问题)
  • 内嵌汇编的问题
  • 汇编的一个简单问题
  • 一个关于汇编的简单问题
  • 100分请教高手一个Linux内核ARM汇编的问题
  • 问一个liunx汇编问题
  • linux驱动中嵌入ARM汇编访问内存的问题
  • 请教,AT&T格式汇编问题。
  • 请教一个 AT&T 汇编问题
  • c内嵌汇编问题,超级初级,大家帮忙
  • 老问题,C/汇编混合编程,使用Nasm与gcc,生成Raw Binary目标格式,系统程序员高手请进!!!
  • 一个GCC内联汇编程序问题
  • AT&T汇编 Linux保护模式编程问题
  • 有懂汇编的吗?很菜的问题!
  • 请教高人:AT&T汇编语言中把.byte .word .long的问题?
  • 求助关于AT&T汇编问题,在线等ing,急呀
  • 哪位高手帮我看看这个linux下汇编程序的调试问题,谢谢。
  • nasm汇编调用C函数的问题
  • 求助,关于vim编写汇编程序遇到的问题
  • 汇编调用fork的问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux下objdump命令用法介绍及如何使用objdump命令进行反汇编
  • linux中所用的汇编怎么和我们学的汇编不一样?
  • linux内核源代码中的汇编部分与其他汇编有不同的地方吗?
  • 有没有at@t汇编格式和intel 汇编格式互相转换的工具啊!
  • 请问有没有用AT&T汇编语法讲汇编语言的书?
  • gcc和objdump能生成Intel汇编吗?AT&T格式汇编看着不太习惯
  • 请教,X86汇编转AT&T汇编,急急
  • ARM汇编中的里的SUBS,后面的S是什么意思?顺便求本汇编的好书。
  • 如何将ARM汇编代码变成GNU汇编?
  • 高分求助:linux内核中的汇编语言和Dos或windows下的汇编是一样的吗,有这方面的书或资料可供学习吗,分不够可再加,决不食言
  • 强力推荐一本LINUX下汇编(即AT&T汇编)的新书
  • 请问一下,汇编器as是否就是gas?
  • oracle iis7站长之家
  • GCC内联汇编如何调试
  • LINUX下的汇编 怎么看????高手指导语法
  • 请问汇编器和编译器各自完成那些功能啊?
  • 想学汇编
  • 编译、汇编、连接分别指代什么?
  • 关于gcc的汇编
  • linux汇编
  • 关于汇编


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3