Suivi de PavinLoader dans les campagnes ClickFix et de faux téléchargements

| 24 août 2026
Suivi de PavinLoader dans les campagnes ClickFix et de faux téléchargements

Dans notre analyse précédente des campagnes malveillantes RenPy, nous avons identifié un chargeur multi-étapes déployé dans le cadre de la chaîne d'infection.

Des analyses de menaces plus poussées ont depuis montré que le même chargeur, que nous suivons sous le nom de PavinLoader , est utilisé dans plusieurs campagnes différentes, notamment des attaques ClickFix et des téléchargements de faux logiciels. 

Malgré les différences dans la manière dont ces campagnes atteignent leurs victimes, nous avons constaté plusieurs éléments communs. Il s'agit notamment de chaînes d'infection en plusieurs étapes impliquant des DLL .NET fortement obfusquées et piégées par des chevaux de Troie ; l'utilisation abusive de MSBuild, .csproj, et .bat fichiers pour les exécuter ; et EtherHiding pour récupérer le domaine de commande et de contrôle (C2). 

À quoi ressemble une attaque

Les campagnes ne débutent pas toutes de la même manière. Une victime peut se retrouver face à un faux CAPTCHA lui demandant d'exécuter une commande, de télécharger un logiciel apparemment légitime ou d'installer un jeu malveillant.

La suite est beaucoup plus cohérente. PavinLoader utilise des outils légitimes. Windows Ce logiciel malveillant utilise des outils et des fichiers .NET malveillants pour exécuter plusieurs étapes de son exécution. Il recourt également à EtherHiding, une technique qui utilise la blockchain pour masquer les informations relatives à son infrastructure et ainsi localiser le serveur à partir duquel il doit récupérer d'autres logiciels malveillants.

Dans la campagne RenPy que nous avons analysée, ce processus a finalement abouti à Amatera Stealer , un logiciel malveillant conçu pour voler des informations sur un ordinateur infecté. Nous avons également observé des infections par PavinLoader, qui diffusaient d'autres logiciels malveillants.

PavinLoader apparaît dans plusieurs campagnes

Nous avons identifié PavinLoader dans plusieurs groupes de campagnes : 

  • Les campagnes RenPy malveillantes, analysées dans notre précédent article de blog
  • Plusieurs campagnes ClickFix, y compris des activités récentes des opérateurs mentionnés dans notre analyse précédente.
  • Campagnes de faux logiciels utilisant Dropbox pour télécharger PavinLoader. 

L'utilisation de ce chargeur dans plusieurs campagnes laisse supposer que PavinLoader est proposé en tant que chargeur en tant que service.

Nous avons également trouvé plusieurs éléments qui corroborent cette hypothèse, sans toutefois la confirmer. Un élément en particulier, présent sur VirusTotal, est commun à plus de 200 fichiers associés à PavinLoader, ce qui suggère qu'il pourrait s'agir d'un artefact de compilation lié au processus de construction.

Nous avons également trouvé un script PowerShell téléchargé sur VirusTotal contenant des commentaires tels que : EDIT HERE et REPLACE with a real direct link to your .batLe fichier BAT associé contient la chaîne Automated builder helper.

Cependant, nous n'avons trouvé aucun panel de construction ni canal de vente qui confirmerait que PavinLoader est commercialisé.

Bien que PavinLoader ait évolué au fil du temps, les campagnes que nous avons analysées partagent plusieurs caractéristiques :

  • Les installateurs Inno Setup ou MSI générés par différents outils de création de programmes exécutent le .bat et/ou .csproj fichiers
  • Des DLL .NET infectées par des chevaux de Troie, notamment DotNetZip, Nancy, Renci.SshNet et OpenXML. Dans la plupart des cas analysés, les méthodes malveillantes insérées suivent un schéma précis. TwoWords ou TwoWordsNumber modèle de dénomination, tel que DefaultEvaluator5, et FallbackFactory5
  • Une technique d'obfuscation courante utilisée dans les DLL .NET
  • Une convention de dénomination basée sur deux mots aléatoires, comme par exemple GollopDevest, UnbrandRunover, et PavinWide, pour les noms de DLL, les fonctions, les chaînes de caractères, les chemins C2 et autres artefacts
  • EtherHiding pour obtenir le domaine C2, suivi de requêtes HTTP utilisant des chemins tels que assets/{two random words}.json pour récupérer les étapes suivantes. Les domaines C2 utilisent généralement le .lat, .icu, .shop, et .cfd domaines de premier niveau
  • Mécanismes MSBuild pour le chargement et l'exécution de code à partir de DLL, y compris les fonctions de propriété telles que [System.Reflection.Assembly]::Load(...) et UsingTask
  • Des modèles de noms de fichiers récurrents tels que name_4characters.cmd/bat/msi/exe-Par exemple, prefetch_9a59.cmd, telemetry_55db.cmd, et bootstrap_64be.cmd—ou des noms aléatoires de neuf caractères tels que aegZpQ4C7.batNous avons également observé des noms courts, notamment Small.msi, small.bat, et small.cmd

