iOS逆向工程初试(一)
最近认识了一个朋友做逆向开发,稍微了解了一下,发现对于逆向开发很感兴趣,晚上下班回来也看了一些资料(其实是因为孤独),忍不住想练手尝试一下,目前正在模仿前辈们:1、提取微信头文件(已完成,共2267个);2、修改微信步数(正在攻坚),于此简单记录一下我的理解。
从理论上来说,iOS APP是运行于沙盒中的程序,但是利用一些工具还是可以管中窥豹。逆向工程就像一杆长矛,专门刺破目标程序本以为很安全的保护盾,开发者总是竭尽全力保护程序的安全,而逆向开发者却善于从更刁钻的角度去刺破程序的保护壳(也就是逆向工程中的砸壳的过程)。逆向工程是通过分析一个程序的功能和行为,来推导出它的技术实现或者某些设计细节,期间需要大量的验证,当然,逆向工程也并不是所有的东西都可逆,首先要明白程序的核心是什么,例如:微信、QQ、陌陌等IM应用,他们的核心是用户在交流过程中的信息,各种银行APP、支付宝等支付类应用,他们的核心是支付功能和客户信息,这些都是重点保护的,不说一定是不可逆的(世事无绝对),但是作为初学者,不建议一开始就搞这么高难度的。
逆向工程的作用:攻破目标程序,拿到所需信息,可以归纳为与安全相关的逆向工程,为方便(因为懒)以下就叫逆向“安全”;借鉴他人程序功能来开发自己的程序,可以归纳为与开发相关的工程,原因同上,以下就干脆叫盗版。逆向安全的使用:1、评定安全等级,尤其是很多金融类APP,都要经过安全公司和安全专家评估之后才上线2、逆向恶意软件,安全如iOS也曾在2009年“中毒”(未经历过,因为那时qiong)3、检查软件后门,开源软件一般都巨厚很好的安全性(因为无数和我一样的程序员浏览并修改开源软件的代码,问题往往还没大白于天下就能得到解决),而对于闭源软件,逆向开发就是检查其后门的方法之一4、去除软件限制,也就是俗称的破解版xxx;“盗版”的使用:1、逆向工程调用,如果你玩游戏的话你应该很好理解,权限狗!没错,就是权限狗,你能做别的应用不能做的事,类似texun游戏里的人民币玩家2、借(chao)鉴(xi)别的软件,这个应该不难理解,如果你看懂拼音的话。
下次更新我会介绍一些我开发的过程和一些工具的使用,因为晚上要跑步,每天只有一个小时写这些,所以可能要周末才能更新,望见谅!