Bonjour à tous,
premièrement je ne sais pas si le post est à la bonne place mais j'ai un petit souci avec des instructions assembleur. Ensuite, le code est extrait d'un exo de reverse avec analyse de malware (un exe qui crée un service). Avant d'arriver a cette portion de code, un.sys est installé en tant que service "machin" et démarré
Le code est le suivant:
Selon la doc j'ai (source:http://msdn2.microsoft.com/en-us/lib...a363858.aspx):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 mov [esp+0AB8h+var_AA0], 0 mov [esp+0AB8h+var_AA4], 0 mov [esp+0AB8h+var_AA8], 3 mov [esp+0AB8h+var_AAC], 0 mov [esp+0AB8h+var_AB0], 0 mov [esp+0AB8h+var_AB4], 0C0000000h lea eax, [ebp+var_248] ; offset d'une chaine "\\.\Global\machin" mov [esp+0AB8h+var_AB8], eax call CreateFileA
Si j'ai bien compris, la fonction ouvre le volume physique GLOBAL et la partoche machin non? Mais si oui, pourquoi avoir un argument ShareMode à 0 alors que la doc précise:HANDLE WINAPI CreateFile(
__in LPCTSTR lpFileName,
__in DWORD dwDesiredAccess,
__in DWORD dwShareMode,
__in_opt LPSECURITY_ATTRIBUTES lpSecurityAttributes,
__in DWORD dwCreationDisposition,
__in DWORD dwFlagsAndAttributes,
__in_opt HANDLE hTemplateFile
);
(à moins que ça soit la valeur définie, j'ia pas pu vérifier).When opening a volume or floppy disk, the dwShareMode parameter must have the FILE_SHARE_WRITE flag.
Autre question, quelle est le volume GLOBAL? Est-ce qu'il a été créé et géré par le service installé (donc driver) ou Windows le gère à la base? Tout ce que je peux dire c'est que si l'opération de création échoue, l'exe m'indique l'impossibilité de communiquer avec le service. J'ne déduis que c'est comme ça que l'exe communique avec le service (récupération du Handle et utilisation de DeviceIoControl d'après ce que j'en ai lu mais j'en sais pas plus pour le moment). Après, peut être peut on accéder à un service en faisant un creatFile(\\.\GLOBAL\monservice), mais j'ai pas réussi a trouver de doc percise sur le fonctionnement et la plupart des infos que j'ai lu utilisaient createfile sur le service direct (ex: \\.\{66900D82-EA5E-4B21-AAB7-0CA5DFBEF293})
Meric de pouvoir m'éclairer là dessus![]()





Répondre avec citation



Partager