PavinLoader est composé de plusieurs DLL .NET, et dans les cas analysés, nous avons identifié les étapes suivantes : 

  • DLL de chargement : Une DLL piégée (comme celle de Nancy analysée dans notre précédent article sur RenPy) ou une DLL personnalisée. Elle effectue des opérations anti-forensiques et anti-analyse, modifie les paramètres réseau nécessaires aux opérations suivantes et charge le chargeur EtherHiding.
  • DLL de chargement EtherHiding : Obtient le C2 via EtherHiding et télécharge les étapes suivantes à partir de celui-ci. 
  • DLL anti-analyse : Effectue des contrôles anti-analyse approfondis pour détecter les environnements virtualisés. 
  • DLL de chargement PE : charge la charge utile PE finale.

Les charges utiles intermédiaires peuvent varier selon la configuration de la campagne. Nous examinerons d'abord certaines méthodes utilisées pour distribuer les étapes initiales de PavinLoader. Nous reviendrons ensuite sur la campagne de chargement RenPy analysée dans notre article précédent afin d'étudier les étapes suivantes. 

Analyse technique

Le reste de cet article examine plus en détail la distribution de PavinLoader et le fonctionnement de chaque étape du chargeur.

Comment PavinLoader est livré

Nous avons constaté que PavinLoader était distribué via plusieurs campagnes ClickFix.

Nous avons notamment constaté que le cluster ClickFix analysé dans une étude précédente article a récemment commencé à utiliser PavinLoader. Abus de MSBuild et utilisation de .csproj et .bat Les mêmes fichiers restent communs à toutes les chaînes d'infection que nous avons observées.

Nous avons abordé un exemple dans notre précédente analyse de RenPy. Ici, nous allons examiner plusieurs autres méthodes de distribution. 

Comme nous l'avons constaté lors de notre précédente analyse de ces campagnes ClickFix, les scripts PowerShell associés changent fréquemment. Nous avons trouvé plusieurs versions dans cette activité, y compris des scripts obfusqués et non obfusqués.

Dans cet exemple, le fichier MSI téléchargé depuis le bucket Cloudflare est appelé Installer_57be78.msi. 

Le paquet contient :

  • prefetch_2f76.exe: L'exécutable MSBuild légitime
  • prefetch_2f76.csproj: Utilisé pour exécuter la DLL du chargeur via UsingTask
  • DotNetZip.dll: La DLL du chargeur

Le .csproj Le fichier est exécuté avec :

"C:\Users\{USER}\AppData\Local\Logitech\Device Configuration Helper\prefetch_2f76.exe" /nologo "C:\Users\{USER}\AppData\Local\Logitech\Device Configuration Helper\prefetch_2f76.csproj" /nr:false

La DLL Loader est une version trojanisée de DotNetZip et est exécutée à l'aide de UsingTask élément.

Contrairement à l'exemple RenPy présenté dans notre article précédent, le chargeur EtherHiding est extrait directement de la DLL. Une ressource intégrée sert d'index pour extraire des octets directement de la DLL, au lieu d'obtenir ces index à partir de la bibliothèque. .csproj fichier.

Nous avons détecté une autre campagne utilisant des fichiers BAT contenant de faux fichiers. BUILD VERIFICATION REPORT Des commentaires, apparemment destinés à rendre l'analyse et la détection plus difficiles.

Dans ce cas, le MSI CustomAction exécute le script BAT avec :

cmd.exe /c C:\Users\{USER}\AppData\Local\Conexant\lite_bootstrap_2.1.7\updater_8219.cmd /launched

