关于iOS程序的反汇编

2013-10-08 21:12:01 +08:00
 tangqiaoboy
最近在研究iOS App的安全性问题,我发现反汇编工具对iOS程序的反汇编能力相当强大,基本上反汇编出来,就只差变量名没有还原了。希望大家注意App的安全问题。不过我现在对于防护手段还没有找到什么好办法,有对于iOS代码混淆有研究的同学吗?希望懂这方面的同学能提供一些帮助。
13532 次点击
所在节点    iDev
23 条回复
cluries
2013-10-08 21:19:05 +08:00
这个很正常.
毕竟OC是可以说是一门动态语言。
调用方法直接就能看到..传入参数稍微推一下就能看出来。
tangqiaoboy
2013-10-08 21:47:05 +08:00
@cluries 不止是这些,if语句,for/while循环逻辑这些也能还原出来。我之前写java的,感觉和java的反汇编代码真差不多。
cluries
2013-10-08 21:53:38 +08:00
@tangqiaoboy 是可以,而且所有语言都可以...
icyalala
2013-10-08 22:07:15 +08:00
所有敏感信息和敏感逻辑尽量放到服务端。

如果非要放到客户端来,要用纯C实现,加密混淆什么的也都在这里面搞。
objc层面也尽量小心,最起码不要用太显眼的方法名。

嗯。。如果真有人想搞你的App技术又非常非常厉害,那只能祈祷一下了。。苹果自己都防不住那些大牛。
fgwww
2013-10-08 22:20:31 +08:00
用的啥工具这么厉害?ida pro?
luikore
2013-10-08 22:32:56 +08:00
-O4 可以把少量 extern 的调用内联掉
不会被动态调用的方法名可以自己整个特征明显的命名规范, 然后写个简单脚本在编译前批量替换掉
FanError
2013-10-08 22:33:16 +08:00
请问楼主用啥iOS工具反编译效果能达到java反汇编代码那样?
alexrezit
2013-10-08 22:38:16 +08:00
是什么工具呢? 说出名字来我回去试试自己的 app.
marginleft
2013-10-08 22:41:01 +08:00
这么厉害?!楼主用的哪款神器??
lldong
2013-10-09 00:01:46 +08:00
Hopper 的反汇编效果不错,能生成伪代码,稍微好理解一些,不过离 Java 反汇编的效果还很远
lldong
2013-10-09 00:03:59 +08:00
txx
2013-10-09 00:04:20 +08:00
我刚才用 ida 免费版撸了一下 qq mail objc 部分 全部露出来了,因为oc是先被弄成字符串嘛。c/c++的 就只有汇编代码。
xdeng
2013-10-09 00:52:06 +08:00
ida 一下就出来了
cctvsmg
2013-10-09 07:46:53 +08:00
目前ios下的加密软件好像不多吧,可以移植一个虚拟机加密上去
fgwww
2013-10-09 10:53:01 +08:00
app store上的app是混淆过了的。我想知道怎么做到能像java反汇编那样的效果,给张图看看.
jokerlee
2013-10-10 00:49:05 +08:00
比较敏感的部分用c/c++写成动态链接库
tangqiaoboy
2013-10-10 20:40:44 +08:00
谢谢大家,我在微博和私人关系中总共收到了以下有效的信息,给大家分享一下:
1. 一个微信的朋友告诉我,他们是把重要的ObjC代码用c写来保证安全性。这样还有一个好处是iOS和android可以公用,因为java反汇编也是很容易的。
2. @刘江总编 提拱了2个相关的链接:《iOS编程实战》作者Rob Napier的文章Obfuscating Cocoa:http://t.cn/zRUgeF1 另外参考StackOverflow:http://t.cn/zRUgeFB
dorentus
2013-10-10 20:58:56 +08:00
话说楼主到底是用什么工具反编译的这么厉害……
dorentus
2013-10-10 20:59:47 +08:00
@jokerlee iOS 上面又不能动态链接
tangqiaoboy
2013-10-10 21:09:17 +08:00
@dorentus IDA啊。iOS上可以静态链接的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/84899

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX