Проблема с виртуализацией BT m16, r16

Issues related to VMProtect
lazybit
Posts: 22
Joined: Thu Feb 11, 2010 12:40 pm

Проблема с виртуализацией BT m16, r16

Postby lazybit » Mon Feb 11, 2019 9:40 am

Функции выдают разные результаты после защиты func_vmp.

Code: Select all

#include <stdio.h>
int bit = 0x80000;
unsigned char bits[0x80000/8 + 1] = { 0 };

bool func_vmp() {
   unsigned char r;
   __asm {
      mov ecx,[bit]
      bt word ptr [bits], cx
      setc [r]
   }
   return r;
}
bool func() {
   unsigned char r;
   __asm {
      mov ecx,[bit]
      bt word ptr [bits], cx
      setc [r]
   }
   return r;
}
int main() {
   bits[0x80000/8] = 0xFF;
   printf("%d\r\n", func_vmp());
   printf("%d\r\n", func());
   return 0;
}