> -----Original Message----- > From: sqlite-users-bounces at mailinglists.sqlite.org [mailto:sqlite-users- > bounces at mailinglists.sqlite.org] On Behalf Of Keith Medcalf > Sent: vrijdag 3 april 2015 01:51 > To: General Discussion of SQLite Database > Subject: Re: [sqlite] Windows 8.x security requirements / SafeSEHCheck - > NXCheck - DBCheck > > > BTW, I have verified that these options all work as described and the options > are recognized and processed properly by Windows, and that BinScope is > happy: > > Failed checks > d:\source\sqlite\sqlite3.dll - SafeSEHCheck ( FAIL ) > > Passed checks > d:\source\sqlite\sqlite3.dll - NXCheck ( PASS ) This makes all the allocated memory and stack not-executable
> d:\source\sqlite\sqlite3.dll - DBCheck ( PASS ) > (Note, position independent code (PIC) is by definition loadable at any base. > Microsoft is just several decades behind in generating position independent > code.) And this makes it possible to load the DLL above 2 GB, which by default isn't enabled because too much existing legacy code still casts pointers to integers and back.. Another opt-in flag in the header, to allow existing programs to still work on bigger machines. SafeSEH is a similar flag for Structured Exception Handling. Without this flag the stack is unwound on exceptions by using debugger tricks and information stored on the stack itself. When this flag is set the compiler promises to provide all this information in a parsable format somewhere in the binary. This improves performance and reliability on these exceptions. But as far as I know Sqlite doesn't use structured exception handling at all. Perhaps MingW supports a flag of just telling that, if it doesn't support creating these tables. (In Windows x86_64 these tables are always required, so this flag doesn't apply there) Windows 8.1 and Windows 10 will add another feature like this where all callback function pointers are stored in a central table for verification if a passed callback function is really to the intended code. (As far as I know this is currently only supported by internal and pre-release versions of the MSVC compiler) Bert