Click here to Skip to main content
Click here to Skip to main content
Add your own
alternative version
Go to top

Detect Driver

, , 10 Mar 2010
This article is the continue of the previously posted article Hide Driver. Some methods to detect hidden files and processes are described in it
DetectDriverBin.zip
DetectDriverBin
DetectDriverBin
DetectDriver.sys
DetectDriverGUI.exe
HideDriver.sys
HideDriverGUI.exe
DetectDriverSrc.zip
DetectDriverSrc
DetectDriver
src
Common
DetectDriver
Makefile
Sources
DetectDriverGUI
GUI.APS
res
GUI.ico
GUI.manifest
GUIDoc.ico
TabBarCtrl.inl
drvCppLib
lib_copy
atlssup.obj
chkesp.obj
chkstk.obj
conv.lib
eh.lib
eh3valid.obj
enable.obj
exsup.obj
exsup2.obj
exsup3.obj
inp.obj
lldiv.obj
lldvrm.obj
llmul.obj
llrem.obj
llshl.obj
llshr.obj
longjmp.obj
matherr.obj
memccpy.obj
memchr.obj
memcmp.obj
memcpy.obj
memmove.obj
memset.obj
outp.obj
rtc.lib
sehprolg.obj
sehsupp.obj
setjmp.obj
setjmp3.obj
setjmpex.obj
strcat.obj
strchr.obj
strcmp.obj
strcspn.obj
strdup.obj
strlen.obj
strncat.obj
strncmp.obj
strncpy.obj
strnset.obj
strpbrk.obj
strrchr.obj
strrev.obj
strset.obj
strspn.obj
strstr.obj
tlssup.obj
tran.lib
ulldiv.obj
ulldvrm.obj
ullrem.obj
ullshr.obj
_memicmp.obj
_stricmp.obj
_strnicm.obj
MAKEFILE
Sources
drvCppLibTest
makefile
sources
drvSingleModeTest
Makefile
Sources
drvUtils
Makefile
Sources
HideDriver
Makefile
Sources
HideDriverGUI
GUI.APS
HideDriverGUI.idc
res
GUI.ico
GUI.manifest
GUIDoc.ico
TabBarCtrl.inl
STLPort
algorithm
BC50
bak
make_bc50.sh
README
using
bitset
cassert
cctype
cerrno
cfloat
climits
clocale
cmath
complex
config
new_compiler
configure
configure.in
README
stlconf.h.in
unconfigure
stlcomp.h.orig
stl_icc.h.orig
csetjmp
csignal
cstdarg
cstddef
cstdio
cstdlib
cstring
ctime
cwchar
cwctype
deque
export
export.sun
fstream
functional
hash_map
hash_set
iomanip
ios
iosfwd
iostream
istream
iterator
limits
list
locale
map
memory
new
numeric
old_hp
export
ostream
pthread_alloc
queue
rope
set
slist
sstream
stack
stdexcept
stdio_streambuf
stl
debug
wrappers
streambuf
string
strstream
using
cstring
export
fstream
h
iomanip
ios
iosfwd
iostream
istream
locale
ostream
sstream
streambuf
strstream
utility
valarray
vector
wrap_std
complex
export
fstream
h
iomanip
ios
iosfwd
iostream
istream
locale
ostream
sstream
streambuf
strstream
xstring_
Utils
UtilsPortable
UtilsPortableUnitTest
/*
 * Copyright (c) 1999, 2000
 * Boris Fomitchev
 *
 * This material is provided "as is", with absolutely no warranty expressed
 * or implied. Any use is at your own risk.
 *
 * Permission to use or copy this software for any purpose is hereby granted 
 * without fee, provided the above notices are retained on all copies.
 * Permission to modify the code and to distribute modified code is granted,
 * provided the above notices are retained, and a notice that the code was
 * modified is included with the above copyright notice.
 *
 */

/* NOTE: This is an internal header file, included by other STL headers.
 *   You should not attempt to use it directly.
 */

#ifndef _STLP_INTERNAL_WRAP_HASH_SET_H
#define _STLP_INTERNAL_WRAP_HASH_SET_H

#ifndef _STLP_INTERNAL_HASH_SET_H
# include <stl/_hash_set.h>
#endif

# ifdef _STLP_USE_NAMESPACES
namespace STLPORT { 
# endif

#  if defined (_STLP_MINIMUM_DEFAULT_TEMPLATE_PARAMS)
#   define __HS_TEMPLATE_HEADER  template <class _Value>
#   define __HS_ARGUMENTS        _Value
#   define __HS_BASE_ARGUMENTS   _Value, hash<_Value>, equal_to<_Value>, _STLP_DEFAULT_ALLOCATOR(_Value)
#  else
#   define __HS_TEMPLATE_HEADER  template <class _Value, class _HashFcn, class _EqualKey >
#   define __HS_ARGUMENTS        _Value, _HashFcn, _EqualKey
#   define __HS_BASE_ARGUMENTS   _Value, _HashFcn, _EqualKey, _STLP_DEFAULT_ALLOCATOR(_Value)
#  endif


#  define __HS_SUPER  __hash_set< __HS_BASE_ARGUMENTS >
#  define __HMS_SUPER __hash_multiset< __HS_BASE_ARGUMENTS >


// provide a "default" hash_set adaptor
__HS_TEMPLATE_HEADER
class hash_set : public __HS_SUPER 
{
  typedef hash_set< __HS_ARGUMENTS > _Self;
public:
  typedef  __HS_SUPER _Super;
  __IMPORT_WITH_ITERATORS(_Super)
  typedef typename _Super::key_type key_type;
  typedef typename _Super::hasher hasher;
  typedef typename _Super::key_equal key_equal;
  hash_set() {}
  hash_set(size_type n) : __HS_SUPER(n) {}
  hash_set(size_type n, const hasher& hf) : __HS_SUPER(n, hf) {}
  hash_set(size_type n, const hasher& hf, const key_equal& eql): __HS_SUPER(n, hf, eql) {}

