Import protection for DLL applications
Posted: Sat Jan 14, 2012 1:15 am
Hi,
I've run into an issue with VMP.
One of the features is "import protection" which is supposed to hide the API list so that you can't see what API's a VMP protected program uses.
The problem, however, is that it doesn't seem to work with my DLL (any DLL, even a barebone skeleton DLL that only calls sleep). My protection options only mutate the code (no virtual machine is used).
If I disassemble the DLL and scroll down to where the import table should be, I see it and it is completely unprotected.
For instance, this is what I might see:
jmp dword ptr [10008000] where 10008000 points to the sleep api.
What I had expected to see was something like this:
jmp 06511AB0 where 6511AB0 is an obfuscated/mutated function that is a wrapper for the sleep api.
Can someone explain what the import protection is supposed to do in VMP?
Thanks.
I've run into an issue with VMP.
One of the features is "import protection" which is supposed to hide the API list so that you can't see what API's a VMP protected program uses.
The problem, however, is that it doesn't seem to work with my DLL (any DLL, even a barebone skeleton DLL that only calls sleep). My protection options only mutate the code (no virtual machine is used).
If I disassemble the DLL and scroll down to where the import table should be, I see it and it is completely unprotected.
For instance, this is what I might see:
jmp dword ptr [10008000] where 10008000 points to the sleep api.
What I had expected to see was something like this:
jmp 06511AB0 where 6511AB0 is an obfuscated/mutated function that is a wrapper for the sleep api.
Can someone explain what the import protection is supposed to do in VMP?
Thanks.