Несовместимость с macOS 10.14 "hardened runtime"?

Issues related to VMProtect
Post Reply
chainik
Posts: 8
Joined: Wed Nov 08, 2017 11:02 am

Несовместимость с macOS 10.14 "hardened runtime"?

Post by chainik »

Apple придумала новую хрень, называется App Notarization. На сегодня оно добровольно, но к след. верии (10.15?) станет обязательным для запуска не-AppStore программ.
Для того, чтобы эту хрень применить, необходимо специальным образом подписать бинарники.
codesign -s <identity> --options runtime <path>

Если этот "options runtime" применить к бинарнику, обработанному VMP, то он не запускается (*), при этом единственное что пишет в консоли - "Killed: 9".
Бинарники:
- без VMP, но с "runtime"
- с VMP и с подписью без "runtime"
запускаются.

(*) "не запускается" ТОЛЬКО в 10.14. В предыдущих версиях (которые вообще игнорируют этот hardended runtime) - запускается.

Возможно, это всё как-то связано вон с тем.
Attachments
test.tar.gz
(6.76 MiB) Downloaded 502 times
chainik
Posts: 8
Joined: Wed Nov 08, 2017 11:02 am

Re: Несовместимость с macOS 10.14 "hardened runtime"?

Post by chainik »

Сам спросил - сам отвечаю.

Работает, если "disable code signing protections while launching the app".
т.е. сделать так:
# сodesign -s <identity> --options runtime --entitlements e.plist <path>
где e.plist:

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>com.apple.security.cs.disable-executable-page-protection</key>
	<true/>
</dict>
</plist>
Admin
Site Admin
Posts: 2566
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Re: Несовместимость с macOS 10.14 "hardened runtime"?

Post by Admin »

Apple в последнее время стало закручивать гайки по всем фронтам. Куча какашек в последнем dyld: http://www.vmpsoft.com/forum/viewtopic.php?f=2&t=6849

P.S. Возможно проблема связана с сегментами VM_PROT_EXECUTE + VM_PROT_WRITE, которые делает VMProtect.
Vlad
Posts: 19
Joined: Wed Jul 26, 2017 4:01 pm

Re: Несовместимость с macOS 10.14 "hardened runtime"?

Post by Vlad »

Please help!

Пробуем воркараунд с заданием --entitlements на mac catalina 10.15 beta, но любое консольное приложение или бандл всё равно крешатся. Странно, но похоже, что entitlement com.apple.security.cs.disable-executable-page-protection на проверку не влияет.
Даже если подписать тестовое приложение testapp-vmp-rt от chainik, то всё равно получаю креш на 10.15, и что станно, на 10.14 тоже.

Получаю
zsh: killed
или
Initialization Error 1
как тут http://www.vmpsoft.com/forum/viewtopic. ... 06&p=18927

Возможно есть какие то свежие новости по этой проблеме? Планируются ли фиксы с hardening runtime? Получается, что на данный момент vmprotect полностью не работает c 10.15 без эпл стора и с влюченным SIP
coroberti
Posts: 11
Joined: Sat Jul 13, 2019 8:42 pm

Re: Несовместимость с macOS 10.14 "hardened runtime"?

Post by coroberti »

Hi,
If not resolved, try to add more exceptions.

Kinda:

<?xml version="1.0" encoding="utf-8"?>
<plist version="1.0">
<dict>
<key>com.apple.security.automation.apple-events</key>
<true/>
<key>com.apple.security.files.user-selected.read-write</key>
<true/>
<key>com.apple.security.cs.allow-jit</key>
<true/>
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
<true/>
<key>com.apple.security.cs.allow-dyld-environment-variables</key>
<true/>
<key>com.apple.security.cs.disable-executable-page-protection</key>
<true/>
<key>com.apple.security.cs.disable-library-validation</key>
<true/>
</dict>
</plist>

works for me for sure at latest 10.14 after signing with hardening runtime + the above
entitlements and notarization (don't miss it).

Never tried 10.15-beta, sorry.

Kind regards,
Robert
Post Reply