Gamme DC et Antivirus

Couvre tous les domaines de l'émulation logicielle ou de la virtualisation ainsi que les discussions sur les divers outils associés.

Modérateurs : Papy.G, fneck, Carl

kirion
Messages : 346
Inscription : 22 sept. 2022 03:29

Gamme DC et Antivirus

Message par kirion »

Suite à la suggestion de Daniel j'ouvre donc un nouveau sujet.
Re: Problème avec Robix sur DCExel

Message par Daniel » 06 mars 2024 08:53
La question des antivirus est hors-sujet ici, il faudrait ouvrir un nouveau fil de discussion.
J'ai fais pas mal de tests et j'ai trouvé que bien qu'UPX intervient un petit peu dans le fait que la gamme DC soit considérée comme un virus, ce n'est pas l'essentiel, c'est le compilateur qui semble en cause.

Au final je me suis rendu compte que la version DCTO8 pour raspberry pi n'affole aucun antivirus et est déclarée Clean.

Par contre la même version dcto8.exe est bien détectée comme un virus.
Si j'enlève l'UPX, la version décompressée est toujours détectée comme un virus mais par moins d'antivirus.

Cette version DCTO8 a été compilée avec MINGW32 et gcc 3.4.5

La dernière version de DCMOTO a été compilée avec MINGW -W64, il en est de même pour DCEXEL et DCALICE et d'autres.

