安全相关的IT行业一般会大量运用逆向工程技术。比如:通过逆向一个金融类App,来评定安全等级;通过逆向iOS病毒,来找到查杀的方法;通过逆向iOS系统电话、短信功能,来构建一个手机防火墙,等等。
1. 评定安全等级
iOS中那些具有交易功能的App一般会先加密数据,然后将加密过的数据存储在本地或通过网络传输。如果安全意识不够强,就完全有可能将敏感信息(如银行账号和密码)直接用明文保存或传输,安全隐患极大。
假如一家有名望的公司考虑推出一款App,为了让App的质量能够对得起公司的声誉和用户的信任,该公司聘请一家安全机构来评估这个App的安全性。绝大多数情况下,安全机构无法拿到App的源代码,不能通过代码审核的方式正向分析App的安全性,因此,他们只有利用iOS逆向工程技术,尝试“攻击”这个App,然后依据结果评定其安全等级。
2. 逆向恶意软件
iOS是智能移动终端操作系统,它同计算机操作系统没有本质区别。从第一代开始,它就已具备了上网功能,而互联网正是恶意软件传播的最好媒介。2009年暴露的Ikee病毒是iOS上公开的第一款蠕虫病毒,它会感染那些已经越狱并且安装了ssh服务,但是没有更改ssh默认密码“alpine”的iOS,将它们的锁屏背景图改成一个英国歌手的照片。2014年年底出现的WireLurker病毒会窃取用户隐私信息,并且可以通过PC和Mac传播,给iOS用户带来了比较严重的危害。
对于恶意软件的开发者来说,他们通过逆向工程定位系统和软件漏洞,利用漏洞渗透进目标主机,获取数据,为所欲为。
对于杀毒软件的开发者来说,他们通过逆向工程剖析病毒样本,观察病毒行为,尝试查杀被感染主机上的病毒,并总结出可以防范病毒的方法。
3. 检查软件后门
开源软件的一大优势是其具有较好的安全性。成千上万的程序员浏览并修改开源软件的代码,代码中几乎不可能存在任何后门,软件的安全问题往往在大白于天下之前就能及时得到解决。而对于闭源软件,逆向工程是检查其是否留有后门的主要方法之一。比如我们常会在越狱iOS中通过AppStore以外的渠道安装各种软件,这些软件未经苹果官方审核,存在一定安全隐患;还有的App会故意留有后门,伺机损害用户的利益。对这一类行为进行检测的过程中通常少不了逆向工程的身影。
4. 去除软件使用限制
iOS开发者通过AppStore或Cydia等渠道出售自己的App,作为他们最主要的经济来源之一。在软件的世界里,收费与盗版永远是共存的,不少开发者也在自己的App里加入了防止盗版的功能。但这场矛与盾的战争永远不会停止,再好的防御也会有被攻破的一天,盗版软件的层出不穷把防止盗版变成了一项不可能完成的任务。比如Cydia 上最知名的“共享”源xsellize能够在几乎所有收费软件发布后的1天时间内对其完成破解,是业界的一大毒瘤。