Collectives™ on Stack Overflow

Find centralized, trusted content and collaborate around the technologies you use most.

Learn more about Collectives

Teams

Q&A for work

Connect and share knowledge within a single location that is structured and easy to search.

Learn more about Teams

My software is a .NET application. The original .exe compiled with Visual Studio works fine and Microsoft Defender has nothing to say about it or any of the dependencies.

I made an installer with INNO Setup, that has been working fine until now, on a bunch of different machines.

The installer deploys my two .exe (the main app and an admin tool) and my own libraries, a few other libraries (Helix Toolkit, Triangles.net), and some libraries from .NET 5.0 (so that the framework is not needed for an offline install).

Since this morning, I have the following :

  • one of the installed .exe is seen as a Trojan by Microsoft Defender, and is put in quarantine ;
  • when I put the original .exe back in the Program Files directory manually, no Trojan is detected (even when i manually test the directory).
  • To be clear :

  • no malware is detected in the installer
  • no malware is detected in the original file
  • only the file installed by INNO SETUP is concerned
  • Is it possible that Inno Setup put that Trojan in my exe ? If so, what could I do to prevent or circumvent it ?

    EDIT The more I investigate this, the less I understand what Inno Setup does. My original exe file weighs only 280 Ko, and the exe file installed by Inno Setup weighs 132 Mo. And, again, the Trojan is ONLY detected in the exe installed by inno setup.

    Screen cap

    sorry for the french OS

    The trojan description is :

    https://www.microsoft.com/en-us/wdsi/threats/malware-encyclopedia-description?name=Trojan%3aScript%2fWacatac.B!ml&threatid=2147735503

    EDIT : the inno setup installer is now seen as containing the trojan and put in quarantine. If the anti-malware engine thinks your executable looks suspicious, then sure, it would block it. You would need to inform the vendor of a false-positive or manually unblock in that case. (Digitially signing your executables and installers using a code-signing certificate from a validated CA is another very good solution, although this is not free.) Bill_Stewart Aug 18, 2021 at 15:37 I pay for a 3 year code signing certificate and whitelist each installer with the avast ftp server. Andrew Truckle Aug 18, 2021 at 19:11

    This is a false positive alarm.

    Report your software as safe to several AV companies and wait till the update their databases.

    Also it helps if the software is signed with certificate, has many users/downloads and everyone reports it as safe.

    Ok for reporting and signing, but I don't understand why there is no Trojan detected in my original exe, and only in the much heavier exe installed by Inno Setup. See my edit about the file size, too. geriwald Aug 19, 2021 at 7:10 Setup is also an executable and the AV software may see some binary operation e.g. writing to files or folders, working in registry or anything suspicious. Slappy Aug 21, 2021 at 4:04

    My .net 6 app was flagged with the same Trojan. Defender had no issues when my code was just in the bin\release folder, but after publishing it to a folder and letting Visual Studio create a single executable, Defender started showing this false positive. For me the solution was simply to strong name my main exe assembly. This seemed to change the final resulting exe signature enough as to not get flagged anymore.

    Please add code directly into answer , rather than screenshot. It would be more helpfull to other users when reading your answer. Mr.SwiftOak Apr 22, 2022 at 7:23 Given he's showing lines to remove, rather than lines that need typing - I'm not sure why code is better than a screenshot? Dan Dec 2, 2022 at 14:48 @PaulSanders - That still doesn't make it easier for the reader though. My point was just that in this context, a screenshot is fine. The reader would never need to copy and paste this code - the Op was showing what lines to remove. Dan Jun 9 at 5:53

    Thanks for contributing an answer to Stack Overflow!

    • Please be sure to answer the question . Provide details and share your research!

    But avoid

    • Asking for help, clarification, or responding to other answers.
    • Making statements based on opinion; back them up with references or personal experience.

    To learn more, see our tips on writing great answers .