V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
iOS 开发实用技术导航
NSHipster 中文版
http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
http://www.cocos2d-iphone.org/
CocoaPods
http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
http://code.google.com/mobile/analytics/
WWDC
https://developer.apple.com/wwdc/
Design Guides and Resources
https://developer.apple.com/design/
Transcripts of WWDC sessions
http://asciiwwdc.com
Cocoa with Love
http://cocoawithlove.com/
Cocoa Dev Central
http://cocoadevcentral.com/
NSHipster
http://nshipster.com/
Style Guides
Google Objective-C Style Guide
NYTimes Objective-C Style Guide
Useful Tools and Services
Charles Web Debugging Proxy
Smore
tangqiaoboy
V2EX  ›  iDev

关于iOS程序的反汇编

  •  
  •   tangqiaoboy · Oct 8, 2013 · 14207 views
    This topic created in 4583 days ago, the information mentioned may be changed or developed.
    最近在研究iOS App的安全性问题,我发现反汇编工具对iOS程序的反汇编能力相当强大,基本上反汇编出来,就只差变量名没有还原了。希望大家注意App的安全问题。不过我现在对于防护手段还没有找到什么好办法,有对于iOS代码混淆有研究的同学吗?希望懂这方面的同学能提供一些帮助。
    Supplement 1  ·  Oct 10, 2013
    谢谢大家,我在微博和私人关系中总共收到了以下有效的信息,给大家分享一下:
    1. 一个微信的朋友告诉我,他们是把重要的ObjC代码用c写来保证安全性。这样还有一个好处是iOS和android可以公用,因为java反汇编也是很容易的。
    2. @刘江总编 提拱了2个相关的链接:《iOS编程实战》作者Rob Napier的文章Obfuscating Cocoa:http://t.cn/zRUgeF1 另外参考StackOverflow:http://t.cn/zRUgeFB
    23 replies    2019-07-03 18:46:01 +08:00
    cluries
        1
    cluries  
       Oct 8, 2013
    这个很正常.
    毕竟OC是可以说是一门动态语言。
    调用方法直接就能看到..传入参数稍微推一下就能看出来。
    tangqiaoboy
        2
    tangqiaoboy  
    OP
       Oct 8, 2013
    @cluries 不止是这些,if语句,for/while循环逻辑这些也能还原出来。我之前写java的,感觉和java的反汇编代码真差不多。
    cluries
        3
    cluries  
       Oct 8, 2013
    @tangqiaoboy 是可以,而且所有语言都可以...
    icyalala
        4
    icyalala  
       Oct 8, 2013
    所有敏感信息和敏感逻辑尽量放到服务端。

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

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

    如果你下了个仿冒的货色 那神马都有可能发生了。
    nsa
        22
    nsa  
       Oct 11, 2013
    IDA Pro 土豪啊, iOS 开发代码混淆不比android, 意义不大或者不值。
    iHTCboy
        23
    iHTCboy  
       Jul 3, 2019
    尽量在 6 年后看到巧哥! 666
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5149 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 64ms · UTC 09:43 · PVG 17:43 · LAX 02:43 · JFK 05:43
    ♥ Do have faith in what you're doing.