V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ieuYao
V2EX  ›  程序员

非官方渠道下载的 Xcode 编译出来的 app 被注入了第三方的代码

  •  
  •   ieuYao · 2015-09-17 10:12:33 +08:00 · 6912 次点击
    这是一个创建于 3360 天前的主题,其中的信息可能已经有所发展或是发生改变。
    http://snpy.in/KqFKuh

    http://weibo.com/tangqiaoboy
    "一个朋友告诉我他们通过在非官方渠道下载的 Xcode 编译出来的 app 被注入了第三方的代码,会向一个网站上传数据,目前已知两个知名的 App 被注入,检测方式见附图。"
    第 1 条附言  ·  2015-09-17 11:28:50 +08:00
    第 2 条附言  ·  2015-09-17 11:34:54 +08:00
    “ @ibremn 消息来源是以为唱吧的 iOS 技术: http://weibo.com/2js3
    44 条回复    2015-09-18 13:40:54 +08:00
    likuku
        1
    likuku  
       2015-09-17 10:14:27 +08:00
    何必呢...no zuo no die
    likuku
        2
    likuku  
       2015-09-17 10:17:10 +08:00
    下面贴的微博的链接又是什么鬼?
    ieuYao
        3
    ieuYao  
    OP
       2015-09-17 10:18:29 +08:00
    @likuku 来源,在微博上看到的,不知道怎么贴单条微博的链接。
    jejer
        4
    jejer  
       2015-09-17 10:31:40 +08:00
    无奇不有
    ck65
        5
    ck65  
       2015-09-17 10:40:20 +08:00
    靠吃毒鼠强证明人体之脆弱?
    wdlth
        6
    wdlth  
       2015-09-17 10:45:43 +08:00
    就像 GHOST 版的系统,里面大有文章。
    JackBlack2006
        7
    JackBlack2006  
       2015-09-17 10:46:12 +08:00
    这倒是带来一个较大的问题:运营商劫持下载。

    运营商的那个机制又不会检查文件 MD5 SHA-1 。如果运营商自己的缓存里面是一个被恶意修改过的文件,劫持 MAS 下载以后……
    ca1123
        8
    ca1123  
       2015-09-17 11:00:26 +08:00
    很合理啊~
    xi_lin
        9
    xi_lin  
       2015-09-17 11:02:33 +08:00
    不知道是啥知名 app 中招。。
    dorentus
        10
    dorentus  
       2015-09-17 11:05:30 +08:00
    @JackBlack2006 MAS 是 https ,不过这并不重要,重要的是 iOS app 的安装和开始运行的时候都会去检查应用包的签名,确认包完整且没有被修改过才会安装和运行。

    即使是越狱了,这个机制仍然在。不过,如果用户越狱是为了装盗版应用,那么多半他会再装一个补丁把上面的签名检查机制禁用掉。那就只能听天由命了。
    likuku
        11
    likuku  
       2015-09-17 11:24:26 +08:00
    @ieuYao 微博 /twitter 你点击信息页的时间戳,那个就是单条的链接。
    likuku
        12
    likuku  
       2015-09-17 11:26:01 +08:00
    @dorentus so,盆油经验就是不仅要全程 https ,自己发布的 app 里也得把客户端 ssl 证书加进去,以免被中间人攻击所替换掉。
    cnhongwei
        13
    cnhongwei  
       2015-09-17 11:26:54 +08:00
    这么牛,下次直接修改掉编译器,没有办法躲了吧。
    ibremn
        14
    ibremn  
       2015-09-17 11:29:25 +08:00   ❤️ 1
    消息来源是以为唱吧的 iOS 技术: http://weibo.com/2js3
    其中提到"非官方下载渠道"是百度盘之类的地方。
    ieuYao
        15
    ieuYao  
    OP
       2015-09-17 11:29:29 +08:00
    @likuku 原来这样, thx !
    laoyur
        16
    laoyur  
       2015-09-17 11:40:29 +08:00
    “检测方式是恶意 Xcode 包含有如下文件 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/Library/Frameworks/CoreServices.framework/CoreService 正常的 Xcode 的 SDK 目录下没有 Library 目录”

    ——我擦,我的 XCode 中招了,我就是从百度盘中下载的
    以后得当心了
    mornlight
        17
    mornlight  
       2015-09-17 11:48:02 +08:00
    @laoyur 哪个版本?
    laoyur
        18
    laoyur  
       2015-09-17 12:20:18 +08:00
    @mornlight Version 6.4 (6E35b )
    百度盘下的, 好像是这个 http://pan.baidu.com/s/1eQgu6eY
    JackBlack2006
        19
    JackBlack2006  
       2015-09-17 12:22:57 +08:00
    那么问题来了,这是百度修改的还是别人改了传上去的?
    mornlight
        20
    mornlight  
       2015-09-17 12:25:51 +08:00
    @JackBlack2006 百度不会干这种无聊的事,应该是别有用心的人改了传上去的。
    Zzzzzzzzz
        21
    Zzzzzzzzz  
       2015-09-17 12:28:26 +08:00
    回头看了下水果机, MAS 里更新 xcode 保持在"安装 - 不到一分钟"已经快二十分钟了.......
    rannie
        22
    rannie  
       2015-09-17 12:37:55 +08:00
    顶一下吧 还是从官方下安全= =
    wezzard
        23
    wezzard  
       2015-09-17 13:02:29 +08:00
    @mornlight 那可不一定,百度是個很大的組織,你能保證李彥宏沒有這個想法,不能保證下面的沒有。
    robertlyc
        24
    robertlyc  
       2015-09-17 13:05:03 +08:00
    说这个新闻的 就是没开发过 iOS 没用过 xcode
    fo2w
        25
    fo2w  
       2015-09-17 13:08:11 +08:00
    @robertlyc why?
    ljbha007
        26
    ljbha007  
       2015-09-17 13:15:16 +08:00
    从来不从非官方渠道下东西的 想说一句:“我就说吧!”
    wezzard
        27
    wezzard  
       2015-09-17 13:16:23 +08:00
    @fo2w 因爲他以爲是打包後再注入到二進制文件裏面,這樣會使打包後的校驗失敗,成爲無效應用。但是他也應該不懂編譯語言寫的程序是如何從源程序變成可執行二進制文件的。 sigh...
    wezzard
        28
    wezzard  
       2015-09-17 13:17:34 +08:00
    @ljbha007 我也都是從官方下載的,但是剛剛去 AppStore 的評論區黑了一發百度和迅雷。(逃……
    fo2w
        29
    fo2w  
       2015-09-17 13:18:40 +08:00
    @wezzard 唉...
    nozama
        30
    nozama  
       2015-09-17 14:06:06 +08:00
    $ codesign -v /Applications/iTunes.app

    ================================
    $ codesign -v /Applications/Xcode.app
    /Applications/Xcode.app: a sealed resource is missing or invalid
    learnshare
        31
    learnshare  
       2015-09-17 14:08:16 +08:00
    无论如何都要官方下载,当然,也无法避免 HTTP 地址被劫持成 TX 管家...
    mornlight
        32
    mornlight  
       2015-09-17 14:53:13 +08:00
    @laoyur 你可以和官方的版本对比一下 SHA-1 值看看,官方的我写在这里了 https://github.com/iBcker/adcdownload
    oska874
        33
    oska874  
       2015-09-17 15:22:59 +08:00
    mdf5 的重要性体现了
    janxin
        34
    janxin  
       2015-09-17 15:23:17 +08:00
    Xcode 官方下的那么快,没必要去网盘之类的单独下吧
    dndx
        35
    dndx  
       2015-09-17 15:24:36 +08:00
    @JackBlack2006 要是这么容易就能劫持还需要越狱干啥?没越狱 iOS 会检测应用的数字签名的。
    missdeer
        36
    missdeer  
       2015-09-17 15:31:56 +08:00
    其实我是不太信这个消息的
    laoyur
        37
    laoyur  
       2015-09-17 15:35:35 +08:00
    @mornlight
    iMac:Desktop xxx$ shasum Xcode_6.4.dmg
    a836d8fa0fce198e061b7b38b826178b44c053a8 Xcode_6.4.dmg

    跟官方的果然不同
    SHA-1:672e3dcb7727fc6db071e5a8528b70aa03900bb0
    mornlight
        38
    mornlight  
       2015-09-17 16:10:52 +08:00
    @laoyur repo 里放的 hash 值是我自己从官方下载好后再算的,应该不会有问题。晚上有空了我把你提到的那个百度盘分享都弄下来看看
    JackBlack2006
        39
    JackBlack2006  
       2015-09-17 17:05:55 +08:00
    @dndx 我说的是劫持 Xcode dmg 和 OS X dmg ,还有升级时候下载的 pkg 这些
    ibremn
        40
    ibremn  
       2015-09-17 20:36:50 +08:00
    @robertlyc
    @dndx
    @missdeer
    我也不太相信这个消息,但是这么做确实是可行的。
    在编译代码时,多链接两个文件就就可以了,随便搞个 Xcode 插件都能办到。
    goodbest
        41
    goodbest  
       2015-09-17 20:42:16 +08:00
    laoyur
        42
    laoyur  
       2015-09-18 13:26:59 +08:00
    @mornlight 你在百度盘上分享的全部被销毁了?百度干的还是你干的?
    mornlight
        43
    mornlight  
       2015-09-18 13:30:12 +08:00
    @laoyur 百度干的,没接到任何通知。我正在更新
    mornlight
        44
    mornlight  
       2015-09-18 13:40:54 +08:00
    @laoyur 百度盘把我的几个新版本的 dmg 都判定为违规文件了,无法分享。服了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   6031 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 02:38 · PVG 10:38 · LAX 18:38 · JFK 21:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.