Click here to Skip to main content
15,896,448 members
Articles / Programming Languages / C++

Detect Driver

,
Rate me:
Please Sign up or sign in to vote.
5.00/5 (46 votes)
10 Mar 2010CPOL12 min read 110.5K   9.1K   155  
This article is the continue of the previously posted article Hide Driver. Some methods to detect hidden files and processes are described in it
// STLport configuration file
// It is internal STLport header - DO NOT include it directly
// Microsoft Visual C++ 4.0, 4.1, 4.2, 5.0, 6.0, 7.0, 7.1, ICL


// Common features for VC++ 4.0 and higher
# ifdef _M_IA64
#  define _STLP_NATIVE_HEADER(x) <../crt/##x>
#  define _STLP_NATIVE_C_HEADER(x) <../crt/##x>
#  define _STLP_NATIVE_CPP_C_HEADER(x) <../crt/##x>
#  define _STLP_NATIVE_OLD_STREAMS_HEADER(x) <../crt/##x>
#  define _STLP_NATIVE_CPP_RUNTIME_HEADER(header) <../crt/##header>
#  define _STLP_GLOBAL_NEW_HANDLER
# else
#  define _STLP_NATIVE_HEADER(x) <../crt/##x>
#  define _STLP_NATIVE_C_HEADER(x) <../crt/##x>
#  define _STLP_NATIVE_CPP_C_HEADER(x) <../crt/##x>
#  define _STLP_NATIVE_OLD_STREAMS_HEADER(x) <../crt/##x>
#  define _STLP_NATIVE_CPP_RUNTIME_HEADER(header) <../crt/##header>
# endif

# define _STLP_CALL __cdecl

# ifndef _STLP_LONG_LONG
#  define _STLP_LONG_LONG  __int64
# endif

# define _STLP_PRAGMA_ONCE

// these switches depend on compiler flags
# ifndef _CPPUNWIND
#  define _STLP_HAS_NO_EXCEPTIONS 1
# endif

# define _STLP_VENDOR_UNEXPECTED_STD

# if defined ( _MT ) && !defined (_STLP_NO_THREADS)  && !defined (_REENTRANT)
#   define _REENTRANT 1
# endif

# if !defined (_NATIVE_WCHAR_T_DEFINED)
# define _STLP_WCHAR_T_IS_USHORT 1
# endif

# define _STLP_MINIMUM_IMPORT_STD

# ifdef _STLP_MSVC

# ifndef _STLP_MSVC50_COMPATIBILITY
#  define _STLP_MSVC50_COMPATIBILITY   1
# endif

#  define _STLP_DLLEXPORT_NEEDS_PREDECLARATION 1

// # ifndef __BUILDING_STLPORT
// #  define _STLP_USE_TEMPLATE_EXPORT 1
// # endif

# if (_STLP_MSVC >= 1310)
# define _STLP_NO_METHOD_SPECIALIZATION 1
# endif    //    (_STLP_MSVC >= 1310)

#  if (_STLP_MSVC > 1100)
     typedef char __stl_char;
#   define _STLP_DEFAULTCHAR __stl_char
#  endif /* (_STLP_MSVC < 1100 ) */

# if (_STLP_MSVC <= 1310)
# define _STLP_STATIC_CONST_INIT_BUG   1
# endif    //    (_STLP_MSVC <= 1310)

# if (_STLP_MSVC <= 1300)
#  define _STLP_DEFAULT_CONSTRUCTOR_BUG 1
#  define _STLP_HAS_SPECIFIC_PROLOG_EPILOG
#  define _STLP_NO_TYPENAME_IN_TEMPLATE_HEADER
// fails to properly resolve call to sin() from within sin()
#  define _STLP_SAME_FUNCTION_NAME_RESOLUTION_BUG
#  define _STLP_NO_TYPENAME_ON_RETURN_TYPE 1
// boris : not defining this macro for SP5 causes other problems
// #  if !defined (_MSC_FULL_VER) || (_MSC_FULL_VER < 12008804 )
#  define _STLP_NO_USING_FOR_GLOBAL_FUNCTIONS 1
//#  endif
#  define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER 1
#  define _STLP_NO_CLASS_PARTIAL_SPECIALIZATION 1
#  define _STLP_NO_FRIEND_TEMPLATES
// VC++ cannot handle default allocator argument in template constructors
#  define _STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS
// there is no partial spec, and MSVC breaks on simulating it for iterator_traits queries
#  define _STLP_USE_OLD_HP_ITERATOR_QUERIES
// #  define _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS 1
#  define _STLP_NO_QUALIFIED_FRIENDS    1
#  define _STLP_DONT_USE_BOOL_TYPEDEF 1
# endif /* _STLP_MSVC <= 1300 */

# endif /* _STLP_MSVC */

