我有一些天真的/初学者的问题:
发布于 2012-08-15 17:44:42
逆向工程有什么好处?
反向工程主要用于破解和黑客攻击(删除序列号保护或密码提示),但也可以理解其他软件可以执行的病毒或奇迹。有时这是一个有用的技能,以找到程序中的错误,你还没有得到的源代码,并修补它们。
作为一个程序员,我应该学习逆向工程的艺术吗?
是的,尝试学习汇编程序和使用一个体面的调试器。它将使你成为一个更好的开发人员,了解更低层次的东西,更接近金属。
在逆向工程方面经验丰富的程序员有什么好处?
你会成为一个好黑客/黑客。你可以为其他反病毒生产商工作。作为个人的例子:我曾经反向工程了一个软件,以跟踪在建立甲骨文连接时发生的错误。没人能解决这个问题,所以我名声大噪。
此外,我还想引用@johannes的评论,因为他是完全正确的:
我不会把它限制在“坏”裂痕上。从更多的sysadmin的角度来看,从更多的sysadmin的角度来看,从一个应用程序失败的地方看,反汇编对于判断编译器是否疯狂(通常是你的代码)很有用
发布于 2012-08-15 18:15:56
我喜欢猎鹰的回答,但我想补充一点,在一些无聊的业务应用程序中,逆向工程可以帮助您摆脱一些麻烦。
在工作中,当我们与一个没有任何新的维护的第三方系统进行数据集成时,我们会做很多事情,这样我们就可以知道它应该或不应该在哪里崩溃。
如果不包括源代码,我们还使用反向工程师来检查我们购买的第三方组件的代码质量(当然有一定的限制)。
我真正的观点是:反向工程并不与单一的技术或语言相关联,而是一个学习“黑匣子”的内部结构的过程。如果您有您所依赖的代码,但您不信任或不能信任,那么您肯定应该仔细观察一下,看看该代码正在做什么。
发布于 2012-08-15 18:45:35
逆向工程也有令人厌烦的一面。这是当你所在的公司有一些代码或程序仍在使用,但没有人声称知道它的任何东西。因此,您可以查看它,记录它,编写测试,以及在项目开始之前应该完成的所有工程方面的工作。您这样做是为了一段已经编写好的软件,因此是“反向工程”。
有了代码就容易多了,但在技术上仍然是逆向工程。当他们谈论遗留项目时,这是在商务会议上经常出现的术语之一。
https://softwareengineering.stackexchange.com/questions/160985
复制相似问题