相关疑难解决方法(0)

gdb 8.2无法识别macOS Mojave 10.14上的可执行文件

我得到了gdb brew install gdb.

源文件内容是:

#include <cstdio>
int main(){
    int a = 10;
    for(int i = 0; i< 10; i++){
        a += i;
    }
    printf("%d\n",a);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这是名为'demo'的可执行文件:https: //pan.baidu.com/s/1wg-ffGCYzPGDI77pRxhyaw

我像这样编译源文件:

c++ -g -o demo demo.cpp
Run Code Online (Sandbox Code Playgroud)

并运行gdb

gdb ./demo
Run Code Online (Sandbox Code Playgroud)

但是,它无法奏效.它无法识别可执行文件.

GNU gdb (GDB) 8.2
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to …
Run Code Online (Sandbox Code Playgroud)

macos gdb

34
推荐指数
1
解决办法
1万
查看次数

错误?在codesign中 - 删除签名功能

我想从已使用codesign签名的Mac应用中删除数字签名.有一个未记录的选项来编码, - 删除签名,它的名字似乎就是我所需要的.但是,我无法让它发挥作用.我意识到它没有记录,但我真的可以使用这个功能.也许我做错了什么?

 codesign -s MyIdentity foo.app
Run Code Online (Sandbox Code Playgroud)

正常工作,签署应用程序

 codesign --remove-signature foo.app
Run Code Online (Sandbox Code Playgroud)

然后说磁盘活动几秒钟

 foo.app: invalid format for signature
Run Code Online (Sandbox Code Playgroud)

和foo.app已经增长到1.9 GB!(具体来说,它是foo.app/Contents/Resources/MacOS中的可执行文件,从1.1 MB增加到1.9 GB.)

当我尝试签名/取消签名二进制支持工具而不是.app时,会发生同样的事情.

有任何想法吗?


背景:这是我自己的应用程序; 我不打算打败版权保护或类似的东西.

我想分发一个已签名的应用程序,以便每次更新应用程序都不需要用户批准来读取/写入应用程序在钥匙串中的条目.但是,有些人需要通过将自己的文件夹添加到/ Resources来修改应用程序.如果他们这样做,签名将变为无效,并且应用程序无法使用自己的Keychain条目.

该应用程序可以轻松检测是否发生了这种情况.如果应用程序可以删除它的签名,一切都会好的.那些进行此修改的人需要给修改后的,现在未签名的应用程序许可才能使用Keychain,但这对我来说没问题.

macos digital-signature

6
推荐指数
3
解决办法
1万
查看次数

标签 统计

macos ×2

digital-signature ×1

gdb ×1