Использование mprotect, чтобы сделать текстовый сегмент доступным для записи в macOS - PullRequest
0 голосов
/ 12 марта 2020

Это по сути то, что я пытаюсь сделать,

#include <sys/mman.h>

int zero() {
    return 0;
}

int main(int argc, const char *argv[]) {
    return mprotect((void *) &zero, 4096, PROT_READ | PROT_WRITE);
}

, поэтому я пытаюсь сделать код доступным для записи. Это не работает на текущей macOS (Catalina 10.15.2), она просто возвращает -1 и устанавливает errno на EACCES, что, насколько я знаю, из-за отсутствия прав / подписи кода. Я нашел право, которое мне нужно установить, но я понятия не имею, как go об этом или как его подписать ..

Если я запускаю codesign -d --entitlements :- <path_to_app>, он не работает с code object is not signed at all, хотя я пытался настроить подпись в XCode некоторое время (у меня есть сертификат и так далее). Так как я должен go об этом? На самом деле подписание этого не очевидно с XCode, так что я совершенно невежественен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...