Le code obscurci apparaît sous les faux commentaires. Il concatène plusieurs chaînes de caractères et utilise des indices générés par de simples opérations mathématiques pour les reconstituer. Nous avons constaté ce type d'obscurcissement dans la plupart des fichiers BAT que nous avons analysés.

Le fichier BAT localise conhost.exe et se relance avec :

"C:\WINDOWS\System32\conhost.exe" --headless cmd.exe /c "C:\Users\{USER}\AppData\Local\Conexant\lite_bootstrap_2.1.7\updater_8219.cmd" /launched

Il définit ensuite le MSBUILDENABLEALLPROPERTYFUNCTIONS=1 variable d'environnement, localise MSBuild.exeet l'exécute en utilisant le même fichier comme entrée :

"C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe" "C:\Users\{USER}\AppData\Local\Conexant\lite_bootstrap_2.1.7\updater_8219.cmd"

Dans ce cas, la DLL du chargeur est reconstruite en concaténant et en décodant quatre variables encodées en Base64.

La DLL du chargeur possède un nom aléatoire et semble être une version plus ancienne car elle ne contient pas le bytecode personnalisé ni les chaînes chiffrées dans ses ressources.

Comme dans la campagne RenPy analysée précédemment, cette étape récupère le chargeur EtherHiding stocké entre un Build-... marqueur dans le fichier CMD via le _vezr variable d'environnement, puis la décode en utilisant XOR avec une clé de 32 octets.

Après avoir examiné plusieurs méthodes utilisées pour distribuer les deux premières étapes de PavinLoader, nous allons maintenant revenir à la chaîne d'infection RenPy de notre analyse précédente et examiner le chargeur lui-même plus en détail.

Analyse de PavinLoader

Les DLL .NET associées à PavinLoader sont fortement obfusquées à l'aide de l'aplatissement du flux de contrôle, de bytecode personnalisé et d'appels indirects via calli/ldftn, chaîne chiffrement avec des algorithmes différents, du hachage d'API et des délégués, des méthodes redondantes, et du code et des chaînes de caractères inutiles.

Nous n'avons identifié aucun obfuscateur connu associé aux échantillons ; par conséquent, à notre connaissance, PavinLoader utilise un obfuscateur personnalisé.

Comme la désobfuscation complète des échantillons serait complexe, nous avons utilisé une approche hybride combinant l'analyse dynamique et l'appel de méthodes par réflexion. Nous avons identifié les méthodes importantes en fonction de leurs importations et paramètres, nous les avons appelées et avons analysé les résultats obtenus.

Cette approche ne couvre pas l'intégralité du flux d'exécution, mais elle nous a permis d'identifier les fonctionnalités principales du chargeur et d'en extraire les étapes intermédiaires. Comme différentes fonctions partagent souvent le même nom, nous utilisons des métadonnées pour identifier les méthodes tout au long de l'analyse.

DLL infectée par un cheval de Troie : DLL de chargement 

Nous avons déjà abordé cette étape en détail dans notre précédent article de blog, nous n'en donnerons donc ici qu'un aperçu.

Dans la plupart des cas analysés, la DLL de chargement est une DLL légitime infectée par un cheval de Troie. La méthode malveillante utilise généralement un {RandomWord} ou {RandomWord_Number} convention d'appellation.

La DLL contient une ressource associée au bytecode personnalisé interprété par la méthode principale, deux ressources contenant des chaînes chiffrées et, dans certains cas, des ressources supplémentaires servant d'index pour extraire l'étape suivante. D'autres ressources semblent être des leurres destinés à ralentir l'analyse. Dans les échantillons analysés, cette DLL se présentait généralement comme suit :

  • Déchiffre les chaînes de caractères à partir de ressources en utilisant un XOR multi-clés
  • Résout les API à l'aide du hachage d'API et GetDelegateForFunctionPointer()
  • Modifie les paramètres réseau, notamment en désactivant la validation du certificat TLS et en définissant le proxy système par défaut.
  • Effectue un contrôle de synchronisation anti-analyse en utilisant CreateEventW(), GetTickCount(), et WaitForSingleObject()
  • Effectue des opérations anti-criminelles
  • Charge le chargeur EtherHiding soit en l'extrayant d'un marqueur à l'intérieur .csproj ou des fichiers BAT, ou en utilisant une ressource comme index pour récupérer directement des octets depuis la DLL

GollopDevest : Chargeur EtherHiding 

