Starting from Visual Basic 5, the language supports two compilation modes: p-code and native code (before p-code was the only option). In order to understand the differences between them, we first need to understand what p-code actually is.
P-code (stands for packed code or pseudocode) is the intermediate language with an instruction format similar to machine code. In other words, it is a form of bytecode. The main reason behind introducing it is to reduce the programs' size at the expense of execution speed. When the sample is compiled as p-code, the bytecode is interpreted by the language runtime. In contrast, the native code option allows developers to compile a sample to the usual machine code that generally works faster, but takes up more space because of multiple overhead instructions being used.
It is important to know which mode the analyzed sample is compiled in as it defines what static and dynamic analysis tools should be used. As for how to distinguish...