最近公司需要完成安全方面的測試,隨之帶來需要更深入地學習攻擊方法和漏洞分析的技術,總感覺有點像黑客:),不過不能只知道一些安全測試工具的方法和工具的使用,更需要基礎功夫,首先從大學學過的匯編語言(呵呵,大學學過的課程,長時間沒有使用大部分還給老師了)開始。
1、下載nasm安裝包
#wget http://www.nasm.us/pub/nasm/releasebuilds/2.11.08/nasm-2.11.08.tar.gz
2、解壓安裝nasm
#tar -xzvf nasm-2.11.08.tar.gz
#cd nasm-2.11.08
#./configure
#make
#make install
3、編寫hello.asm
section .data ;section declaration msg db "Hello, world!",0xA ;our dear string len equ $ - msg ;length of our dear string section .text ;section declaration ;we must export the entry point to the ELF linker or global _start ;loader. They conventionally recognize _start as their ;entry point. Use ld -e foo to override the default. _start: ;write our string to stdout mov eax,4 ;system call number (sys_write) mov ebx,1 ;first argument: file handle (stdout) mov ecx,msg ;second argument: pointer to message to write mov edx,len ;third argument: message length int 0x80 ;call kernel ;and exit mov eax,1 ;system call number (sys_exit) xor ebx,ebx ;first syscall argument: exit code int 0x80 ;call kernel
4、編譯連接
#nasm -f elf64 hello.asm (linux是64位的,如果是32,請使用elf32)
#ld -s -o hello hello.o
#ls hello
hello
5、執行程序
#./hello
Hello, world!
終於寫一個最簡單的Hello World,回想起一些常用的指令和寄存器的作用,只能在后來安全測試和C語言轉匯編的時候,加強一下匯編的知識,知識到用時方恨少,還是多准備一些知識了:)加油~~~~