Le chargeur EtherHiding a deux fonctions principales : obtenir le domaine C2 via EtherHiding, et télécharger et charger les étapes suivantes à partir de ce C2.

Classe 0x02000762 est responsable du décryptage des chaînes de caractères associées à la blockchain et à la communication réseau.

Les chaînes sont déchiffrées par 0x060027BD comme suit: 

  • Fonction 0x060027BB initialise la S-box en utilisant le XOR de la clé principale activeValues et le décodage Base64 optionsCollection chaîne
  • Fonction 0x060027BE prend childSyncObject prend en entrée et renvoie les octets d'index en utilisant des opérations XOR et des permutations basées sur les valeurs d'en-tête encodées dans les deux premiers caractères de la chaîne.
  • Fonction 0x060027B9 renvoie la chaîne déchiffrée en utilisant les index et la S-box précédemment générée.

C'était le seul cours que nous avons trouvé avec chiffrement paramètres encodés dans ce format.

Pour les chaînes restantes, nous avons identifié les fonctions qui renvoyaient des données déchiffrées en fonction de la signature de leurs paramètres (par exemple, les méthodes renvoyant des chaînes ou des octets) et nous les avons invoquées par réflexion. Cela nous a permis de récupérer plus de 1 300 chaînes.

Parmi elles figuraient des chaînes de caractères associées au patch AMSI et ETW :

AmsiScanString
System.Management.Automation.AmsiUtils
System.Management.Automation.AmsiUtils+AmsiNativeMethods
ntdll
EtwEventWrite

NtQueryInformationProcess
NtSetInformationThread
VirtualProtect

Plus de 100 URL appartenant à des services légitimes sont également déchiffrées et utilisées pour générer des requêtes HTTP et du bruit réseau. Ce comportement n'a pas été observé dans tous les échantillons, ce qui suggère qu'il pourrait être spécifique à certaines versions du système.

La classe Serveur (0x02000052) génère le X-Timestamp, X-Nonce, et X-Signature Les en-têtes HTTP et les requêtes sont utilisés pour récupérer les étapes suivantes.

Deux requêtes HTTP sont effectuées pour synchroniser les paramètres et obtenir la charge utile, avec HMAC utilisé pour valider les requêtes. En utilisant la réflexion, nous avons exécuté la méthode 0x06000A77 pour obtenir les valeurs d'en-tête nécessaires à la récupération des étapes suivantes.

Le domaine C2 est obtenu en effectuant un appel de procédure distante (RPC) Ethereum vers bsc-dataseed.binance.org avec le corps JSON-RPC suivant :

{"jsonrpc":"2.0","method":"eth_call","params":[{"to":"0x328a1fadff154290f0ce1389a4e633698cdfdaa7","data":"0x06fdde03"},"latest"],"id":1783436775} 

Les étapes suivantes sont téléchargées depuis le domaine C2 résultant. La charge utile encodée par XOR est stockée dans la réponse JSON sous cache.content:

{"type":"cache-binary","meta":{"version":"2.3.1","timestamp":"…","platform":"win32-x64"},"cache":{"id":"e2b69…","content":"1c.."}} 

Dans ce cas, les chemins C2 et les clés XOR déchiffrés à partir de cette étape et de la DLL anti-analyse sont :

Chemin Clé XOR Type/Fonction 
/assets/ExponeAboard.json QBBBfWow4lb PavinWride .NET DLL, Anti-analyse  
/assets/MailersKogasin.json WjcsVTKmuoBRqe GollopDevest .NET DLL, chargeur PE 
/assets/LanoseThrip.json WwUX66Br Exécutable WPA.exe PE, Amatera Stealer 

L'étape suivante exécutée est la DLL anti-analyse. 

PavinWride : DLL anti-analyse 

Cette DLL est responsable de l'exécution de plusieurs contrôles anti-analyse. 

La DLL anti-analyse exécute les appels système de différentes manières : 

  • Standard Appels de la bibliothèque de classes de base .NET (BCL), y compris pour les opérations de registre et de réseau
  • Appels P/Invoke Win32, y compris GetCurrentThread, NtQueryInformationThread, NtQueryInformationProcess, et NtCurrentTeb
  • Les API Win32 sont résolues par hachage d'API et par une analyse de la table d'exportation des blocs d'environnement de processus (PEB).

