Is there any version of vmp lib for musl ? or a way to compile it I'm trying adding a version of my program with full static musl linking, and VMP lib is the only thing i can't migrate, i even considered not linking the lib and only using the GUI to protect, but i do use some functions of the lib in my code.
If i try compiling at Alpine with vmp lib, it requires glibc for example, and my idea is to don't deppend anyway on glibc.
musl support
Re: musl support
VMProtect uses glibc for SDK/runtime and doesn't know anything about third-party libraries like musl.
-
- Posts: 16
- Joined: Fri May 27, 2022 12:49 pm
- Contact:
Re: musl support
Are you planning to support musl? There is a certain part of systems that is based on Musl and its support would be very useful.
Especially if you plan to support aarch64 under Linux. Thanks!
Especially if you plan to support aarch64 under Linux. Thanks!
Re: musl support
It seems you didn't understand what the topic starter wants.Are you planning to support musl?
Re: musl support
How sad, I really needed the vmp lib that didn't depend on glibc, if at least the vmp lib code were public, I could try to build it directly on Alpine Linux and solve the building problems. Or maybe someday you'll decide to support versions that are based on musl and not glibc.
Re: musl support
> if at least the vmp lib code were public, I could try to build it directly on Alpine Linux and solve the building problems
You can easily recreate this library, as it only contains empty functions, i.e write this into a file:
void VMProtectBeginUltra(char* name) {}
Build it into a VMProtectSDK64.so, and it will work the same way as the libraries included in VMProtect SDK
It won't, however, work with musl, because musl doesn't allow for dynamic linking of libraries, and vmprotect won't find uses of those markers if you link those functions statically
Instead you can use vmprotect lua api to mark functions for protection
(E.g, I use this script: https://github.com/CertainLach/vmprotec ... script.lua, which allows me to name any functions I want to protect in a way such as vmprotect_ultra_NAME_123123123)
And then you need to be careful to not use any of the vmprotect functionality which depend on vmprotect runtime to be available, as its runtime uses glibc for everything, libcurl for activation stuff, etc.
Only this way you can use vmprotect with musl.
You can easily recreate this library, as it only contains empty functions, i.e write this into a file:
void VMProtectBeginUltra(char* name) {}
Build it into a VMProtectSDK64.so, and it will work the same way as the libraries included in VMProtect SDK
It won't, however, work with musl, because musl doesn't allow for dynamic linking of libraries, and vmprotect won't find uses of those markers if you link those functions statically
Instead you can use vmprotect lua api to mark functions for protection
(E.g, I use this script: https://github.com/CertainLach/vmprotec ... script.lua, which allows me to name any functions I want to protect in a way such as vmprotect_ultra_NAME_123123123)
And then you need to be careful to not use any of the vmprotect functionality which depend on vmprotect runtime to be available, as its runtime uses glibc for everything, libcurl for activation stuff, etc.
Only this way you can use vmprotect with musl.