# if (_MSC_VER <= 1310)
#  define _STLP_VENDOR_GLOBAL_CSTD
// They included the necessary coding,
// but the beta still has an issue with template classes
// ok:    class a { static const int v = 2; };
// error: template &lt;class _Tp> class a { static const int v = 2; };
#  if !defined (_STLP_WHOLE_NATIVE_STD) && ! defined (_STLP_REDEFINE_STD)
#    define _STLP_REDEFINE_STD
#  endif
# endif /* (_MSC_VER <= 1310) */

# if (_MSC_VER <= 1200)  // including MSVC 6.0
//  these work, as long they are inline
#  define _STLP_INLINE_MEMBER_TEMPLATES 1
#  define _STLP_NO_MEMBER_TEMPLATE_KEYWORD 1
#  define _STLP_GLOBAL_NEW_HANDLER
#  define _STLP_DONT_RETURN_VOID 1
#  define _STLP_DONT_USE_NESTED_TCLASS_THROUGHT_TPARAM 1
# endif /* (_MSC_VER <= 1200) */

# if ( _MSC_VER<=1010 )
// "bool" is reserved in MSVC 4.1 while <yvals.h> absent, so :
// #    define _STLP_USE_ABBREVS           1
#  define _STLP_NO_BAD_ALLOC
#  define _STLP_HAS_NO_NEW_C_HEADERS 1
#  define _STLP_NO_NEW_NEW_HEADER 1
# elif (_MSC_VER < 1100)
// VC++ 4.2 and higher
#  define _STLP_YVALS_H 1
#  define _STLP_HAS_NO_NEW_IOSTREAMS 1
# endif /* 1010 */

# if defined (_STLP_MSVC) && ( _STLP_MSVC < 1200 ) /* VC++ 6.0 */
// #  define _STLP_NO_MEMBER_TEMPLATES 1
// #  define _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS 1
#  define _STLP_NON_TYPE_TMPL_PARAM_BUG 1
#  define _STLP_THROW_RETURN_BUG 1
#  define _STLP_NO_MEMBER_TEMPLATE_CLASSES 1
# endif

# if defined (_STLP_MSVC) && ( _STLP_MSVC < 1100 )
#  ifndef _STLP_NO_OWN_IOSTREAMS
#   define _STLP_NO_OWN_IOSTREAMS
#   undef  _STLP_OWN_IOSTREAMS
#  endif
// #  define _STLP_NESTED_TYPE_PARAM_BUG 1
// Debug mode does not work for 4.2
#  ifdef _STLP_DEBUG
#   pragma message ("STLport debug mode does not work for VC++ 4.2, turning _STLP_DEBUG off ...")
#    undef _STLP_DEBUG
#  endif
#  define _STLP_NO_BOOL            1
#  define _STLP_NEED_TYPENAME      1
#  define _STLP_NEED_EXPLICIT      1
#   define _STLP_NEED_MUTABLE       1
#   define _STLP_NO_PARTIAL_SPECIALIZATION_SYNTAX
#   define _STLP_LIMITED_DEFAULT_TEMPLATES 1

// up to 4.2, library is in global namespace
#   define _STLP_VENDOR_GLOBAL_STD
#   define _STLP_NONTEMPL_BASE_MATCH_BUG 1
#   define _STLP_BROKEN_USING_DIRECTIVE  1
#   define _STLP_NO_ARROW_OPERATOR
#   define _STLP_NO_SIGNED_BUILTINS 1
#   define _STLP_NO_EXCEPTION_SPEC 1
#   undef  _STLP_DEFAULT_TYPE_PARAM
#   undef  _STLP_HAS_NO_NAMESPACES
#   undef  _STLP_NO_AT_MEMBER_FUNCTION
#   undef  _STLP_NO_MEMBER_TEMPLATES
#   undef  _STLP_NO_MEMBER_TEMPLATE_CLASSES
#   define  _STLP_HAS_NO_NAMESPACES 1
#   define  _STLP_NO_AT_MEMBER_FUNCTION 1
#  define  _STLP_NO_MEMBER_TEMPLATES
#  define  _STLP_NO_MEMBER_TEMPLATE_CLASSES
# endif /* 1100 */

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Chief Technology Officer Apriorit Inc.
United States United States
ApriorIT is a software research and development company specializing in cybersecurity and data management technology engineering. We work for a broad range of clients from Fortune 500 technology leaders to small innovative startups building unique solutions.

As Apriorit offers integrated research&development services for the software projects in such areas as endpoint security, network security, data security, embedded Systems, and virtualization, we have strong kernel and driver development skills, huge system programming expertise, and are reals fans of research projects.

Our specialty is reverse engineering, we apply it for security testing and security-related projects.

A separate department of Apriorit works on large-scale business SaaS solutions, handling tasks from business analysis, data architecture design, and web development to performance optimization and DevOps.

Official site: https://www.apriorit.com
Clutch profile: https://clutch.co/profile/apriorit
This is a Organisation

33 members

Written By
Software Developer Codedgers Inc
Ukraine Ukraine
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions