友盟iOS开发负责人/iOS Team Leader张超确定演讲主题:揭开IPA文件的灰纱——通过静态分析工具了解IPA实现
话题简介:在AppStore中经常会出现各种令人耳目一新的App,他们是如何实现那些效果的?他们又是使用哪些公共组件来完成自己的功能的呢?在本次演讲中将对如何探索那些封藏在IPA文件后面的实现进行简单的分析,将会针对其中的一些工具进行具体的演示和介绍。
讲师简介:张超,资深iOS 专家,iOS创业者。2009年在深圳第一次创业,主要从事iPhone应用的开发,完成了从技术到产品设计以及团队运营管理等全流程角色的转换,积累了丰富的iOS创业经验,熟稔App store的规则及流程,了解开发者的需求,并掌握了创业项目的全程运作能力。目前在国内移动互联网统计分析平台——友盟,担任iOS Team Leader。是创新工场和友盟的早期团队成员。
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/
分享到:
相关推荐
逆向工程技术详解:《揭开IPA文件的灰沙 -- 通过静态分析工具了解IPA实现》 | iOS DevCamp 话题简介:在AppStore中经常会出现各种令人耳目一新的App,他们是如何实现那些效果的?他们又是使用哪些公共组件来完成...
揭开IPA文件的灰纱——通过静态分析工具了解IPA实现 话题简介:在AppStore中经常会出现各种令人耳目一新的App,他们是如何实现那些效果的?他们又是使用哪些公共组件来完成自己的功能的呢?在本次演讲中将对如何...
Siri语音识别系统详解》 | iOS DevCamp 话题简介:Siri是苹果公司发布的广受关注的iOS平台应用,它不仅仅是一套语音识别系统,更重要的是其用户意图分析与智能识别机制。本讲座将深入分析Siri的技术原理,讲解其...
应用重构:《从知乎 iPhone 端重构说开去:Web 为主的复杂社交产品的 iOS 端开发策略及实践》| 知乎 耿健桓 | iOS DevCamp 议题简介:当为知乎等以 Web 为主的复杂社交产品开发 iOS 端时,我们在开发上总会面临的一...
游戏引擎移植者现身讲解:《在iOS平台上用Cocos2D做开发》 | iOS独立开发者 秦春林 | iOS DevCamp 议题简介:Cocos2d是iOS平台上著名的游戏引擎,它开源,结构简单清晰,功能强大,是个人或者中小型团队开发的首选...
iOS DevCamp幻灯片分享:《Passbook实战详解》| 爱图腾 廉洁 话题简介:iOS6发布后最值得关注的一个特性即为Passbook。本演讲将结合爱图腾的实践,对iOS6中推出的Passbook应用及相关的开发细节进行讲解,详细说明...
应用重构:《从知乎 iPhone 端重构说开去:Web 为主的复杂社交产品的 iOS 端开发策略及实践》| 知乎 耿健桓 | iOS DevCamp 议题简介:当为知乎等以 Web 为主的复杂社交产品开发 iOS 端时,我们在开发上总会面临的...
安卓应用实用功能的技术实现:《Android消息推送实现》 | Android DevCamp | 7月28日 北京 主题简介:作为移动应用开发的一个重要需求,微软和苹果公司分别为iOS和Windows Phone平台应用开发者提供了很好的消息推送...
简单中的不简单,iPhone应用开发实践总结:社区类iPhone应用开发的技术实践 | 麻麻帮 陈剑飞 主题简介:很多iPhone应用产品的开发,并没有多少技术亮点,而更多的是对各种iOS开发技术的灵活掌握和应用,以及经验的...
移动产品迭代包袱重,大众点评讲述成功和失败经验:《如何创建更加灵活的App》| 大众点评 屠毅敏 | Android DevCamp 主题简介:Android和iOS原生应用的部署特性决定了其无法像Web开发那样灵活多变,同时造成了产品...
主题简介:本演讲将结合凡客的Android客户端应用实例,详细介绍凡客应用的实现架构,阐述分析电商应用中的多线程的合理使用、电商应用中因商品图片加载过多引发的内存溢出的优化处理等技术问题。演讲提纲涉及:(1)...
CSDN Share 是一款出色的Android阅读工具,阅读由 CSDN社区用户分享的技术文档。 通过CSDN Share可以在线阅读或离线下载CSDN 举办的各类技术活动的精彩讲义,以及来自CSDN下载社区由用户分享的技术文档。 马上下载...
话题简介:本演讲将结合讲师多年的代码实践经验,主要介绍Android源代码以及相关内容,让应用开发者了解到如何利用Android源代码来提高自己对Android系统的理解,以及通过一些高级技巧来定位和分析产品中的问题,...
再谈Android推送实现:《千万级并发在线推送系统架构解析》| 个信互动 叶新江 | Android DevCamp 主题简介: 移动短消息是大家所熟知的一种信息推送方式, 基于信令通道的推送在简单信息的体验方面已经被大家所...
安卓数据分享技术实现::《发现和建立多设备之间的数据通信》 | Android DevCamp 话题简介:随着移动应用越来越多的依赖于服务端,开发者对数据通信协议的需求慢慢增多。 而软件版本兼容性的不同、网络环境的不...
CSDN Share 是一款出色的Android阅读工具,阅读由 CSDN社区用户分享的技术文档。 通过CSDN Share可以在线阅读或离线下载CSDN 举办的各类技术活动的精彩讲义,以及来自CSDN下载社区由用户分享的技术文档。 马上下载...
安卓系统架构多年经验总结:《Android程序的编译,安装和运行》 | Android DevCamp 讲师简介:汪文俊,中国科技大学硕士,原IBM系统工程师,现为小米科技MIUI首席架构师,开源C编译器项目ucc的作者。 话题简介:...
安卓热点话题总结性剖析:《Android在多屏幕、多设备上的适配》 | Android DevCamp 话题简介:对于安卓多屏幕和多设备适配问题,早在2010年的Google IO大会,就有专门探讨过。这些年来,对于这个普遍存在的问题,...