最近,我对逆向工程很感兴趣,并且刚读完Paul Carter的PC汇编语言书(http://pacman128.github.io/static/pcasm-book.pdf),这是x86的不错的入门。我的第一个问题是:什么是更好地掌握x86汇编的中级水平书?其次:在深入研究x86之前,是否应该更好地掌握C编程语言?目前,我也只具备C的基本知识。

很抱歉,如果这是一种意见类型的问题,但我非常尊重论坛上有关此主题的人们的意见。

#1 楼

如果您熟悉C并将其用作主要的编程语言,那么了解C的工作原理将为您提供帮助,否则,最好将x86 asm作为您的第一门编程语言。

如果您想更好地理解C和x86程序集之间的关系,建议阅读未发现的Hacker Dissembling的第七章(在线有免费的chm版本)。

作为逆向工程师,您需要了解并精通机器代码。了解C可能会有所帮助,因为它的级别相对较低,并且会迫使您了解机器级别的概念,例如堆栈,指针等。对汇编的掌握要重要得多。

最好的方法可能是前往crackmes.de和其他类似网站,并开始解决挑战。有些挑战是新手,有些很难解决。专注于您感兴趣的RE类型(恶意软件,密钥生成/破解,加密,培训师/模组,复杂程序),一旦您获得足够的经验,就可以从事一些切实的工作,甚至只是挑战。

编辑:crackmes.de被删除了一段时间,另一个不错的资源是tuts4you.com的下载部分。

评论


谢谢!我上过的第一门编程课是5年前介绍的C ++。我仍然记得一点,但是不久之后就开始使用python,并且从那以后一直在使用它。看起来到处都是C领域,我看上去到处都是人们对C的热爱和狂热。不确定是否缺乏C知识是否会使我对这个主题的理解大为空白。

–硝基
16-10-29在3:50

见新的第三段

– NirIzr
16-10-29在5:46

再次感谢,卡巴斯基是一位出色的作家。到目前为止,对这本书非常满意。第一版似乎比第二版好得多。

–硝基
16-11-1在3:41



是的,克里斯·卡巴斯基(Kris Kaspersky)是一位好作家。不幸的是,他最近在一次事故中死亡,愿他安息。

– NirIzr
17年5月4日15:11

crackmes.de已被重新命名为cramess.one。有关更多信息,请参见“破解我的材料”。

– julian♦
18-10-4在4:27