  hash_set(const value_type* f, const value_type* l) : __HS_SUPER(f,l) {}
  hash_set(const value_type* f, const value_type* l, size_type n): __HS_SUPER(f,l,n) {}
  hash_set(const value_type* f, const value_type* l, size_type n,
           const hasher& hf) : __HS_SUPER(f,l,n,hf) {}
  hash_set(const value_type* f, const value_type* l, size_type n,
           const hasher& hf, const key_equal& eql) : __HS_SUPER(f,l,n,hf, eql) {}

  hash_set(const_iterator f, const_iterator l) : __HS_SUPER(f,l) { }
  hash_set(const_iterator f, const_iterator l, size_type n) : __HS_SUPER(f,l,n) { }
  hash_set(const_iterator f, const_iterator l, size_type n,
           const hasher& hf) : __HS_SUPER(f, l, n, hf) { }
  hash_set(const_iterator f, const_iterator l, size_type n,
           const hasher& hf, const key_equal& eql) : __HS_SUPER(f, l, n, hf, eql) { }
# if defined (_STLP_BASE_MATCH_BUG)
    friend inline bool operator== _STLP_NULL_TMPL_ARGS (const _Self& hs1, const _Self& hs2);
# endif
};

# if defined (_STLP_BASE_MATCH_BUG)
__HS_TEMPLATE_HEADER
inline bool operator==(const hash_set< __HS_ARGUMENTS >& hs1, 
                       const hash_set< __HS_ARGUMENTS >& hs2)
{
    typedef __HS_SUPER _Super;
    return (const _Super&)hs1 == (const _Super&)hs2; 
}
# endif

// provide a "default" hash_multiset adaptor
__HS_TEMPLATE_HEADER
class hash_multiset : public __HMS_SUPER
{
  typedef hash_multiset< __HS_ARGUMENTS > _Self;
public:
  typedef __HMS_SUPER _Super;
  __IMPORT_WITH_ITERATORS(_Super)
  typedef typename _Super::key_type key_type;
  typedef typename _Super::hasher hasher;
  typedef typename _Super::key_equal key_equal;

  hash_multiset() {}
  hash_multiset(size_type __n) : __HMS_SUPER(__n) {}
  hash_multiset(size_type __n, const hasher& __hf) : __HMS_SUPER(__n, __hf) {}
  hash_multiset(size_type __n, const hasher& __hf, const key_equal& __eql): __HMS_SUPER(__n, __hf, __eql) {}

  hash_multiset(const value_type* __f, const value_type* __l) : __HMS_SUPER(__f,__l) {}
  hash_multiset(const value_type* __f, const value_type* __l, size_type __n): __HMS_SUPER(__f,__l,__n) {}
  hash_multiset(const value_type* __f, const value_type* __l, size_type __n,
           const hasher& __hf) : __HMS_SUPER(__f,__l,__n,__hf) {}
  hash_multiset(const value_type* __f, const value_type* __l, size_type __n,
           const hasher& __hf, const key_equal& __eql) : __HMS_SUPER(__f,__l,__n,__hf, __eql) {}

  hash_multiset(const_iterator __f, const_iterator __l) : __HMS_SUPER(__f,__l) { }
  hash_multiset(const_iterator __f, const_iterator __l, size_type __n) : __HMS_SUPER(__f,__l,__n) { }
  hash_multiset(const_iterator __f, const_iterator __l, size_type __n,
           const hasher& __hf) : __HMS_SUPER(__f, __l, __n, __hf) { }
  hash_multiset(const_iterator __f, const_iterator __l, size_type __n,
           const hasher& __hf, const key_equal& __eql) : __HMS_SUPER(__f, __l, __n, __hf, __eql) { }
# if defined (_STLP_BASE_MATCH_BUG)
  friend inline bool operator== _STLP_NULL_TMPL_ARGS (const _Self& __hs1, const _Self& __hs2);
# endif
};

# if defined (_STLP_BASE_MATCH_BUG)
__HS_TEMPLATE_HEADER
inline bool operator==(const hash_multiset< __HS_ARGUMENTS >& __hs1, 
                       const hash_multiset< __HS_ARGUMENTS >& __hs2)
{
    typedef __HMS_SUPER  __s;
    return _STLP_STD::operator==((const __s&)__hs1,(const __s&)__hs2);
}
# endif


# undef __HS_SUPER
# undef __HMS_SUPER
# undef __HS_ARGUMENTS
# undef __HS_BASE_ARGUMENTS
# undef __HS_TEMPLATE_HEADER

# ifdef _STLP_USE_NAMESPACES
} /* namespace STLPORT */
# endif

#endif /* _STLP_INTERNAL_HASH_SET_H */

// Local Variables:
// mode:C++
// End:

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)

Share

About the Authors

Apriorit Inc
Apriorit Inc.
Ukraine Ukraine
ApriorIT is a Software Research and Development company that works in advanced knowledge-intensive scopes.
 
Company offers integrated research&development services for the software projects in such directions as Corporate Security, Remote Control, Mobile Development, Embedded Systems, Virtualization, Drivers and others.
 
Official site http://www.apriorit.com
Group type: Organisation

31 members

Follow on   LinkedIn

Ivan Romanenko
Software Developer Codedgers Inc
Ukraine Ukraine
No Biography provided

| Advertise | Privacy | Mobile
Web04 | 2.8.140926.1 | Last Updated 10 Mar 2010
Article Copyright 2010 by Apriorit Inc, Ivan Romanenko
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid