Hi,
I spent a few hours investigating this issue, here is what I was able to
deduce:
1) Windows Defender is up to date on the build machine and does not
identify threats there.
2) The PyInstaller version used in 0.4.2 and 0.4.3 packages is the same.
3) By binary compare, the executable x86 code in the .exe files is the
same between versions. Only embedded Python code changes.
4) Build #98 causes trojan detection even though #99 does not:
https://jpa.kapsi.fi/jenkins/job/nanopb/job/nanopb%20windows/98/
https://jpa.kapsi.fi/jenkins/job/nanopb/job/nanopb%20windows/99/
Those were built on same machine 27 minutes apart, and the only
difference is the version number in the Python code.
Because the string "0.4.4-dev" is longer than "0.4.3", this changes
alignment for the rest of the binary, which somehow affects the
detection.
However, that's as far as I could get. It is very annoying that Windows
Defender does not tell any details about what it has detected.
I have now updated PyInstaller to 4.0 and rebuilt it locally. Currently
Windows Defender seems happy with it, though some other programs still
consider it suspicious. That's probably due to the way PyInstaller
embeds Python code inside the .exe.
There is an updated nanopb-0.4.3-p1-windows-x86.zip available for
download, sha256 hash is
caab511820b621d844042f7e0857a3dde230798f76d628861ebcfb3f3a7ecca8
--
Petteri