Linux汇编和Shellcoding-1 汇编语言简介
2016-05-14 22:13
716 查看
1. 什么是汇编语言
•汇编语言(assemblylanguage)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符(Mnemonics)代替机器指令的操作码,用地址符号(Symbol)或标号(Label)代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。普遍地说,特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。
特点:
高效简洁
抽象难懂
与处理器对应
2. 为什么要学习汇编语言
由于汇编语言更偏向于计算机底层,所以学习汇编语言能够更好地了解计算机运行原理。高级语言(C,C++)编写的程序难以还原源码,但可以反汇编成汇编语言,掌握汇编语言就能分析未知源码的程序如病毒、木马、外挂、竞品分析等。
学好汇编语言是从事软件逆向工程以及网络安全方面工作的基础。
特别是对于想成为真正黑客,不管是白帽子还是黑帽子,学好汇编都是非常重要的。
对于脚本小子,如果滥用黑客工具,就会面临螳螂捕蝉黄雀在后的局面,下面两篇文章更能说明这一问题:
网络小黑揭秘系列之黑产江湖黑吃黑—中国菜刀的隐形把手
http://drops.wooyun.org/papers/13128
黑吃黑:鬼影DDoS黑客追踪
http://www.freebuf.com/articles/terminal/90121.html
3. 汇编语言与高级语言
汇编语言的运行过程:程序员编写汇编程序,通过汇编器、链接器编译成二进制格式的文件,交给计算机运行:高级语言(C,C++,Delphi等)编写的代码需要经过预处理器处理(比如宏代码),再经过编译器、汇编器汇编译成汇编代码,最后链接其他库文件最终形成二进制代码。
4. 实验环境:
VMWare软件• Ubuntu12.04 LTs 32-bit Edition
NASM汇编语言编译程
安装: sudo apt-get install nasm build-essential
5. 在Ubuntu系统中查看CPU信息
1) 通过lscpu命令查看2). cat /proc/cpuinfo
通过 cat /proc/cpuinfo 我们还可以了解到CPU支持的指令集:比如FPU,MMX,SSE,SSE2等等。
相关文章推荐
- Linux Bash终端支持中文显示
- shell脚本学习02-第一章小结
- shell脚本学习01
- 批量修改文件名的脚本bat\python\shell
- 【Linux】Shell三类变量的作用域——linux shell “永久环境变量”、“临时环境变量”和"普通变量"之完全解读
- Shell脚本的一些参数
- Bash通配符及特殊符号
- shell脚本分为三类:登录脚本、交互式脚本、非交互式脚本
- linux shell编程学习--日志工具
- linux shell编程学习--test测试比较命令
- Spark入门实战系列--3.Spark编程模型(上)--编程模型及SparkShell实战
- shell(二)Bash常用快捷键
- Shell命令行快捷键
- shell实现输入密码显示星号
- shell script 交互式脚本,可以读取命令行参数、选项,用户输入数据
- 第二节windows系统下Xshell 5软件远程访问虚拟机 Linux系统
- shell原理和问答机制引入
- linux shell脚本监控端口
- clone repository in git shell under windows
- Shell脚本学习指南(二)——变量、条件、循环