逆向工程 vs. 反编译

4
我正在考虑学习汇编语言,以获得反向工程恶意软件的专业知识。我的问题是,在市场上有复杂的反编译器可用(从听说中的hex-rays反编译器非常好),是否值得学习汇编语言进行反向工程?
尽管反编译不能复制原始代码,但它仍然可以降低理解汇编语言代码的复杂性。那么,有没有强烈的理由尝试通过查看汇编代码进行反向工程?
谢谢。

为了逆向工程恶意软件,你应该非常擅长汇编语言。我认识一个人,他可以比我读C语言更快地读懂汇编语言。 - ninjalj
1
汇编代码是你最不用担心的。我可以教我的小妹妹汇编语言。最大的问题在于解密控制流和数据流。无论如何,如果你认真对待这个问题,就学习汇编吧。反过来问你,为什么要避免学习汇编呢? - harold
2个回答

9

如果想要反向工程恶意软件,你需要相当熟悉汇编语言。首先,编写恶意软件的人很擅长阻止反编译器的使用。其次,如果原始代码是用汇编语言编写的,那么将其反编译为高级源代码可能会遇到困难,特别是在进行了优化的情况下。


1
很可能根本无法反编译。 - ninjalj
3
如果反编译成功的话,结果可能会赢得下一届国际混淆C代码大赛。 - Stefan Paul Noack

5

对于这个问题,你必须学习汇编语言。尽管反编译器(如hex-rays)很擅长理解大多数自修改和编码恶意软件,但其中的解码器最初是用汇编语言编写的。因此,将其反编译为更高级别语言非常困难。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接