[Sources] ASProtect Virtual Machine for marker "UserPolyBuffer"
09/22/2011, 22:00
* What is it? *
This is the original virtual machine code, compile giving the binary
fully binary-and format-compatible with one of the virtual
machine protect executable files ASProtect. This means that the transition
to the virtual machine ASProtect can be replaced by a transition in the resulting
virtual machine and the code is interpreted correctly. In addition, any
entity of the original virtual machine can replace the primitive
resulting in this case too, no error. The source code
is almost completely restored the author's style of programming,
most of the errors and omissions. The most absurd places I marked
the comment "WTF?". The resulting binary has been tested on version 2.58.
* Purpose *
A lot of people do not understand the virtual machine. Who is simply interested in principle.
Who wants to see the code virtual machine commercial protection of executable files.
In this case, the code will be of interest primarily to developers of programs that rely on
the protection of their software tread ASProtect. That is, goal - only research, this is not a decompiler
protection, this is the original interpreter.
* History *
This virtual machine was first used to hide code QuickVM.
QuickVM - a virtual machine that interprets all four types of instructions: call, jmp, jcc, cmp + jcc.
But at the time the device QuickVM already been fully investigated and all that have made ??
the developers ASProtect - a sharp decline in performance throughout the defense.
Therefore, in the very next build of this virtual machine was removed from the code QuickVM.
But, since virtual machine has already been implemented, then it began to be used for markers UserPolyBuffer,
set in the application code. It seems to not come up with new markers, or maybe just for testing.
But, after a short period of time with markers UserPolyBuffer it removed and to protect your code
does not use more generally. In a virtual DLL ASProtect, that is extracted during the launch of the program
in a protected memory, is also used markers UserPolyBuffer. That's for them now and use this virtual machine,
ie It now protects the function of the ASProtect.