|
|
#1 |
|
Junior Member
Join Date: Aug 2015
Posts: 5
|
Windows 10 App Certification
Hi,
I have been using Nullsoft 2.46 for years, and have been able to work out most things by doing searches. I was trying to get my app certified for Windows 10, but I was getting the following errors. File C:\Program Files\App\uninstall.exe has failed the DBCheck check. File C:\Program Files\App\uninstall.exe has failed the NXCheck check. File C:\Program Files\App\uninstall.exe has failed the SafeSEHCheck check. I noticed in the release notes for 3.0b1: Changed default DllCharacteristics to TS_AWARE+NO_SEH+NX_COMPAT+DYNAMIC_BASE So I upgrade to 3.0b1 but I am still getting the error: File C:\Program Files\App\uninstall.exe has failed the DBCheck check. I have also tried 3.0b2 with the same result. If anyone has any ideas on how to fix this last error, your help would be appreciated. |
|
|
|
|
|
#2 |
|
Moderator
Join Date: Jun 2002
Location: ${NSISDIR}
Posts: 5,449
|
I assume you have seen this thread where someone was certified?
https://msdn.microsoft.com/library/w.../hh920280.aspx & https://msdn.microsoft.com/en-us/lib.../JJ657973.aspx says "This test is performed on only apps written in managed code, such as by using C# or .NET Framework" for DBCheck but who knows if this is actually true. IntOp $PostCount $PostCount + 1 |
|
|
|
|
|
#3 | ||||
|
Moderator
Join Date: Jun 2002
Location: ${NSISDIR}
Posts: 5,449
|
I'm able to run Windows App Certification Kit and get the "PASSED WITH WARNINGS" result, is this not enough?
Quote:
Quote:
Quote:
Edit: Quote:
* https://github.com/wixtoolset/issues/issues/5171 * https://social.msdn.microsoft.com/Fo...icate-kit-acks * https://wpdev.uservoice.com/forums/1...4393-33-automa * https://msdn.microsoft.com/en-us/lib...ersibleInstall IntOp $PostCount $PostCount + 1 |
||||
|
|
|
|
|
#4 |
|
Junior Member
Join Date: Aug 2015
Posts: 5
|
Thanks Anders,
I had seen the other thread you referenced, but this is just setting the bits, as with 3.0b1. I tried building your sample project but I get a fail on the DBcheck not a warning. I could live with a warning. I have had my app certified on Windows 7, 8, & 8.1. for both 32 and 64bit. With these I had the same issue with the DBcheck but it was just a warning, with Windows 10 I get it as a fail. I'm trying to certify using Windows 10 64bit, looking at the path you used you had a 32bit version of Win10, maybe that is the difference or there is some other issue with my Nullsoft environment. I'm still looking into this. Getting the Dynamic Base working correctly would be the desirable. Thanks again Anthony |
|
|
|
|
|
#5 |
|
Major Dude
Join Date: May 2005
Location: New Zealand
Posts: 916
|
To certify for Win10 64 bit, I thought you had to use a 64 bit installer? You can compile NSIS v3 for 64 bit but it's not officially supported yet.
"Only a MouseHelmet will save you from a MouseTrap" -Jason Ross (Me) NSIS 3 POSIX Ninja Wiki Profile |
|
|
|
|
|
#6 | |
|
Junior Member
Join Date: Aug 2015
Posts: 5
|
Quote:
Having a 32bit installer also allows you to give clean error messages if someone tries to install the 64bit version of your app on a 32bit OS. You can direct them to your web site to download a 32bit version. |
|
|
|
|
|
|
#7 |
|
Moderator
Join Date: Jun 2002
Location: ${NSISDIR}
Posts: 5,449
|
Maybe they want you to set IMAGE_DLLCHARACTERISTICS_HIGH_ENTROPY_VA as well on 64-bit? I don't think you are supposed to set this flag on 32-bit files but you can try by adding PEDllCharacteristics 0x0020 0 to your .nsi...
IntOp $PostCount $PostCount + 1 |
|
|
|
|
|
#8 | |
|
Junior Member
Join Date: Aug 2015
Posts: 5
|
Quote:
I will try to setup a 32bit version of Windows 10 today and see if I get a different result. |
|
|
|
|
|
|
#9 |
|
Moderator
Join Date: Jun 2002
Location: ${NSISDIR}
Posts: 5,449
|
The 32-bit version should not care about that flag at all but you should at least be able to pass with warnings...
IntOp $PostCount $PostCount + 1 |
|
|
|
|
|
#10 |
|
Junior Member
Join Date: Aug 2015
Posts: 5
|
Sorry for the delay in getting back, I setup a 32bit version of Windows 10 and did the Cert test and I also got a Pass with Warnings.
I then decided to build a new 64bit version of Windows 10 and did the Cert test test again and it also Passed with Warnings. All I can put this down to is some buggy MS tools that reported a fail instead of an warning. I also want back to the setup I was having issues with and recheck for updates and everything was up to date. It would still be better if Dynamic Base was fully supported in Nullsoft so it can pass without warnings. If Microsoft tighten the requirements then we are just back here again. I'm now building a Server 2012 R2 to see if I can get it to pass the Server Cert, I had issues with this a while back and just hadn't had time to revisit. Thanks for your help. |
|
|
|
|
|
#11 |
|
Moderator
Join Date: Jun 2002
Location: ${NSISDIR}
Posts: 5,449
|
DEP and ASLR is first and foremost important in programs that communicate over a network/internet (to make it harder for exploits to escape by using ROP chains etc), this is usually not a likely scenario in a uninstaller.
I doubt MS is going to make it a requirement for all applications, there are probably some old VB apps out there that they want to pass to get certified... IntOp $PostCount $PostCount + 1 |
|
|
|
![]() |
|
|||||||
| Thread Tools | Search this Thread |
| Display Modes | |
|
|