I am a new student in the field of cybersecurity.

I would like to learn more about how virtualization used by software such as CodeVirtualizer and VMProtect works, and ideally to be able to virtualize part of my code in VB.NET. However, I do not understand how they operate, and I find it hard to find resources about it. So, I ask myself the following questions:

  • What functions do these programs use to achieve this virtualization? How do this work, step by step? Obviously, these are private software, so the source code is not given. The virtualization of a part of a code is difficult for me to conceive. It's obviously not about system virtualization like VMware or VirtualBox, but a part of a code. Is the environment changed?
  • From this last observation, where are the virtualized files stored? If my virtualized program wants to write to disk, will the data be written to a virtualized disk?

It may be difficult to answer every detail of each of my questions; I imagine that the domain is complex. Nevertheless, if some elements of answers could be brought, it would help me a lot to better understand :)

  • The code virtualizer website you mentioned explains everything in details, also check out this github repo for more info - github.com/ScalletaZ/phantasm-x86-virtualizer – R4444 Jul 18 '19 at 22:37
  • There is the most trivial "VM" you could start with. It actually interprets few x86 instructions. The difference from "real" virtualizer is that a virtualizer transforms the x86 instructions to a bytecode. github.com/Barebit/trivial-vm – MazeGen Jul 25 '19 at 13:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.