Issue #1 new

Windows 8 certification

agale031176
created an issue

Hi

We have an application created with python2.7 and created into an executable using py2exe. However we are getting an issue with Windows 8 certification due to compiler parameters. We would like to have this application Windows 8 certified but we can't get pass the following warning:

=============================================== Windows security features test

WARNING Binary analyzer • Warning: The binary analyzer test detected the following errors: ◦File C:\Program Files (x86)\TestApp\test.exe has failed the DBCheck check. ◦File C:\Program Files (x86)\TestApp\test.exe has failed the NXCheck check.

• Impact if not fixed: If the app doesn’t use the available Windows protections, it can increase the vulnerability of customer's computer to malware.

• How to fix: Apply the SAFESEH, DYNAMICBASE, and NXCOMPAT options when you link the app. See link below for more information: Fixing Binary Analyzer Errors

========================================================================

In order to fix this issue I had to modify the file msvc9compiler.py by changing the following line from:

self.ldflags_shared = ['/DLL', '/nologo', '/INCREMENTAL:NO']

to

self.ldflags_shared = ['/DLL', '/nologo', '/INCREMENTAL:NO', '/DYNAMICBASE', '/SAFESEH', '/NXCOMPAT']

and rebuild py2exe. Once I have done this the test passed.

I could go about it by having a local patch available to my team but preferably I try to avoid patching the standard python modules.

My question is if there is another way to do this? and whether it would be a good idea to include these flags in future distutils?

Comments (0)

  1. Log in to comment