很抱歉,如果这是一种意见类型的问题,但我非常尊重论坛上有关此主题的人们的意见。
#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