x86 Disassembly: Exploring the Relationship between C, x86 Assembly, and Machine Code

x86 Disassembly: Exploring the Relationship between C, x86 Assembly, and Machine Code

简介:

这本书是关于什么的?本书是关于将x86机器代码分解为人类可读的汇编,以及将x86汇编代码反编译为人类可读的C或C源代码。涵盖的一些主题将是所有计算机体系结构所共有的,而不仅仅是x86-compatible机器。这本书将涵盖什么?本书将深入探讨x86机器代码和汇编代码的反汇编和反编译。我们将研究使用汇编器和编译器制作程序的方式,并检查汇编代码由C或C源代码制作的方式。利用这些知识,我们将尝试逆转这一过程。通过检查常见的结构,例如数据和控制结构,我们可以找到使我们能够快速反汇编和反编译程序的模式。这本书是给谁的?本书面向具有x86汇编和C或C ++ 编程经验的本科读者。本书并非旨在教授汇编语言编程,C或C编程或编译器/汇编器理论。先决条件是什么?读者应该对x86汇编,C编程以及可能的C编程有透彻的了解。本书旨在增加读者对x86机器代码,x86汇编语言和C编程语言之间关系的理解。如果您不太熟悉这些主题,则可能需要在继续之前重读上述一些书籍。什么是拆卸?计算机程序最初是以人类可读代码形式编写的,例如汇编语言或高级语言。然后将这些程序编译成称为机器代码的二进制格式。这种二进制格式不是人类直接可读或可理解的。许多程序,例如专有商业程序或非常古老的遗留程序,可能没有可用的源代码。程序经常执行需要复制的任务,或者需要与其他程序进行交互。如果没有源代码和足够的文档,这些任务可能很难完成。本书概述了尝试将可执行文件的原始机器代码转换为汇编语言和高级语言C和C的等效代码的工具和技术。使用高级代码来执行特定任务,几件事情变得可能: 1.通过在不同的环境中编译源代码,可以将程序移植到新的计算机平台。2.可以确定程序使用的算法。这允许其他程序使用相同的算法,或者在不需要追踪源代码的旧副本的情况下重写程序的更新版本。3.用户可以识别和修补安全漏洞和漏洞,而无需访问原始源代码。4.可以为旧程序实现新接口。可以在旧组件的基础上构建新组件,以加快开发时间并减少重写大量代码的需要。

英文简介:

What Is This Book About? This book is about the disassembly of x86 machine code into human-readable assembly, and the decompilation of x86 assembly code into human-readable C or C++ source code. Some topics covered will be common to all computer architectures, not just x86-compatible machines.

What Will This Book Cover? This book is going to look in-depth at the disassembly and decompilation of x86 machine code and assembly code. We are going to look at the way programs are made using assemblers and compilers, and examine the way that assembly code is made from C or C++ source code. Using this knowledge, we will try to reverse the process. By examining common structures, such as data and control structures, we can find patterns that enable us to disassemble and decompile programs quickly.

Who Is This Book For? This book is for readers at the undergraduate level with experience programming in x86 Assembly and C or C++. This book is not designed to teach assembly language programming, C or C++ programming, or compiler/assembler theory. What Are The Prerequisites? The reader should have a thorough understanding of x86 Assembly, C Programming, and possibly C++ Programming. This book is intended to increase the reader's understanding of the relationship between x86 machine code, x86 Assembly Language, and the C Programming Language. If you are not too familar with these topics, you may want to reread some of the above-mentioned books before continuing.

What is Disassembly? Computer programs are written originally in a human readable code form, such as assembly language or a high-level language. These programs are then compiled into a binary format called machine code. This binary format is not directly readable or understandable by humans. Many programs, such as proprietary commercial programs, or very old legacy programs may not have the source code available to you. Programs frequently perform tasks that need to be duplicated, or need to be made to interact with other programs. Without the source code and without adequate documentation, these tasks can be difficult to accomplish.

This book outlines tools and techniques for attempting to convert the raw machine code of an executable file into equivalent code in assembly language and the high-level languages C and C++. With the high-level code to perform a particular task, several things become possible: 1. Programs can be ported to new computer platforms, by compiling the source code in a different environment. 2. The algorithm used by a program can be determined. This allows other programs to make use of the same algorithm, or for updated versions of a program to be rewritten without needing to track down old copies of the source code. 3. Security holes and vulnerabilities can be identified and patched by users without needing access to the original source code. 4. New interfaces can be implemented for old programs. New components can be built on top of old components to speed development time and reduce the need to rewrite large volumes of code.

书名
x86 Disassembly: Exploring the Relationship between C, x86 Assembly, and Machine Code
译名
x86 反汇编:探索 C、x86 汇编和机器码之间的关系
语言
英语
年份
2013
页数
197页
大小
2.10 MB
标签
  • 汇编
  • 下载
    pdf iconx86 Disassembly: Exploring the Relationship between C, x86 Assembly, and Machine Code.pdf
    密码
    65536

    最后更新:2025-04-12 23:57:57

    ←Introduction to Autonomous Robots: Mechanisms, Sensors, Actuators, and Algorithms

    →The Art of Assembly Language 2nd Edition