Ne serait-il pas possible de compiler un émulateur de la gamme DC avec un autre compilateur gratuit (ce n'est pas ce qui manque) et voir si les problèmes d'antivirus disparaissent ?

Et avant de tester un autre compilateur on pourrait déjà tester 4 versions avec niveaux d'optimisations différents:
gcc -O1 -O2 -O3 -Ofast
Chaque niveau produisant du code différent, certains codes déclenchent peut être les antivirus et pas d'autres.

Vu la vitesse des CPU actuels même du code non optimisé ou très optimisé ne changerait rien aux émulateurs.

On parle de ce problème de compilation ici :

https://stackoverflow.com/questions/623 ... s-defender
https://stackoverflow.com/questions/646 ... s-by-avast
https://security.stackexchange.com/ques ... s-infected

Je note d'ailleurs que dans un des liens cités ci-dessus, un des utilisateurs a constaté que du code optimisé par -O3 ne déclenchait pas son antivirus, mon idée semble donc plausible. Bien qu'il faille vérifier si cela est le cas pour tous les antivirus (avec www.virustotal.com par exemple) :

I came across with the same problem, compiler tdm gcc v9.2.

The following compilation triggers a warning (kaspersky).

gcc temp.c -o temp.exe

The following does not

gcc -O3 temp.c -o temp.exe
Dernière modification par kirion le 10 mars 2024 20:40, modifié 1 fois.
Daniel
Messages : 17426
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Gamme DC et Antivirus

Message par Daniel »

Comme l'a bien expliqué __sam__ la détection de faux positifs est une question de hasard. Un compilateur donnera moins de faux positifs un jour et plus le lendemain. Et, comme kirion l'a écrit, le niveau d'optimisation change la donne pour le même programme et le même compilateur.

Le pire, c'est que le nombre de faux positifs pour un même exe change d'un jour à l'autre. Les antivirus évoluent et modifient leurs règles de détection. De nouveaux antivirus sont créés. Certains faux positifs disparaissent, d'autres apparaissent. C'est pourquoi j'ai renoncé à faire des compilations non détectées. Si elles ne sont pas détectées un jour, elles le seront le lendemain, et réciproquement.

J'ai fait l'expérience avec dcmoto : En enlevant de l'émulateur les versions TO et MO du DOS 3"1/2, aucune détection. En les remettant, cinq ou six détections. Si je refais l'expérience aujourd'hui les résultats seront probablement différents. L'explication de __sam__ (sur les probabilités) est la plus plausible.

Concernant le compilateur : j'utilise MINGW depuis 25 ans et j'ai compilé des milliers de programmes avec. A chaque tentative d'utiliser un autre, par exemple Visual Studio ou cygwin, je n'ai pas retrouvé facilement mes marques, et je suis revenu à MINGW. Je ne dis pas que c'est le meilleur car je n'en connais pas d'autre, mais j'y suis habitué et je ne souhaite pas changer.
Daniel
L'obstacle augmente mon ardeur.
__sam__
Messages : 7989
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Gamme DC et Antivirus

Message par __sam__ »

kirion a écrit : 09 mars 2024 01:28 Au final je me suis rendu compte que la version DCTO8 pour raspberry pi n'affole aucun antivirus et est déclarée Clean, ce n'est donc pas la ROM du TO8 qui affole les antivirus et je suppose qu'il en est de même pour les autres ROM.
C'est normal. Ca n'est pas un executable PC. Il passe au travers de tous les anti-virus tout comme mes exécutables RiscV. Ces fichiers sont traités comme des données par les antivirus.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
kirion
Messages : 346
Inscription : 22 sept. 2022 03:29

Re: Gamme DC et Antivirus

Message par kirion »

D’accord mais si je prends TEO-NG :
http://teo-ng.com/
je n’ai absolument aucun positif sur www.virustotal.com ni pour le zip original, ni pour le fichier teo.exe

et sur InterNxt pareil, aucun positif :
https://internxt.com/virus-scanner

et j’avais déjà essayé il y a un ou deux ans et il n’y avait déjà aucune détection positive.

Donc on en revient toujours au même, pourquoi les autres y arrivent ?
Daniel
Messages : 17426
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Gamme DC et Antivirus

Message par Daniel »

TEO émule un seul ordinateur.

DCMOTO émule 27 ordinateurs, plus 6 contrôleurs Thomson, plus 4 contrôleurs de cartes SD, plus un contrôleur LEGO DACTA, plus un synthétiseur de parole, plus deux cartes son, plus un processeur Hitachi. La probabilité de détecter un faux positif est multipliée par un facteur important.

J'ai un émulateur MO5 sans fioritures inutiles, compilé avec les mêmes outils que dcmoto, il ne produit aucun faux positif. Plus le programme est complexe et plus il intègre des fichiers binaires de ROM, plus il a de (mal)chances d'être détecté.
Daniel
L'obstacle augmente mon ardeur.
kirion
Messages : 346
Inscription : 22 sept. 2022 03:29

Re: Gamme DC et Antivirus

Message par kirion »

Bien restons sur TO8.
Comme je l'ai dit TEO-NG n'affole aucun antivirus.

Mais si je prends DCTO8 aussi bien le .zip que l'.exe affolent les antivirus :
Sélection_027.png
Sélection_027.png (11.78 Kio) Consulté 562 fois
Sélection_029.png
Sélection_029.png (20.74 Kio) Consulté 562 fois
Une vérification dans teo.exe (TEO-NG) montre qu'il a également été compilé avec MINGW-W64 mais depuis un linux (cross dev). Serait-ce la solution, compiler avec mingw-w64 mais depuis un linux?

J'ai un émulateur MO5 sans fioritures inutiles, compilé avec les mêmes outils que dcmoto, il ne produit aucun faux positif. Plus le programme est complexe et plus il intègre des fichiers binaires de ROM, plus il a de (mal)chances d'être détecté.
Pourtant sam a confirmé que DCTO8 raspberry pi est traité comme des data. Les ROM sont donc traitées comme des datas.
Or DCTO8 raspberry pi avec rom intégrée n'a affolé aucun antivirus, ce qui n'est pas le cas de dcto8.exe

J'ai testé le scan de quelques ROM thomson extraites d'émulateurs qui n'ont pas la ROM intégrée dans l'.exe et il n'y a aucune détection.
Pourquoi dis tu que ce sont les ROM qui provoquent de faux positifs?

As tu des exemples de ROM seules qui affoleraient les antivirus ?
Dernière modification par kirion le 10 mars 2024 20:39, modifié 4 fois.
Daniel
Messages : 17426
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Gamme DC et Antivirus

Message par Daniel »

Les ROMs soumises à un antivirus ne sont pas analysées. Elles ne produisent donc pas de faux positifs.
Les ROMs intégrées dans un exécutable sont analysées. Elles produisent des faux positifs.
Si j'enlève les deux premiers octets de l'exécutable il n'est pas analysé.
DCMOTO compacté avec UPX, avec toutes les ROMs et sans les deux premiers octets, est déclaré sans virus.
Daniel
L'obstacle augmente mon ardeur.
kirion
Messages : 346
Inscription : 22 sept. 2022 03:29

Re: Gamme DC et Antivirus

Message par kirion »

Tu as raison je viens de vérifier.
Dans ce cas pourquoi ne pas :

-soit mettre les ROM dans un dossier séparé plutôt que dans l'exécutable?
-soit crypter les ROM dans l'exécutable pour qu'elles ne déclenchent plus de faux positifs?
Daniel
Messages : 17426
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Gamme DC et Antivirus

Message par Daniel »

Là on tourne en rond. J'ai déjà expliqué pourquoi je ne voulais pas mettre les roms à part.
Crypter les roms augmente la chance de provoquer un faux positif, __sam__ l'a déjà expliqué. C'est une question d'entropie.
Daniel
L'obstacle augmente mon ardeur.
kirion
Messages : 346
Inscription : 22 sept. 2022 03:29

Re: Gamme DC et Antivirus

Message par kirion »

il est possible d'avoir un rappel sur le pourquoi tu ne souhaites pas mettre les rom à part ?
__sam__
Messages : 7989
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Gamme DC et Antivirus

Message par __sam__ »

kirion a écrit : 09 mars 2024 15:40
Pourtant sam a confirmé que DCTO8 raspberry pi est traité comme des data. Les ROM sont donc traitées comme des datas.
OUI/NON.

Les roms séparées et les binaires de machines exotiques (raspberry) sont bien vu comme des data. Par contre la rom embarquée dans un exe fait partie de l'executable, et sera analysé.
Je pense avoir prouvé que ce n'est pas la ROM du TO8 qui affole les antivirus
Non ca tout dépend aussi de la façon dont cette rom est embarquée dans l'exe: dans la section ".txt" ou ".code" ou le segment de données read-only, un overlay, ou autre, avec quel byte-order.. les variations sont infinies. On ne peut pas savoir facilement ce qui cloche tant qu'on ne connait pas avec détail le fonctionnement des A/V qui trouvent "une signature". Déjà on peut avoir des infos sur cette signature ? Quelle taille ? Dans quelle section du fichier est-elle cherchée ? est-ce sur le fichier disk, ou le fichier en mémoire que la vérif est faite, etc etc. Tant de paramètres....
il est possible d'avoir un rappel sur le pourquoi tu ne souhaites pas mettre les rom à part ?
Sinon perso les roms séparées c'est un bordel infini. Je déteste MESS pour ca. Il se trimballe bien trop de fichiers au cul. De plus quand tu fais un exe autonome pour un jeu thomson, il te faut bien embarquer la rom, sinon il ne serait plus autonome et perdrait de son intérêt. Moi je suis très content DCMoto soit livré sous la forme d'un ZIP sans installeur et n'ait pas besoin de s'enreg dans la base de registre pour savoir où sont ses rom, et planter quand l'une manque ou est altérée.. Les avoir embarquée fait parti de la puissance et la souplesse de cet outil. Je le copie sur une clef usb pour le lancer en live ailleurs, pas de soucis, pas de fil à la patte.

Et franchement, les anti-virus ne sont pas chiants du tout. Chez moi DCMoto ne trigger pas les anti-virus avec mes configs. Il faut savoir configurer son système ou choisir des A/V utilisant autre chose que des signatures "heuristiques". Il y en a qui font tourner l'outil dans une sand-box le temps qu'une analyse détaillées de ses appels système soit faite, et après t'es plus embêté.
Dernière modification par __sam__ le 09 mars 2024 18:55, modifié 2 fois.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Daniel
Messages : 17426
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Gamme DC et Antivirus

Message par Daniel »

kirion a écrit : 09 mars 2024 18:34 il est possible d'avoir un rappel sur le pourquoi tu ne souhaites pas mettre les rom à part ?
Oui je répète, mais ça commence à me faire perdre beaucoup de temps. J'arrête cette discussion qui ne progresse pas.
__sam__ a écrit ::idea: Ce qu'il faudrait serait d'externaliser les ROMs dans des fichiers binaires à coté de l'exe de sorte que l'émulateur ne contienne plus que du vrai code, nettement moins aléatoire. Les fichiers externes n'étant pas exécutables, ils ne seront pas analysés, et l'exe contenant peu d'aléatoire (s'il n'est pas lui-même compressé) ne matchera aucune signature non plus.
:arrow: Mais ca veut dire que ce sera fini l'émulateur 100% autonome copiable d'un dossier à l'autre sans trimballer derrière lui une ribambelle de fichiers de ROM comme tant d'autres. Mouais bof :|
Daniel a écrit :Comme l'a expliqué __sam__ je pourrais mettre les ROMs des ordinateurs à part, mais outre la complication imposée à l'utilisateur il y a une question de principe. Je ne suis pas responsable des erreurs des antivirus.
Daniel
L'obstacle augmente mon ardeur.
kirion
Messages : 346
Inscription : 22 sept. 2022 03:29

Re: Gamme DC et Antivirus

Message par kirion »

D'accord alors dernière question : tu stockes tes ROM en char, pourquoi ne pas utiliser de l'unicode ou peut-être même plus simplement de l'unsigned int (ou uint16_t), chaque octet de la ROM sera suivi ou précédé de 00.
L'UPX se chargera de compresser le surplus et les antivirus ne verront plus du code virus mais des data.

il te suffirait d'un &0xff pour récupérer l'octet de la rom.
Daniel
Messages : 17426
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Gamme DC et Antivirus

Message par Daniel »

Pour éviter la détection par les antivirus au téléchargement j'ai mis au point une nouvelle méthode de diffusion, sans fichier .exe.
Pour la tester voici un premier fichier pour la version 2024.03.10 de l'émulateur dcmoto :
dcmoto_20240310.zip
(908.62 Kio) Téléchargé 17 fois
virustotal.png
virustotal.png (22.76 Kio) Consulté 411 fois

Les fichiers ne seront plus bloqués par les navigateurs au téléchargement, et le site dcmoto ne sera pas banni par Google Safe Browsing.
Toutefois le fichier .exe est reconstitué sur l'ordinateur de l'utilisateur final, et peut provoquer les foudres de son antivirus.
La parade est simple, il suffit d'ajouter une exception pour dcmoto. La plupart des antivirus le permettent.

Si la méthode fonctionne pour dcmoto et si je n'ai pas de retours négatifs, je l'utiliserai aussi pour mes autres émulateurs.
Daniel
L'obstacle augmente mon ardeur.
kirion
Messages : 346
Inscription : 22 sept. 2022 03:29

Re: Gamme DC et Antivirus

Message par kirion »

Merci Daniel, ca progresse, c'est super !
Alors j'ai effectué différents tests, effectivement le téléchargement se passe sans problème mais l'antivirus se déclenche lors de la création de l'exe.

Ne te serait il pas possible de compiler une version avec widechar (wchar_t ) au lieu de char pour les roms ? Il n'y a même pas besoin de modifier DCMOTO pour qu'il fonctionne en widechar.
Il te suffirait de le compiler et de l'envoyer sur virustotal.com

si avec les widechar il n'est plus détecté comme un virus, tu pourrais inclure la modif widechar en plus de ton .bat

de mon côté j'ai effectué quelques tests avec une chaine hexa détectée comme un virus dans une chaine char[] et dès que je la passe en wchar_t[] il n'y a plus d'alerte virus. je pense réellement que ça peut solutionner le problème (tout seul ou en plus de ton .bat).

qu'en penses tu ?
Répondre