推荐指南/书籍阅读装配

时间:2011-08-14 21:47:18

标签: c++ assembly reverse-engineering

最近,我对阅读汇编感兴趣,汇集由像ollydbg这样的反汇编程序显示。我想阅读这个程序集的原因是为了了解其他开发人员如何构建他们的应用程序或程序所具有的二进制文件的文件格式等。

因为我一直在使用C ++和C#一段时间,所以我不是一个完整的编程新手。我对C ++有了深刻的理解,所以整个指针概念对我来说很清楚。

我知道互联网上有大量的装配指南,但我不知道这个教程有多可靠:http://jakash3.wordpress.com/2010/04/24/x86-assembly-a-crash-course-tutorial-i/对我来说非常有用,这是一种只有一个教程的教程简短的解释说明。这个对我来说非常清楚,但它并不涵盖所有汇编代码。

我希望有人可以提供一个好的指南/教程。

5 个答案:

答案 0 :(得分:4)

我认为汇编的标准指南是The Art of Assembly。它是在线和免费的。

答案 1 :(得分:3)

如果您对x86程序集和所有指令的操作码感兴趣,请尝试Intel manuals(免费下载)。如果您想知道如何在汇编程序中编程,请使用recommendation by Seth Carnegie。另一个下载是32 bit edition

答案 2 :(得分:1)

我从Matt Pietrek的Just Enough Assembly Language to Get Byits sequel那里学到了很多关于汇编语言的知识。这尤其适用于希望读取编译器在其调试器中发出的内容的C或C ++程序员。

Pietrek的材料毫无疑问,他写得很清楚,也很有趣。不过,它是针对Windows平台量身定制的。

答案 3 :(得分:0)

这是一种不同的方法。我最近通过实例发布了学习装配的初稿。有意的是,它不是x86程序集。首先学习更好,更容易理解的指令集将引导您完成基本概念,从其他指令集开始,包含的x86通常是下载所需处理器的指令集参考的问题。 https://github.com/dwelch67/lsasim

通常谷歌搜索xyz指令集会得到一些命中(而不是xyz选择你感兴趣的那个,arm,avr,6502等)。理想情况下,您需要通常免费的供应商文档。不同的公司在x86上有太多的变化,它增加了混乱。虽然有很多很好的在线参考。对于其他家庭,msp430,avr,arm,mips,pic等,你可以经常去(核心处理器)供应商网站寻找一个很好的参考。如果你对lsa的东西不感兴趣,msp430,arm和thumb也是很好的第一次指令集。 mips或dlx也是如此,不幸的是我还没有学到这些。先了解其他内容之后的avr和x86。 Pic有几种风格,非mips传统pic指令集在其简单性和方法上肯定具有教育意义,可能是x86的踏脚石(我不一定推荐pic作为第一指令集)。我建议先学习一些非x86指令集。我建议首先学习8088/86指令,我可以给你一个原始英特尔手册的ISBN号,可以在二手书店(在线)找几块钱。很多网站都定义了x86指令集,我强烈推荐在尝试硬件之前先使用可见的模拟器,这会让生活变得更轻松......例如,qemu不是很明显也不容易看到。 gdb的模拟器可能就像你至少可以逐步淘汰一样。

答案 4 :(得分:0)

我真的很喜欢“从头开始编程”这本免费的书,旨在以一种非常容易理解的方式教你ASM编程的基础知识。你可以在这里查看:

Programming from the Ground up