I am currently updating my software to support VMP3.
I need to strip out the "Name" field in the Export Directory of my DLL which worked fine in VMP2, in VMP3 I get an error message:
Is there any way to make the dll work with modified export directory? Memory protection is not enabled.
"Initialiation error 4" means that the last VMProtect's segment is modified. We recommend to use the script for deleting of export functions. For example:
Is there any way to accomplish that with VMP Scripts? As far as I understood the Script functions only allow you to read and clear the export directory but not to change certain fields.
function OnBeforeSaveFile()
local exports = vmprotect.core():outputArchitecture():exports()
local export = exports:itemByName("old_name")
if (export) then
export:setName("new_name")
else
print("old_name not found!")
end
end
I'm your client and I'm using VMProtect to protect my software. I'm currently seeing "Initialization error 4" in a production environment at customer's site, -- but in a strange manner: my app, protected with VMProtect initially works fine, but then at some point it cannot be started any longer, until the server is rebooted or until the app is reinstalled. Interesting that I supply 2 executables, one being an NT service and second being an auxiliary utility. Both protected with VMProtect, and both are getting unusable at some point at that server, throwing the "Initialization error 4" message box.
I was wondering, what change in the system may cause this behaviour. And why reinstallation of my software helps. Is it the case that something changes VMProtect-covered binaries on the disk? or does this happen in RAM, after binary is loaded? What should be recommended to that server's administrators in order to avoid this problem in future?