Récupérer les informations des Threads pour le processus 936.
vol -f /mnt/c/Users/cyrha/Desktop/demo/hackropole/memoire.dmp windows.threads 2>/dev/null | awk '$1 == "Offset" || $2 == 936'
Offset PID TID StartAddress StartPath Win32StartAddress Win32StartPath CreateTime ExitTime
0xa50a26103080.0 936 940 0x7ffd16e9cc70 \Windows\System32\ntdll.dll 0x7ff717e652e0 \Windows\System32\svchost.exe 2025-04-01 22:10:44.000000 UTC 1600-09-07 05:53:23.000000 UTC
0xa50a26147040 936 500 0x7ffd16e9cc70 \Windows\System32\ntdll.dll 0x7ffd16e9d110 \Windows\System32\ntdll.dll 2025-04-01 22:10:44.000000 UTC 1600-09-07 05:53:23.000000 UTC
0xa50a2619c080 936 620 0xb88513975c60 - 0x7ffd16e9d110 \Windows\System32\ntdll.dll 2025-04-01 22:10:44.000000 UTC 1600-09-07 05:53:23.000000 UTC
0xa50a26224080 936 872 0x7ffd16e9cc70 \Windows\System32\ntdll.dll 0x7ffd16979c60 \Windows\System32\combase.dll 2025-04-01 22:10:44.000000 UTC 1600-09-07 05:53:23.000000 UTC
0xa50a26211080 936 472 0x7ffd16e9cc70 \Windows\System32\ntdll.dll 0x7ffd11b88f00 \Windows\System32\dab.dll 2025-04-01 22:10:44.000000 UTC 1600-09-07 05:53:23.000000 UTC
0xa50a2620b080 936 1028 0x7ffd16e9cc70 \Windows\System32\ntdll.dll 0x7ffd122bdeb0 \Windows\System32\PsmServiceExtHost.dll 2025-04-01 22:10:44.000000 UTC 1600-09-07 05:53:23.000000 UTC
0xa50a209d0080 936 1416 0x7ffd16e9cc70 \Windows\System32\ntdll.dll 0x7ffd16e9d110 \Windows\System32\ntdll.dll 2025-04-01 22:10:45.000000 UTC 1600-09-07 05:53:13.000000 UTC
0xa50a1f94f080 936 4500 0x7ffd16e9cc70 \Windows\System32\ntdll.dll 0x7ffd16e9d110 \Windows\System32\ntdll.dll 2025-04-01 22:10:52.000000 UTC 1600-09-07 05:53:12.000000 UTC
0xa50a2978b080 936 7148 0x7ffd16e9cc70 \Windows\System32\ntdll.dll 0x7ffd16e9d110 \Windows\System32\ntdll.dll 2025-04-01 22:11:01.000000 UTC 1600-09-07 05:53:28.000000 UTC
0xa50a29dc2080 936 7484 0x7ffd16e9cc70 \Windows\System32\ntdll.dll 0x7ffd16e9d110 \Windows\System32\ntdll.dll 2025-04-01 22:15:01.000000 UTC 1600-09-07 05:53:29.000000 UTC
0xa50a1f8f3040 936 1296 0x7ffd16e9cc70 \Windows\System32\ntdll.dll 0x7ffd16e9d110 \Windows\System32\ntdll.dll 2025-04-01 22:17:50.000000 UTC 1600-09-07 05:53:12.000000 UTC
Le TID 940 à une adresse commencant par 0x7ff717
tout les autres TID commencent par 0x7ffd16
On peut imaginer que 0x7ffd16 est certainement la liaison des DLLs systèmes partagées.
et que 0x7ff717
est propablement l’emplacment où se trouvent les fonctions de l’exécutable.
Donc j’ai commencé à effectuer quelques recherche car 0x7ff717e652e0
ne semble pas correspondre à virtual_address :
En lisant sur wikipedia, ça m’a éclairé un peu mais ça ne m’a pas permis de comprendre ce que je cherchais exactement.
Durant mes différentes recherches,e je suis tombé sur : “PhysicalStart doit être aligné sur une limite de 4 Kio et ne doit pas être supérieur à 0xffffffffffffff000.”
J’ai donc demandé à ChatGPT à quoi correspondait “0xffffffffffffff000”
Que signifie 0xFFFFFFFFFFFFF000 ?
📌 En binaire :
0xfffffffffffff000 = 1111...1111 000000000000
(52 bits à 1) (12 bits à 0)
Il s'agit donc d'un masque 64 bits où les 12 bits de poids faible sont à 0, et les autres à 1.
Les systèmes modernes utilisent des pages mémoire de 4 Ko, soit 4096 octets = 2^12.
Aligner une adresse sur une page
aligned_address = address & 0xfffffffffffff000;
Je me fais un p’tit script PHP pour obtenir l’adresse:
<?php
printf("0x%016x", 0x7ff717e652e0 & 0xfffffffffffff000);
<thread_id> est l’identifiant du Thread (TID) malveillant et <virtual_address> est l’adresse virtuelle (dans le contexte du processus malveillant) du début de la page mémoire (PTE) modifiée.
thread_id = 940
virtual_address = 0x00007ff717e65000