Folks,
While bundling stunnel with my user application, upon kick off I see this
error message.*1 Is there a way to avoid this security warning? I am
trying to figure out if signing the binaries will escape this situation,
or if it is related to the binary not containing a string table. I
investigated linking the win32 binary with MS Visual Studio 2005 to see if
the presence of the version string info in the binary would help*2, but so
far I have been unable to directly link. I originally built stunnel using
cygwin's mingw32-gcc*3, so linking using MSDEV is not too easy.*4
Thanks
Refs:
*1 "Windows Security Alert. To help protect your computer, Windows
Firewall has blocked some features of this program. Do you want to keep
blocking this program? Name: stunnel Publisher: Unknown"
*2 stunnel/src/version.rc,
// pdelaage TODO 20101111: this file works with MS VC / EVC
// But with MINGW, properties are NOT displayed in Windows Explorer
// although they are embedded in the final exe program.
// anyway, using a .o coming from MS VC does not change anything,
// and linking the gcc version.o with ms tools works!
// so the problem is in fact in gcc-linking, not in version.o.
*2 mingw64-i686-gcc-core 4.5.1-2
Administrator@MSDN-2005-DEV /cygdrive/c/dl/stunnel/stunnel-4.35/src
$ i686-w64-mingw32-gcc-4.5.1 -s -o stunnel.exe file.obj client.obj log.obj
options.obj protocol.obj network.obj resolver.obj ssl.obj ctx.obj
verify.obj sthreads.obj stunnel.obj gui.obj resources.obj
-L/cygdrive/c/openssl/lib -L/cygdrive/c/dl/stunnel/zlib-1.2.5 -lcrypto.dll
-lssl.dll -lz -lws2_32 -lgdi32 -mwindows -v
Using built-in specs.
COLLECT_GCC=i686-w64-mingw32-gcc-4.5.1
COLLECT_LTO_WRAPPER=/usr/lib/gcc/i686-w64-mingw32/4.5.1/lto-wrapper.exe
Target: i686-w64-mingw32
Configured with:
/cygdrive/c/nnnew/gcc32/mingw64-i686-gcc-4.5.1-2/src/gcc-4.5.1/configure
--srcdir=/cygdrive/c/nnnew/gcc32/mingw64-i686-gcc-4.5.1-2/src/gcc-4.5.1
--prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin
--libexecdir=/usr/lib --datadir=/usr/share --localstatedir=/var
--sysconfdir=/etc --datarootdir=/usr/share
--docdir=/usr/share/doc/mingw64-i686-gcc -C --build=i686-pc-cygwin
--host=i686-pc-cygwin --target=i686-w64-mingw32
--with-sysroot=/usr/i686-w64-mingw32/sys-root
--with-build-sysroot=/usr/i686-w64-mingw32/sys-root --disable-multilib
--disable-win32-registry --enable-languages=c,ada,c++,fortran,objc,obj-c++
--enable-fully-dynamic-strings --enable-libgomp --enable-sjlj-exceptions
--enable-version-specific-runtime-libs --with-dwarf2
--enable-decimal-float=bid --enable-lto
Thread model: win32
gcc version 4.5.1 (GCC)
COMPILER_PATH=/usr/lib/gcc/i686-w64-mingw32/4.5.1/:/usr/lib/gcc/i686-w64-mingw32/4.5.1/:/usr/lib/gcc/i686-w64-mingw32/:/usr/lib/gcc/i686-w64-mingw32/4.5.1/:/usr/lib/gcc/i686-w64-mingw32/:/usr/lib/gcc/i686-w64-mingw32/4.5.1/../../../../i686-w64-mingw32/bin/
LIBRARY_PATH=/usr/lib/gcc/i686-w64-mingw32/4.5.1/:/usr/lib/gcc/i686-w64-mingw32/4.5.1/../../../../i686-w64-mingw32/lib/../lib32/:/usr/lib/gcc/i686-w64-mingw32/4.5.1/../../../../i686-w64-mingw32/lib/:/usr/i686-w64-mingw32/sys-root/mingw/lib/
COLLECT_GCC_OPTIONS='-s' '-o' 'stunnel.exe' '-L/cygdrive/c/openssl/lib'
'-L/cygdrive/c/dl/stunnel/zlib-1.2.5' '-mwindows' '-v' '-mtune=generic'
'-march=pentiumpro'
/usr/lib/gcc/i686-w64-mingw32/4.5.1/collect2.exe
--sysroot=/usr/i686-w64-mingw32/sys-root -m i386pe --subsystem windows
-Bdynamic -o stunnel.exe -s
/usr/i686-w64-mingw32/sys-root/mingw/lib/crt2.o
/usr/lib/gcc/i686-w64-mingw32/4.5.1/crtbegin.o -L/cygdrive/c/openssl/lib
-L/cygdrive/c/dl/stunnel/zlib-1.2.5 -L/usr/lib/gcc/i686-w64-mingw32/4.5.1
-L/usr/lib/gcc/i686-w64-mingw32/4.5.1/../../../../i686-w64-mingw32/lib/../lib32
-L/usr/lib/gcc/i686-w64-mingw32/4.5.1/../../../../i686-w64-mingw32/lib
-L/usr/i686-w64-mingw32/sys-root/mingw/lib file.obj client.obj log.obj
options.obj protocol.obj network.obj resolver.obj ssl.obj ctx.obj
verify.obj sthreads.obj stunnel.obj gui.obj resources.obj -lcrypto.dll
-lssl.dll -lz -lws2_32 -lgdi32 -lmingw32 -lgcc_eh -lgcc -lmoldname
-lmingwex -lmsvcrt -lgdi32 -lcomdlg32 -luser32 -lkernel32 -ladvapi32
-lshell32 -lmingw32 -lgcc_eh -lgcc -lmoldname -lmingwex -lmsvcrt
/usr/lib/gcc/i686-w64-mingw32/4.5.1/crtend.o
Administrator@MSDN-2005-DEV /cygdrive/c/dl/stunnel/stunnel-4.35/src
$
*4 Link attempt under windows:
C:\dl\stunnel\stunnel-4.35\src>link /libpath:"C:\openssl\lib"
/libpath:"c:\dl\stunnel\zlib-1.2.5" /machine:I386 /nologo
/out:"stunnel.exe" /incremental:no /release /mapinfo:exports
/subsystem:windows /opt:ref /opt:icf wsock32.lib kernel32.lib user32.lib
gdi32.lib comdlg32.lib advapi32.lib shell32.lib msvcrt.lib libcmt.lib
libcrypto.a libssl.a libz.a file.obj client.obj log.obj options.obj
protocol.obj network.obj resolver.obj ssl.obj ctx.obj verify.obj
sthreads.obj stunnel.obj gui.obj resources.obj
msvcrt.lib(_stat.obj) : warning LNK4078: multiple '.drectve' sections
found with different attributes (00000A00)
options.obj : error LNK2019: unresolved external symbol ___chkstk
referenced in function _parse_conf
gui.obj : error LNK2019: unresolved external symbol _strdup referenced in
function _WinMain@16
libcrypto.a(asn_mime.o) : error LNK2001: unresolved external symbol __alloca
libcrypto.a(bss_file.o) : error LNK2019: unresolved external symbol
__alloca referenced in function _BIO_new_file
libcrypto.a(cryptlib.o) : error LNK2001: unresolved external symbol __alloca
libcrypto.a(err_prn.o) : error LNK2001: unresolved external symbol __alloca
libcrypto.a(bn_prime.o) : error LNK2001: unresolved external symbol __alloca
libcrypto.a(b_print.o) : error LNK2019: unresolved external symbol
___umoddi3 referenced in function _fmtint
libcrypto.a(bn_word.o) : error LNK2001: unresolved external symbol ___umoddi3
libcrypto.a(b_print.o) : error LNK2019: unresolved external symbol
___udivdi3 referenced in function _fmtint
stunnel.exe : fatal error LNK1120: 5 unresolved externals
C:\dl\stunnel\stunnel-4.35\src>