La fonction MenuItemService.ProcessDirectory (0x06000151) est la méthode principale responsable de la mise en cache des délégués et de la résolution de l'API Win32 :  

  • Il vérifie si le délégué est déjà résolu en utilisant managerMap.TryGetValue() 
  • Sinon, il appelle ProcessDirectory (0x06000150) pour obtenir le descripteur HMODULE
  • Il appelle ProcessDirectory (0x0600003A) qui effectue le parcours de la table d'exportation PE et fait correspondre le hachage. Nous avons constaté que le même résultat de hachage est obtenu par plusieurs autres méthodes (par exemple, 0x06000039, 0x0600003B, 0x0600004E)
  • Elle obtient le délégué avec GetDelegateForFunctionPointer() et l'enregistre dans le dictionnaire

Nous avons utilisé la même approche par réflexion pour obtenir les chaînes de caractères. De nombreuses chaînes sont chiffrées avec la clé XOR. 4B729A1F5CE387D6

Le chargeur obtient l'identifiant LCD du système en utilisant GetKeyboardLayoutList() et la compare à plus de 17 langues, dont le russe, l'ukrainien, le biélorusse et l'arménien.

Il effectue également une reconnaissance système approfondie, notamment en énumérant les clés de registre et en appelant des API Win32 telles que : GetSystemFirmwareTable() et EnumSystemFirmwareTables() identifier les environnements virtualisés.

Catégorie Valeur 
Identifiants de fournisseur/périphérique PCI VEN_80EE, VEN_15AD, VEN_1AB8, VEN_5853, VEN_1AF4, VEN_1234&DEV_111, …
Identifiants OEM SMBIOS/ACPI VMWARE, VBOX, BOCHS, VRTUAL, MSFTVM, MSHYPR, Xen, Parall, BHYVE, AMAZON, Google
signatures de table ACPI VBOX, BXPC, VMW, Xen, PRLS, AMZN, MICR
Chaînes de caractères BIOS/fabricant/produit vmware, vmw, innotek, virtualbox, vbox, qemu, seabios, bochs, standard pc, kvm virtual machine, xen, hvm domu, parallels
Chaînes de caractères associées aux contrôles anti-analyse

Nous avons également observé des références déchiffrées à des API, notamment GetCurrentProcess(), CreateToolhelp32Snapshot(), Process32First(), Process32Next(), et OpenMutex(), bien que nous n'ayons pas observé l'appel de ces fonctions au cours de notre flux d'exécution.

Une requête HTTP est également adressée à l'un de ces services : 

  • https://ipv4[.]ipleak[.]net/json/
  • https://get[.]geojs[.]io/v1/ip/geo[.]json
  • https://ipapi[.]co/json/
  • https://api[.]ipapi[.]is/
  • https://ipinfo[.]io/json

Il vérifie également les données renvoyées auprès de 96 fournisseurs d'hébergement ou d'infrastructure et teste si le code de région correspond à l'un des suivants : RU, UA, BY, AM, KZ, KG, TJ, UZ, GE, AZou MD.

Chaînes déchiffrées associées aux fournisseurs . Cliquez pour agrandir.

Si les contrôles anti-analyse sont réussis, les deux étapes suivantes sont téléchargées et déchiffrées à l'aide de clés XOR.

Nous avons réparé SelectionScope.ProcessDirectory (0x06000014) pour récupérer les chemins C2 et les clés XOR pour ces étapes :

/assets/MailersKogasin.json|WjcsVTKmuoBRqe|/assets/LanoseThrip.json|WwUX66Br

GollopDevest : PE Loader DLL et Amatera Stealer

La troisième DLL porte le même nom que la deuxième. GollopDevest, mais effectue le chargement PE.

Parmi les chaînes de caractères déchiffrées figurent :

'GollopMailers LDR DllBase VeneryCondole EdiyaFoully=0x{0:X} EdiyaStelae=0x{1:X}'
'GollopMailers LDR Flags missing IMAGE_DLL 0x{0:X8}'
'GollopMailers LDR SaranPisco invalid 0x{0:X}'
'GollopMailers LDR TlsIndex invalid {0}'
'GollopMailers LDR sanity exception: '
'HIGHLOW relocation'
'Import DLL name'
'Import FunctusAurata'
'Import INT'
'Import descriptor'
'Import hint/name'
'Import thunk'
'LdrpHandleTlsData outside ntdll .text'
'LdrpReleaseTlsEntry outside ntdll .text'
'LoadConfig32'
'OK'
'PE headers'
'Required API resolve failed: type={0}, FreshBubals={1}, module=0x{2:X}'
'TLS32'
'TLS64'
'x86 disabled until ABI proof'
ntdll.dll
kernel32.dll
LdrpInitializeTls
"STATUS_SUCCESS"
UNKNOWN(0x00000001)
UNKNOWN(0x00000002)
UNKNOWN(0x00000003)

