`
mmdev
  • 浏览: 12908271 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

逆向工程技术详解:《解开IPA文件的灰沙 -- 通过静态分析工具了解IPA实现》 | iOS DevCamp | 7月27日 北京

 
阅读更多

友盟iOS开发负责人/iOS Team Leader张超确定演讲主题:揭开IPA文件的灰纱——通过静态分析工具了解IPA实现


话题简介:在AppStore中经常会出现各种令人耳目一新的App,他们是如何实现那些效果的?他们又是使用哪些公共组件来完成自己的功能的呢?在本次演讲中将对如何探索那些封藏在IPA文件后面的实现进行简单的分析,将会针对其中的一些工具进行具体的演示和介绍。


讲师简介:张超,资深iOS 专家,iOS创业者。2009年在深圳第一次创业,主要从事iPhone应用的开发,完成了从技术到产品设计以及团队运营管理等全流程角色的转换,积累了丰富的iOS创业经验,熟稔App store的规则及流程,了解开发者的需求,并掌握了创业项目的全程运作能力。目前在国内移动互联网统计分析平台——友盟,担任iOS Team Leader。是创新工场和友盟的早期团队成员。

zhangchao_umeng


Q:这个技术分享的主题关键字是什么?

#IPA#

#逆向工程#

#灰沙# 这里我讲的,并没有到源码级别,所以用“灰沙”,而不是“黑盒”


Q:为什么选择这个主题?

我每天几乎都在做逆向工程。举例说,有些人去集成了我们的SDK,他说有问题,他这个问题可能说新旧版之间API的变化,或者他使用上有些问题。那我们这个怎么去判定呢?肯定是需要通过逆向的方法来检查,因为我们拿不到他更多的信息。我不能说:你把原码发来,我给你看一下。当然以前曾经很早期的合作伙伴是有过这样的情况。我帮他改原码,这样的情况也是有的。但现在都是很多大公司开发的应用,不可能把那些应用的源代码发过来。那我们只能通过这种方式来排查问题。看他是在哪集成、在哪调用,我可以看他的工程师是否符合我们的文档描述,大部分的错误其实都是由于产品的新旧版更替,或一些API的变化导致的问题。所以在讲这个主题的时候,我会去从几个角度去分析这个事情,不会讲一个特别具体的Case,我是会讲一般的过程。

选择这个主题,就想让大家有一个方法,告诉大家怎么去探寻那些他们不知道的东西是怎么实现。有些其实不是秘密的秘密,只是很多人不知道而已。其实大部分iOS应用的技术含量并不高,很多开发者的整体思想都差不多。而说到一个App的成功,并不是说技术非得有多牛,而是说整体的运营,整体的设计,整体的产品,开发者如何去掌控这些。

简言之,通过“灰色通道”,学习别人的代码。


Q:如何评价逆向工程?

张超:逆向本身是看你什么目的。比如说经常说的一句话,双刃剑,那你拿这个剑去杀人还是去救人,都是一念之间的事,所以这个东西看你怎么去用。

业界做逆向最有名软件,就是IDA Pro,这软件相信大家之前其实已经有所耳闻了。比如著名的360事件,传说就是有些人把360的App逆向了。那些在网上流传的截图就是用IDA做的。所以其实这个东西很多人都知道,只是说看他怎么去用。

IPA加密、破解、以及破解检测。友盟也有工具检测软件是否被破解。

我这次演讲不会介绍IDA Pro这款软件。而是会介绍另外一个新的软件。这个小工具是近一两年之内才发展起来的新软件,它不像汇编级的那么不可读,因此也没有逆向的那么彻底。汇编的内容肯定有,但汇编对一般人来说,不是那么可读。这个工具做的一件比较好的事情,就是它可以把那些汇编的符号表给连起来,这样就可以去反编译出来C级的原码。虽然这源码不能直接用,但是你可以去了解,去窥探。它类似编译码,可读性也更强一点。对比IDA Pro来说,可以让大家比较简单的去了解这个过程。

这个讲座并不会深入到汇编级别,不会是汇编基础知识的培训课程。


Q:通过静态分析工具了解IPA实现,对开发者有何意义?

张超:很多iOS程序员做到一定程度会有瓶颈,这个瓶颈不是技术造成的,而是思维造成的。我认为,这个归因于,很多是培训机构惯性教出来一些程序员,他们的思维结构也是固化的,很多人不知道如何进步。很多人的App做完了,很少做重构,像twitter那样。友盟做SDK,很多东西都需要跑到别人的程序里去钻研,它的稳定性、安全性方面都要考虑,反复打磨。在接口设计上,很多人也不会去考虑。

另外一方面,在接口设计上,一般人也不去考虑,他因为不需要给别人用。我们内部会做很多逆向的一个原因,就是去学习别人的接口是怎么设计的。这个东西是不会有特别多的资料的,除了逆向这条路以外,也没有更多的东西去走。所以我们看一些SDK,看一下是怎么样的过程,它怎么设计的,这对我们的内部设计也是非常有好处。


更多内容... 完整的访谈实录:http://blog.csdn.net/shiningxyy/article/details/7757239




iOS DevCamp 7月27日 | Android DevCamp 7月28日 | 北京 | 新云南皇冠假日酒店

这是一个真正属于移动开发者的会议,参会者以交流、学习、提高、答疑解惑的移动开发实践者为主,你将极少看到投资人、市场人员、名人大腕、还有不知是何目的来参会的“打酱油”的人。参会者只有像你一样的有经验的开发者和工程师。


【特色】:

- 一个真正意义上的iOS/Android开发技术大会。

- 企业间、团队间交流和学习移动开发技术实践的平台。

- Dev to Dev,来自开发者,服务开发者。所有课程内容均不含任何商业推广目的。

- 课程内容覆盖iOS/Android知识体系的重要方面,并重点分享典型移动产品的开发实践。

- 国内资深移动开发专家评审团队对所有课程进行把关,确保课程内容全部为“无水分” “干货” 。

- 全部课程均有资深开发者讲授,他们或许不是名人大腕,但一定是“技术大牛”

- 与会者全部都是移动开发者和工程师及其开发团队成员


更多讲师和议题,持续更新中!请关注:

官网:http://devcamp.csdn.net/

博客:http://blog.csdn.net/shiningxyy

微博:http://weibo.com/cmdnclub

论坛:http://cmdn.net/




分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics