虽然我们都知道反向代码的乐趣是什么,但我想知道除anti-X工业之外,还有哪些合法的行业反向工程师代码?尽管有时在许多技术职位上都需要这样做,但是我主要是在这方面承担更多工作。我怀疑很少有逆向工程是必不可少的技能的工作,或者很少有人会被接受的,但是不确定这一点。是的,这当然总是一种补充技能!

#1 楼

社区Wiki:随时进行编辑

作为主要技能


恶意软件分析
数字取证和事件响应
安全评估,笔测试

这个网站/软件/ cpu真的安全吗?哪一个是最安全的?



利用发展


<< >
抄袭检测(如果一家公司因声称自己盗用了源代码而起诉另一家公司)
模拟

使旧游戏适应新媒体

例如DotEmu,良好的旧游戏



使较旧的硬件适应较新的

模拟较旧的保护加密狗,不再支持软件




源代码恢复
由于备份可能失败



业务逻辑恢复/流程恢复(关于旧版系统)

因为要充分记录所有的怪癖,解决方法和聪明的解决方案很困难




作为辅助技能

/>
了解程序的含义

由于过于频繁,所以没有时间记录内部工具的工作方式




#2 楼

以下是一些您通常可能不会想到的:


汽车维修店。许多现代汽车调校基本上都是固件入侵。
编译器开发。当您制作一个可以产生他人依赖的代码的工具链时,最好使用外部工具进行完整性检查。
常规软件开发。尽管调试器通常就足够了,但有时您需要重新编写自己的程序以了解发生了什么。或在文档不完整,错误或完全丢失时查看正在使用的库。
检查竞争对手在做什么(包括软件和硬件)。


评论


关于第一点,我可以告诉您,打包经验的人与销售经验的人之间是有区别的。

– 0xC0000022L♦
13年4月15日在0:08

+1是关于RE作为软件开发过程一部分的评论。我无法告诉您IDA在开发过程中保存了我的屁股多少次,我遇到了一些链接器错误,这些错误使我发疯,并且我只打开了反汇编程序中有问题的对象,一切都变得清晰起来。同样,我发誓的事情是“编译器错误”,事实证明这是我的错。这种经验还可以帮助我更好地调试软件。

–滚轴
13年4月15日在4:47

好点!尤其是关于逆向工程竞争对手的产品。我记得十年前PECompact开发时必须扭转其他包装工,因为我无法弄清楚它们在包装中的紧密程度。我通过反向找到答案:BCJ2(x86 jmp /呼叫偏移优化)。当时,这真是一个启示!

–达斯塔
13年4月15日在6:55

+1用于固件破解和固件开发。事实上,我发现自己在开发小型机器人技术或其他硬件/软件项目时做的琐碎的RE。许多公司虽然没有明确将逆向工程列为开发人员职位的要求,但如果没有,这是一种技能,这会让您只是非常“技术作家”,而不是真正的软件开发人员。

– Gandolf
13年8月17日在4:13



#3 楼

似乎没有人提到兼容性。我知道这不是反向操作的最大用途,但是制作与专有文件格式或协议兼容的软件非常重要,相当普遍,并且在某些国家/地区受到法律的明确保护。

通常,开发人员可以将反转作为“补充技能”使用,但是在许多情况下,将这作为某人的工作是有意义的。例如,当使用无尘室技术时,或者文件格式或协议过于复杂时。

#4 楼

可能是一个利基市场,但我的RE技能通常有助于使(CR)应用程序在Citrix XenApp / XenDesktop等虚拟环境中工作。

我在博客上写了很多有关这些经历的信息。

自我宣传警告:这是最近的一些例子:


COM端口重定向的情况
无人值守安装期间无法创建外壳通知图标错误
音频丢失的情况


#5 楼

安全行业可能是逆向工程的最大用户。恶意软件分析,分析二进制文件以查找潜在的安全漏洞以及分析补丁以写入安全产品签名。

#6 楼

它在微处理器行业盛行。以下是一些您可能会发现有趣的资源:


http://www.techspot.com/article/599-amd-rise-and-fall/
http: //www.extremetech.com/extreme/56018-analyst-intel-reverseengineered-amd64
http://www.darkreading.com/security/news/222600843
http://uvicrec.blogspot。 ca / 2011/09 / understanding-intel-4004.html