Mastering Assembly Programming
暫譯: 精通組合語言程式設計
Alexey Lyashko
- 出版商: Packt Publishing
- 出版日期: 2017-09-27
- 售價: $1,930
- 貴賓價: 9.5 折 $1,834
- 語言: 英文
- 頁數: 290
- 裝訂: Paperback
- ISBN: 1787287483
- ISBN-13: 9781787287488
-
相關分類:
Assembly
海外代購書籍(需單獨結帳)
相關主題
商品描述
Key Features
- Understand the Assembly programming concepts and the benefits of examining the AL codes generated from high level languages
- Learn to incorporate the assembly language routines in your high level language applications
- Understand how a CPU works when programming in high level languages
Book Description
The Assembly language is the lowest level human readable programming language on any platform. Knowing the way things are on the Assembly level will help developers design their code in a much more elegant and efficient way. It may be produced by compiling source code from a high-level programming language (such as C/C++) but can also be written from scratch. Assembly code can be converted to machine code using an assembler.
The first section of the book starts with setting up the development environment on Windows and Linux, mentioning most common toolchains. The reader is led through the basic structure of CPU and memory, and is presented the most important Assembly instructions through examples for both Windows and Linux, 32 and 64 bits. Then the reader would understand how high level languages are translated into Assembly and then compiled into object code. Finally we will cover patching existing code, either legacy code without sources or a running code in same or remote process.
What you will learn
- Obtain deeper understanding of the underlying platform
- Understand binary arithmetic and logic operations
- Create elegant and efficient code in Assembly language
- Understand how to link Assembly code to outer world
- Obtain in-depth understanding of relevant internal mechanisms of Intel CPU
- Write stable, efficient and elegant patches for running processes
About the Author
Alexey Lyashko is an Assembly language addict, independent software reverse engineer, and consultant. At the very beginning of his career, when he was a malware researcher at Aladdin Knowledge Systems, he invented and developed a generic code recognition method known as HOFA™. After spending a few years in the anti-malware industry and gaining sufficient experience in low-level development and reverse engineering, Alexey switched to content protection and worked as a reverse engineering consultant with Irdeto’s BD+ department, actively participating in content protection technology development.
Since 2013, he has worked with several software development companies providing reverse engineering and low-level software development consultancy.
Table of Contents
- Intel Architecture
- Setting Up a Development Environment
- Intel Instruction Set Architecture (ISA)
- Memory Addressing Modes
- Parallel Data Processing
- Macro Instructions
- Data Structures
- Mixing Modules Written in Assembly and Those Written in High-Level Languages
- Operating System Interface
- Patching Legacy Code
- Oh, Almost Forgot
商品描述(中文翻譯)
#### 主要特點
- 理解組合語言的編程概念及檢查從高級語言生成的 AL 代碼的好處
- 學習如何在高級語言應用中整合組合語言例程
- 理解在高級語言編程時 CPU 的運作方式
#### 書籍描述
組合語言是任何平台上最低層次的人類可讀編程語言。了解組合層次的運作方式將幫助開發者以更優雅和高效的方式設計代碼。它可以通過編譯高級編程語言(如 C/C++)的源代碼生成,但也可以從頭開始編寫。組合代碼可以使用組合器轉換為機器碼。
本書的第一部分從在 Windows 和 Linux 上設置開發環境開始,提到最常見的工具鏈。讀者將了解 CPU 和內存的基本結構,並通過 Windows 和 Linux 的示例介紹最重要的組合指令,涵蓋 32 位和 64 位。接著,讀者將理解高級語言如何被翻譯成組合語言,然後編譯成目標代碼。最後,我們將討論如何修補現有代碼,無論是沒有源代碼的舊代碼還是同一或遠程進程中的運行代碼。
#### 您將學到的內容
- 獲得對底層平台的更深入理解
- 理解二進制算術和邏輯運算
- 在組合語言中創建優雅和高效的代碼
- 理解如何將組合代碼鏈接到外部世界
- 獲得對 Intel CPU 相關內部機制的深入理解
- 為運行中的進程編寫穩定、高效和優雅的修補程序
#### 關於作者
**Alexey Lyashko** 是一位組合語言愛好者、獨立軟體逆向工程師和顧問。在他職業生涯的最初階段,作為 Aladdin Knowledge Systems 的惡意軟體研究員,他發明並開發了一種稱為 HOFA™ 的通用代碼識別方法。在反惡意軟體行業工作幾年並獲得足夠的低層開發和逆向工程經驗後,Alexey 轉向內容保護,並作為 Irdeto 的 BD+ 部門的逆向工程顧問,積極參與內容保護技術的開發。
自 2013 年以來,他與幾家軟體開發公司合作,提供逆向工程和低層軟體開發的諮詢服務。
#### 目錄
1. Intel 架構
2. 設置開發環境
3. Intel 指令集架構 (ISA)
4. 內存尋址模式
5. 並行數據處理
6. 宏指令
7. 數據結構
8. 混合使用組合語言和高級語言編寫的模塊
9. 操作系統介面
10. 修補舊代碼
11. 哦,差點忘了