程序报错 SIGKILL (Code Signature Invalid), 但是 codesign 说 adhoc 签字正常,这是为什么 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
12101111
V2EX    macOS

程序报错 SIGKILL (Code Signature Invalid), 但是 codesign 说 adhoc 签字正常,这是为什么

  •  
  •   12101111 2022-03-25 17:28:29 +08:00 2792 次点击
    这是一个创建于 1325 天前的主题,其中的信息可能已经有所发展或是发生改变。

    程序是 https://github.com/xiaoyifang/goldendict 用了 homebrew 预编译的 qt6 ,启动就被 kill

    对着 dlopen 打断点:

    * thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1 frame #0: 0x00000001872a929c libdyld.dylib`dlopen libdyld.dylib`dlopen: -> 0x1872a929c <+0>: mov x2, x1 0x1872a92a0 <+4>: mov x1, x0 0x1872a92a4 <+8>: adrp x8, 363711 0x1872a92a8 <+12>: ldr x0, [x8, #0x670] Target 0: (GoldenDict) stopped. (lldb) memory read -s1 -fY -c100 $x0 0x600003e02510: 2f 6f 70 74 2f 68 6f 6d 65 62 72 65 77 2f 43 65 /opt/homebrew/Ce 0x600003e02520: 6c 6c 61 72 2f 71 74 2f 36 2e 32 2e 33 5f 31 2f llar/qt/6.2.3_1/ 0x600003e02530: 73 68 61 72 65 2f 71 74 2f 70 6c 75 67 69 6e 73 share/qt/plugins 0x600003e02540: 2f 69 6d 61 67 65 66 6f 72 6d 61 74 73 2f 6c 69 /imageformats/li 0x600003e02550: 62 71 6d 6e 67 2e 64 79 6c 69 62 00 00 60 00 00 bqmng.dylib..`.. 0x600003e02560: 30 0b 23 00 00 60 00 00 04 00 00 00 00 00 00 00 0.#..`.......... 0x600003e02570: 00 00 00 10 .... (lldb) c Process 90687 resuming zsh: killed lldb ./GoldenDict.app/Contents/MacOS/GoldenDict > codesign --deep --verify --verbose /opt/homebrew/Cellar/qt/6.2.3_1/share/qt/plugins/imageformats/libqmng.dylib /opt/homebrew/Cellar/qt/6.2.3_1/share/qt/plugins/imageformats/libqmng.dylib: valid on disk /opt/homebrew/Cellar/qt/6.2.3_1/share/qt/plugins/imageformats/libqmng.dylib: satisfies its Designated Requirement > codesign -d -vvv /opt/homebrew/Cellar/qt/6.2.3_1/share/qt/plugins/imageformats/libqmng.dylib Executable=/opt/homebrew/Cellar/qt/6.2.3_1/share/qt/plugins/imageformats/libqmng.dylib Identifier=libqmng-55554944be625159fd4d3997b75cdc5985adb4cd Format=Mach-O thin (arm64) CodeDirectory v=20400 size=841 flags=0x2(adhoc) hashes=20+2 location=embedded Hash type=sha256 size=32 CandidateCDHash sha256=57b38992a7af811c43affc257ac3425b7030d36d CandidateCDHashFull sha256=57b38992a7af811c43affc257ac3425b7030d36dc5ccc8f43c6c4eae8bf9292b Hash choices=sha256 CMSDigest=57b38992a7af811c43affc257ac3425b7030d36dc5ccc8f43c6c4eae8bf9292b CMSDigestType=2 CDHash=57b38992a7af811c43affc257ac3425b7030d36d Signature=adhoc Info.plist=not bound TeamIdentifier=not set Sealed Resources=none Internal requirements count=0 size=12 

    brew reinstall qt 也没有用

    因为这个mng 图片格式 根本没人用,我就删了这个文件,然后程序就起来了,但是还是觉得很奇怪,好像 adhoc 签名不是用于分发的?为什么 homebrew 的二进制文件没有用苹果的开发者签名。

    16 条回复    2022-05-11 15:35:03 +08:00
    ngn999
        1
    ngn999  
       2022-03-25 17:34:32 +08:00 via iPhone
    我下午刚给这个项目提了个 pr ,支持了 apple silicon ,你按最新的 readme 来的吗?
    ngn999
        2
    ngn999  
       2022-03-25 17:38:16 +08:00 via iPhone
    我这边的情况是可以用命令行 build 跑起来。用 Qt Creator 能 build ,但 run 时,crash 在 dyld ,应该也是签名问题,但自己双击,运行也没毛病
    12101111
        3
    12101111  
    OP
       2022-03-25 17:56:07 +08:00
    我自己改的 goldendict.pro 文件,和你的 pr 一模一样. 从命令行跑或者是双击运行都是报错一样的错误,但是删了这个文件就好使了
    12101111
        4
    12101111  
    OP
       2022-03-25 18:03:04 +08:00
    看来是这个文件坏了

    > codesign --verify --verbose /opt/homebrew/opt/libmng/lib/libmng.2.dylib
    /opt/homebrew/opt/libmng/lib/libmng.2.dylib: invalid signature (code or signature have been modified)
    In architecture: arm64

    一直有传闻 apfs 会坏文件, 看来我是遇上了
    ngn999
        5
    ngn999  
       2022-03-25 18:17:24 +08:00 via iPhone
    我没印象有依赖这个库。
    可能我 qt 是从 qt 官网装的。
    lindt99cocoa
        6
    lindt99cocoa  
       2022-03-25 19:29:46 +08:00   1
    @12101111 APFS 只对元数据有校验和,对数据没有,很难算得上可靠,不如 btrfs 和 zfs
    ngn999
        7
    ngn999  
       2022-03-25 21:22:13 +08:00
    楼主你能直接用 Qt Creator 把这个 GoldenDict.app 跑起来吗?
    我这发现, build 成功, 但 Run 失败, 报 crash, 还不是签名的问题

    但是如果在 Run 的配置里, 设置 Run as root user 则又能成功.在 Finder 里找到 .app 双击能也成功运行.
    ngn999
        8
    ngn999  
       2022-03-25 21:22:47 +08:00
    自带的一个 QWebEngine 的 demo 直接 run 起来没问题.
    ngn999
        9
    ngn999  
       2022-03-25 22:19:23 +08:00
    啊,弄了半天发现问题了, 默认的 Run 的环境变量是和 Build 用的一样的, 但是会多设置 DYLD_LIBRARY_PATH 和 DYLD_FRAMEWORK_PATH, 把这两个给 unset 掉就好了.
    :(
    upwell
        10
    upwell  
       2022-03-26 21:58:58 +08:00
    @12101111
    想不起来是什么原因了,可以重启一下系统可能就会好,好像是说系统的安全策略,命令行的工具,如果是替换的,binary 变了,就会报这个问题。

    遇到过两次了,自己编译的程序,cp 过去替换,运行的时候就会被系统 kill 掉,但是把原来的删除掉,再 mv 过去就不会有问题。

    brew reinstall qt
    可能不会删除 binary ,可以先 uninstall 掉,然后看看 binary 有没有被删除掉,如果没有的话就删除掉,然后再安装。

    真不行,就重启系统!
    nonwill
        11
    nonwill  
       2022-03-28 23:42:48 +08:00
    应 @ngn999 “大佬”邀,也来凑个热闹:

    客观的讲,对 GoldenDict 的官方版本代码的评价,我“比较”认同某词典论坛“帮主”的认定:shi 山
    客观的讲,我对 GoldenDict 的官方版本设计的评价,水平很高

    对 GoldenDict 的官方版本中的一些问题,主要出在那堆“shi 山”上,这里不做具体分析,GoldenDict++ 所修复的问题(非改进内容),90 都在那堆“shi 山”上。

    个人对 xiaoyifang 版本当前实现(代码质量)的评价:“shi 山++” -- 更甚之处是将 GoldenDict 原有的良好的设计给破坏掉了,所以不可能变得更好。我对 xiaoyifang 的评价是:有问题都可能是 Qt 的问题,还可能是 WebEngine 的问题,还可能是 iconv 的问题...,可能吗?一切皆有可能,哈哈哈

    @ngn999 是大佬啦,您的能力应不亚于鄙人与 xiaoyifang 的,屈尊在这里讨论这样的问题令在下敬佩至极。
    ngn999
        12
    ngn999  
       2022-03-29 07:36:00 +08:00 via iPhone
    @nonwill 你就算技术再高,但是这做事,说话也太缺德了。
    我听到过很多中国开发者在开源里的缺德事,你打破了我的想像。

    xiaoyifang 好好地在做升级,提 pr ,你用不着在 pr 里各种咬人。不想好好帮忙的话,闭嘴就好了。
    ngn999
        13
    ngn999  
       2022-03-29 07:43:08 +08:00 via iPhone
    @nonwill 这样的本来直接 block 了就算了,但是看了他在其他网站的评论,实在有点过分。没忍住

    和狗咬,一嘴毛,算了,还是 block 了。
    nonwill
        14
    nonwill  
       2022-03-29 08:07:11 +08:00
    @ngn999 当然了,你超脱于“缺德”之列,高尚至此 -- 已几无无德可言,剃了毛的狗,过分也不过如此。所谓“嘴上无毛,办事不牢”,送你吧,哈哈哈
    nonwill
        15
    nonwill  
       2022-03-29 10:29:34 +08:00
    @ngn999 抱着学习的态度 View 了下大佬您 Macbook_scroll_issue 的实现: https://github.com/ngn999/goldendict/commits/bugfix/Macbook_scroll_issue

    可问大佬啊,您不用 Qt 的信号槽,而用回调,您这里回调较信号槽有什么优势呢?
    nonwill
        16
    nonwill  
       2022-05-11 15:35:03 +08:00
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     943 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 18:27 PVG 02:27 LAX 10:27 JFK 13:27
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86