News for hackers. Stuff that matters.
Re:Lua Devirtualization by IiydAbITMvJkqKf on Saturday February 26, 2022 @05:20AM (#30476517)
Devirtualization is not the correct term. Devirt is a common compiler optimization, where a call through a function pointer is replaced with a direct call to the only possible target.
Re:Lua Devirtualization by Andoryuuta on Saturday February 26, 2022 @01:56PM (#30480559)
While I think you are right about devirtualization being used to mean that in the world of compilers, in the realm of code protection/obfuscation, obfuscating code by making in run in an embedded virtual machine is called virtualization, with the reverse being called devirtualization.

It's hard to put a exact date on the origin of "[de]virtualization" being used to refer to code obfuscation, but it's definitely been used since at _least_ 2007 in related academia. [0],

[0]: Kang, Min Gyung, Pongsin Poosankam, and Heng Yin. "Renovo: A hidden code extractor for packed executables." Proceedings of the 2007 ACM workshop on Recurring malcode. 2007

Re:Lua Devirtualization by codeflo on Saturday February 26, 2022 @09:42AM (#30477918)
I also hate it when technical terms are needlessly overloaded, and I can only assume it's often because our field is fractured enough that even widely known terminology might not be known in every little niche. But one has to wonder... don't people use Google when they invent new terms?

Either way, I found this paper that describes a certain obfuscation technique as virtualization [1]. I can only assume that devirtualization is meant as the corresponding deobfuscation technique. So maybe it is the correct, if unfortunate, term. Quote:

> Virtualization-obfuscation replaces native code in a binary with semantically equivalent and self-defined bytecode, which, upon ex- ecution, is interpreted by a custom virtual machine.

[1] https://cis.temple.edu/~qzeng/papers/deobfuscation-icics2017...

Re:Lua Devirtualization by CapsAdmin on Saturday February 26, 2022 @05:34AM (#30476565)
These Lua communities are often where people start learning programming (me included). So a lot of terminology is often community made. I remember we referred to this as obfuscation in the garrysmod community, but it doesn't really surprise me these people call it "devirtualization".

I remember relearning all of these terms were a big challenge when stepping outside of Lua.

Re:Lua Devirtualization by stevemk14ebr on Saturday February 26, 2022 @08:09AM (#30477225)
You are incorrect. I work with malware professionally, defeating a VM obfuscator is often called devirtualizing. There is also the compiler optimization term as you say, but terms can mean more than one thing...
Re:Lua Devirtualization by MarkSweep on Saturday February 26, 2022 @09:25AM (#30477781)
While I was initially confused by the terminology, I think it kinda makes sense. As an example of other people using the term in this way, see the Tigress obfuscator:

https://tigress.wtf/introduction.html