zoukankan      html  css  js  c++  java
  • Linux汇编和Shellcoding-1 汇编语言简介

    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等等。
  • 相关阅读:
    (android高仿系列)今日头条 --新闻阅读器 (三) 完结 、总结 篇
    今日头条 --新闻阅读器
    免费新闻娱乐接口文档
    [代码片段] Android百度地图定位收索取周边在列表中展示并选择
    引用其它布局
    关于推广个人博客的经验_博客推广
    博客推广方法技巧
    android项目解刨之时间轴
    Android小项目:计算器
    Android项目技术总结:网络连接总结
  • 原文地址:https://www.cnblogs.com/AlexanderZhao/p/12878749.html
Copyright © 2011-2022 走看看