@@ -752,7 +752,7 @@ struct VM {
752752
753753 // basically checks whether all the techniques were cached
754754 static bool all_present () {
755- return (cache_table.size () == (enum_size - 4 )); // 4 are non-technique flags
755+ return (cache_table.size () == (static_cast < unsigned long long >( enum_size) - 4 )); // 4 are non-technique flags
756756 }
757757 };
758758
@@ -2832,17 +2832,18 @@ struct VM {
28322832 return false ;
28332833#else
28342834 u32 pnsize = 0x1000 ;
2835- TCHAR* provider = new TCHAR[pnsize];
2836-
2837- u32 retv = WNetGetProviderName (WNNC_NET_RDR2SAMPLE, provider, reinterpret_cast <LPDWORD>(&pnsize));
2838-
2839- if (retv == NO_ERROR) {
2840- bool result = (lstrcmpi (provider, _T (" VirtualBox Shared Folders" )) == 0 );
2841- delete provider;
2842- return result;
2843- }
2844-
2845- return false ;
2835+ TCHAR* provider = new TCHAR[pnsize];
2836+
2837+ u32 retv = WNetGetProviderName (WNNC_NET_RDR2SAMPLE, provider, reinterpret_cast <LPDWORD>(&pnsize));
2838+
2839+ if (retv == NO_ERROR) {
2840+ bool result = (lstrcmpi (provider, _T (" VirtualBox Shared Folders" )) == 0 );
2841+ delete[] provider;
2842+ return result;
2843+ }
2844+
2845+ delete[] provider;
2846+ return false ;
28462847#endif
28472848 }
28482849 catch (...) {
@@ -4851,28 +4852,28 @@ struct VM {
48514852 return false ;
48524853 }
48534854
4854- u8 idtr[6 ] ;
4855- u32 idt_entry = 0 ;
4855+ u8 idtr[10 ]{} ;
4856+ u32 idt_entry = 0 ;
48564857
48574858#if (MSVC)
4858- #if (x86_32)
4859+ #if (x86_32)
48594860 _asm sidt idtr
4860- #elif (x86)
4861- #pragma pack(1)
4861+ #elif (x86)
4862+ #pragma pack(1)
48624863 struct IDTR {
48634864 u16 limit;
48644865 u64 base;
48654866 };
4866- #pragma pack()
4867+ #pragma pack()
48674868
48684869 IDTR idtrStruct;
48694870 __sidt (&idtrStruct);
48704871 std::memcpy (idtr, &idtrStruct, sizeof (IDTR));
4871- #else
4872+ #else
48724873 return false ;
4873- #endif
4874+ #endif
48744875
4875- idt_entry = *(( unsigned long *) &idtr[2 ]);
4876+ idt_entry = *reinterpret_cast < unsigned long *>( &idtr[2 ]);
48764877#elif (LINUX)
48774878 // false positive with root for some reason
48784879 if (util::is_admin ()) {
@@ -4888,7 +4889,7 @@ struct VM {
48884889
48894890 __asm__ __volatile__ (
48904891 " sidt %0"
4891- : " =m" (idtr )
4892+ : " =m" (idtr_struct )
48924893 );
48934894
48944895 std::ifstream mem (" /dev/mem" , std::ios::binary);
@@ -4906,7 +4907,7 @@ struct VM {
49064907 return false ;
49074908 }
49084909 catch (...) {
4909- debug (" SIDT: " , " catched error, returned false" );
4910+ debug (" SIDT: " , " caught error, returned false" );
49104911 return false ;
49114912 }
49124913
@@ -4952,7 +4953,7 @@ struct VM {
49524953#if (!MSVC || !x86)
49534954 return false ;
49544955#elif (x86_32)
4955- u8 gdtr[6 ];
4956+ u8 gdtr[6 ]{} ;
49564957 u32 gdt = 0 ;
49574958
49584959 _asm sgdt gdtr
@@ -5139,7 +5140,7 @@ struct VM {
51395140#if (!MSVC || !x86)
51405141 return false ;
51415142#elif (x86_32)
5142- unsigned char m[6 ];
5143+ unsigned char m[6 ]{} ;
51435144 __asm sidt m;
51445145 return (m[5 ] > 0xD0 );
51455146#else
@@ -5167,7 +5168,7 @@ struct VM {
51675168#if (!MSVC || !x86)
51685169 return false ;
51695170#elif (x86_32)
5170- unsigned char m[6 ];
5171+ unsigned char m[6 ]{} ;
51715172 __asm sgdt m;
51725173 return (m[5 ] > 0xD0 );
51735174#else
@@ -5195,7 +5196,7 @@ struct VM {
51955196#if (!MSVC || !x86)
51965197 return false ;
51975198#elif (x86_32)
5198- unsigned short m[6 ];
5199+ unsigned short m[6 ]{} ;
51995200 __asm sldt m;
52005201 return (m[0 ] != 0x00 && m[1 ] != 0x00 );
52015202#else
@@ -5222,7 +5223,7 @@ struct VM {
52225223#if (!MSVC || !x86)
52235224 return false ;
52245225#elif (x86_32)
5225- u8 idtr[6 ];
5226+ u8 idtr[6 ]{} ;
52265227 u32 idt = 0 ;
52275228
52285229 _asm sidt idtr
@@ -5722,7 +5723,7 @@ struct VM {
57225723 u8 extmodel;
57235724 };
57245725
5725- struct stepping_struct steps;
5726+ struct stepping_struct steps {} ;
57265727
57275728 u32 unused, eax = 0 ;
57285729 cpu::cpuid (eax, unused, unused, unused, 1 );
@@ -5801,7 +5802,7 @@ struct VM {
58015802 constexpr u8 EXTMODEL = 1 ;
58025803 constexpr u8 MODEL = 2 ;
58035804
5804- for (const auto arch : old_archs) {
5805+ for (const auto & arch : old_archs) {
58055806 if (
58065807 steps.family == arch.at (FAMILY) &&
58075808 steps.extmodel == arch.at (EXTMODEL) &&
@@ -6465,4 +6466,4 @@ const std::map<VM::u8, VM::core::technique> VM::core::table = {
64656466 // __TABLE_LABEL, add your technique above
64666467 // { VM::FUNCTION, { POINTS, FUNCTION_POINTER }}
64676468 // ^ template
6468- };
6469+ };
0 commit comments