Le ServerEditor.SortMemory méthode (0x06000014) vérifie la structure PE et les indicateurs avant de charger la charge utile.

Pour confirmer ce comportement, nous avons invoqué la méthode par réflexion en utilisant le fichier téléchargé. WPA.exe Fichier en entrée. Le module PE a été chargé avec succès.

Le PE compilé en C++ se déguise en WPA.exe ( Windows Analyseur de performances). Nous avons identifié la charge utile comme une version obfusquée de Amatera Stealer 4.2.3-alpha1.

Il utilise l'aplatissement du flux de contrôle, le hachage d'API, des contrôles anti-débogage et des prédicats opaques pour complexifier l'analyse. Nous avons également détecté l'utilisation de la technique Heaven's Gate, la résolution DNS sur HTTPS (DoH) via Google DNS et l'utilisation de sockets brutes. \Device\Afd\Endpoint pour la communication réseau. 

Une fois cette étape exécutée, nous avons également observé des charges utiles supplémentaires téléchargées et exécutées à partir d'adresses IP C2.

Dans certains cas, les paquets WiX Burn ont téléchargé une autre charge utile associée à PavinLoader. Dans d'autres, nous avons détecté HijackLoader. Cela permet aux opérateurs de la campagne de déployer plusieurs charges utiles sur une machine compromise.

CIO 

Hachages SHA-256

bdf313a019e025ebf58ccef4619444ee70e661bd444e0644ebeabd8f5caad14c 

e3830f5747e3f46537d217124d80c9f3bb4d89f8d4f5138dce69ee54ea4fb6b9 

a4f03272cf96732dc9f58bb466d16f358e7f50d46dba30526a9fbebfec11717b 

bf04160dd1ce3571e0eb6d6dda1713c788797b5599399d4a93665a757eec376e 

54fa8083c05334aa360256fbbb0ca901ce7e244a0359dd664cae78977371ec91 

c1ea6d169565c70ac5d812e73483814929e9b3548ead6633595937e71a334adb 

001337488c32d8610c2aef6f9330acca825f0afacd071bf6ebfc06b5a1a69f09 

2837099af431e9afee76ce5e6ab5cb86bedce06e31c22be46250cb453cfdb978 

252c5a3d150275013f52b4820097d7163ced4aa2f1be0fca032f8a5017673816 

0c9c64b7383ec249bcf6271a4b73206d94de130ca401d16ab77fe01e5193a312 

6700f62e1a3b33340cd678c388ecc8bac2e5943c0627df5d1b99b879c3ca42c9 

adresses IP 

93.152.224[.]75: téléchargements PavinLoader 

65.21.80[.]170: téléchargements PavinLoader 

195.63.142[.]49: téléchargements PavinLoader 

Domaines 

perfectverified[.]com: ClickFix 

PavinLoader C2 

catalyst-pro[.]lat 

twigoamwu[.]cfd 

trusaifi[.]cfd 

stellar-minds[.]cfd 

pinnacle-labs[.]lat 

nexahub[.]lat 

fimwoglea[.]shop 

velodium[.]lat 

rpcsecnoweb[.]pro 

more-arpc[.]icu 

echo-systems[.]cfd 

kelemet[.]shop 

zarwieciv[.]cfd 

URL 

telegra[.]ph/Project-PySynth-06-28: Amatera chute morte 

Remerciements   


Du signalement des menaces à leur suppression.

Les risques de cybersécurité ne devraient jamais se propager au-delà d'un titre. Éliminez les menaces de vos appareils en téléchargeant Malwarebytes dès aujourd'hui.

À propos de l'auteur

Gabriele est ingénieur en recherche sur les logiciels malveillants et adore lutter contre ces derniers. Lorsqu'il ne s'occupe pas de cela, il aime profiter de la nature, de l'art et des animaux.