[ASM]Linux x86平台汇编实例

来源:互联网 发布:美国ge膜和陶氏膜 知乎 编辑:程序博客网 时间:2024/05/20 13:07

【环境】
CentOS 6.6 (Final)
Linux version 2.6.32-504.el6.i686
gcc version 4.4.7 20120313
nasm version 2.07

【汇编程序】

; hello.asm; 32-bit "Hello World!" in CentOS 6 i686global _start_start:    jmp stringcode:    pop     ecx    mov     eax, 0x4    mov     ebx, 0x1    mov     edx, 0xD    int     0x80    mov     eax, 0x1    mov     ebx, 0x0    int     0x80string:    call    code    db 'Hello world!',0x0a

【编译与执行】

[hello@local asm]$ nasm -felf32 hello.asm -o hello.o[hello@local asm]$ ld -s -o hello hello.o[hello@local asm]$ ./hello

【提取Shellcode】

[hello@local asm]$ for i in $(objdump -d hello |grep "^ " |cut -f2); do echo -n '\x'$i; done; echo

【参考】
http://blog.csdn.net/feier7501/article/details/8567104
http://blog.csdn.net/dearggae/article/details/47447559

0 0
原创粉丝点击