猜你喜欢
x64汇编语言:从新手到AVX专家

x64汇编语言:从新手到AVX专家

书籍作者:乔·范·霍伊(Jo ISBN:9787302595465
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:10890
创建日期:2023-03-23 发布日期:2023-03-23
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

  从简单和基本的程序开始,一直讲到AVX编程。
  读完《x64汇编语言:从新手到AVX专家》,你将能编写和阅读汇编代码、混合使用汇编语言和高级语言、了解什么是AVX等。
  《x64汇编语言:从新手到AVX专家》代码力求简单,不涉及错误检查,没有图形用户界面,也没有多余的描述,以免分散你的注意力。理论知识也是浓缩的,只涉及少量二进制知识以及有限的逻辑运算符和线性代数知识,不涉及浮点转换方面的内容,
  汇编代码都是完整程序,你可在自己的计算机上测试、使用、修改和删除这些代码。
  《x64汇编语言:从新手到AVX专家》还将展示可使用哪些工具、如何使用它们以及这些工具的潜在问题。
  《x64汇编语言:从新手到AVX专家》并未事无巨细地列出全部汇编指令,而是重点列出主要知识点。
  通读《x64汇编语言:从新手到AVX专家》,你将扎实掌握基础知识,你可在此基础上更深入地研究自己感兴趣的主题。
  Linux是学习汇编语言的非常简单平台,因此《x64汇编语言:从新手到AVX专家》大部分内容都是关于在Linux上进行汇编,但最后也提供了一些章节来帮助你在Windows上进行汇编。一旦掌握了Linux汇编,就可更轻松地进行Windows汇编。
  如果你没有任何编程经验,请暂时把《x64汇编语言:从新手到AVX专家》放在一边,先学习高级语言(例如C语言)的一些编程基础知识。
  了解CPU和内存的工作原理
  理解计算机和操作系统如何协同工作
  了解高级语言编译器如何生成机器语言j并使用这些知识编写更高效的代码
  更好地分析程序中的错误
  让程序正常工作,这一部分十分有趣
  调查恶意软件并采取必要的行动加以预防
  《x64汇编语言:从新手到AVX专家》面向高语言程序员,以及分析恶意软件的系统工程师和安全工程师。读者需要熟悉Linux、Windows、虚拟化和高级编程语言(C或C++)。

作者简介

  Jo Van Hoey,拥有40年的IT行业从业经验,包括各种职能部门、多家IT公司和各种计算平台。他最近从IBM大型机软件客户经理职位上退休。出于对IT安全的兴趣,Jo长期深入研究汇编语言,因为汇编语言知识是保护IT基础设施抵御攻击和恶意软件的重要基础。

编辑推荐

从简单和基本的程序开始,一直讲到 AVX 编程。 读完本书,你将能编写和阅读汇编代码、混合使用汇编语言和高级语言、了解什么是 AVX等。

  本书代码力求简单,不涉及错误检查,没有图形用户界面,也没有多余的描述,以免分散你的注意力。理论知识也是浓缩的,只涉及少量二进制知识以及有限的逻辑运算符和线性代数知识,不涉及浮点转换方面的内容。

  汇编代码都是完整程序,你可在自己的计算机上测试、使用、修改和删除这些代码。本书还将展示可使用哪些工具、如何使用它们以及这些工具的潜在问题。本书并未事无巨细地列出全部汇编指令,而是重点列出主要知识点。通读本书,你将扎实掌握基础知识,你可在此基础上更深入地研究自己感兴趣的主题。

  Linux是学习汇编语言的最简单平台,因此本书大部分内容都是关于在 Linux 上进行汇编,但最后也提供了一些章节来帮助你在 Windows 上进行汇编。 一旦掌握了 Linux 汇编,就可更轻松地进行 Windows 汇编。

  如果你没有任何编程经验,请暂时把本书放在一边,先学习高级语言(例如C语言)的一些编程基础知识。


前言

  收到王军老师发来的英文电子版时,我的内心是忐忑的。汇编语言是一门低级语言,晦涩难懂,学习门槛高。目前市面上的汇编语言书籍大多是32位的,64位汇编语言的书籍凤毛麟角,可供查证的资料十分有限。我于2020年3月开始正式创业;作为上海碳泽信息科技有限公司的创始人,我平时工作较忙,只能利用周末和晚上的时间进行翻译,翻译这样的书籍是很有挑战的。我尽量把书中的示例代码都亲自跑了一遍,以进行验证。本书的作者有非常丰富的从业经验,全书内容深入浅出,循序渐进,通俗易懂;本书的技术审稿人在英特尔公司工作了26年,对英特尔CPU的架构非常熟悉,对本书的质量进行了严格把关。
  汇编语言是逆向工程的基础,扎实的汇编语言基础对于抵御恶意软件攻击非常有用,是保护IT基础设施的重要技能。在学习本书前,最好先学一门高级语言(如C语言),这对于你学习和掌握本书的内容非常重要。本书很少涉及深奥的理论知识,将理论内容控制在最低范围。书中的代码都是完整的,便于读者进行测试和修改。
  掌握汇编语言对于漏洞挖掘也非常重要,尤其是底层漏洞,如Windows、Linux操作系统的漏洞挖掘。另外,如果读者喜欢打CTF比赛,那么任何一个优秀战队都需要一名优秀的二进制队员;要想成为那个不可或缺的队员,非常有必要学好汇编语言。
  目前国内的安全人才(尤其是二进制方面的人才)非常短缺。希望本书能帮助读者快速掌握64位汇编语言,迅速上手,为精通64位汇编语言打下坚实基础,为国家信息技术的发展和网络安全事业奉献力量。
  最后感谢清华大学出版社,感谢王军等编辑付出的艰苦努力,感谢上海碳泽信息科技有限公司的所有同事和股东的支持,谢谢你们。

目录

第1章 你的第一个程序
1.1 编辑、汇编、链接和运行(或调试)
1.2 汇编程序的结构
1.2.1.data段
1.2.2.bss段
1.2.3.txt段
1.3 小结

第2章 二进制数、十六进制数和寄存器
2.1 二进制简短课程
2.1.1 整数
2.1.2 浮点数
2.2 寄存器简短课程
2.2.1 通用寄存器
2.2.2 指令指针寄存器(rip)
2.2.3 标志寄存器(Flag Register)
2.2.4 xmm和ymm寄存器
2.3 小结

第3章 用调试器进行程序分析:GDB
3.1 开始调试
3.2 继续进步
3.3 其他GDB命令
3.4 稍加改进的hello,world程序
3.5 小结

第4章 你的下一个程序:AliveandKicking
4.1 alive程序分析
4.2 打印
4.3 小结

第5章 汇编是基于逻辑的
5.1 NOT
5.2 0R
5.3 XOR
5.4 AND
5.5 小结

第6章 数据显示调试器
6.1 使用DDD
6.2 小结

第7章 跳转和循环
7.1 安装SimpleASM
7.2 使用SASM
7.3 小结

第8章 内存
8.1 探索内存
8.2 小结

第9章 整数运算
9.1 从整数算术开始
9.2 分析算术指令
9.3 小结

第10章 堆栈
10.1 理解堆栈
10.2 跟踪堆栈
10.3 小结

第11章 浮点运算
11.1 单精度与双精度
11.2 浮点数编程
11.3 小结

第12章 函数
12.1 编写一个简单的函数
12.2 更多函数
12.3 小结

第13章 栈对齐和栈帧
13.1 栈对齐
13.2 有关栈帧的更多信息
13.3 小结

第14章 外部函数
14.1 编译并链接函数
14.2 扩展makeme
14.3 小结

第15章 调用约定
15.1 函数参数
15.2 栈布局
15.3 保留寄存器
15.4 小结

第16章 位运算
16.1 基础
16.2 算术
16.3 小结

第17章 位操作
17.1 修改位的其他方法
17.2 位标志变量
17.3 小结

第18章 宏
18.1 编写宏
18.2 使用objdump
18.3 小结

第19章 控制台I/O
19.1 使用I/O
19.2 处理溢出
19.3 小结

第20章 文件I/O
20.1 使用syscall
20.2 文件处理
20.3 条件汇编
20.4 文件操作指令
20.5 小结

第21章 命令行
21.1 访问命令行参数
21.2 调试命令行
21.3 小结

第22章 从C到汇编
22.1 编写C源文件
22.2 编写汇编代码
22.3 小结

第23章 内联汇编
23.1 基本内联汇编
23.2 扩展内联汇编
23.3 小结
……

第24章 字符串
第25章 cpuid
第26章 SIMD
第27章 小心mxcsr
第28章 SSE对齐
第29章 SSE打包整数
第30章 SSE字符串操作
第31章 搜索字符
第32章 比较字符串
第33章 重排
第34章 SSE字符串掩码
第35章 AVX
第36章 AVX矩阵运算
第37章 矩阵转置
第38章 性能调优
第39章 你好,Windows的世界
第40章 使用WindowsAPI
第41章 Windows中的函数
第42章 可变参数函数
第43章 Windows文件

后记

短评

物流很快,好评!!!

2022-04-06 02:16:18

好书推荐一下。

2022-04-01 20:19:18

上学的时候,学的汇编都是32位的, 开始64位开发很久了, 虽然不太影响调试,但是,有些时候确实需要64位底层分析, 一直想补一补,但是,原文书资料,看着确实费劲, 幸好,看见这本书,立即入手。 花了好些天研读,不错的一本, 深浅尚可,无论需要深入学习的,还是刚入门的都适合这本

2022-03-02 05:42:50

没有塑封膜,内容过于简洁。简洁到吃惊,每一章也就5, 6页,其中3页还是示例,就讲完了。剩下的给个Intel文档链接自己去看吧

2022-02-22 12:55:53

《x64汇编语言:从新手到A**专家》(《Beginning x64 Assembly Language: From Novice to A** Professional》)是美国??计算机专家Jo Van Hoey的著名汇编语言教科书,本书介绍了64位汇编语言的基础知识是我一直寻找的书

2022-01-31 16:10:55