Click here to Skip to main content
15,896,111 members
Articles / Desktop Programming / MFC

Driver to Hide Processes and Files

, ,
Rate me:
Please Sign up or sign in to vote.
4.57/5 (145 votes)
17 Aug 2009CPOL12 min read 660.8K   28.6K   369  
In this article, we describe the driver we created to hide processes and files in a system.
// STLport configuration file
// It is internal STLport header - DO NOT include it directly


# define _STLP_UINT32_T unsigned int

# define _STLP_HAS_NO_NEW_C_HEADERS
// # define _STLP_VENDOR_GLOBAL_EXCEPT_STD
// # define _STLP_LONG_LONG


//
// ADDITIONS FOR COMEAU C++, made by Comeau Computing.
// We can be reached through comeau@comeaucomputing.com
// You shouldn't need to change anything below here for Comeau C++.
// If you do, please tell us at comeau@comeaucomputing.com
//
// Changes made here, AND THROUGH ALL FILES, based upon the __COMO__ macro
// (and SIMILAR NAMES INVOLVING COMO).... no doubt some of this will
// change as SGI integrates the changes into their code base since
// some changes are not really Comeau C++ specific, but required to
// make the SGI code compliant with Standard C++).
//
// Testing was done with Comeau C++ 4.2.44 and 4.2.45.2.  Changes were made for
// both Comeau relaxed mode and Comeau strict mode, especially for end user code
// (that is, some of the .cxx files cannot compile in strict mode, because they
// contain extensions to Standard C++, however their object code forms can
// be used once compiled in relaxed mode, even if the end user code uses
// strict mode).
//
// These changes may also work for some earlier versions of Comeau C++,
// though we have not tested them.
//
// Actual mods made under RedHat 6.1 LINUX, should be ok with SuSE too and
// other LINUX's, and older Caldera LINUX, Solaris/SPARC, SunOS, SCO UNIX,
// and NetBSD. Other platforms may be added.  Comeau will also perform
// custom ports for you.
//
// Check libcomo details at http://www.comeaucomputing.com/libcomo and
// http://www.comeaucomputing.com
//
// History of Comeau changes (this is rough, as work was often going on in parallel):
// BETA1 July 14, 2000, Initial port for RedHat 6.1 INTEL/ELF
// BETA2 Aug   4, 2000, Stronger RedHat support
//                      Support for Comeau strict mode for end user code
// BETA3 Aug  22, 2000, Support for other LINUX/INTEL/ELF's, including older ones
// BETA4 Sept  2, 2000, Initial support for SCO UNIX + other UNIX x86 SVR3's
//                      Stronger support for end user Comeau strict mode
// BETA5 Oct   5, 2000, Initial support for Solaris/SPARC
//                      More SCO support (though still incomplete)
// BETA6 Feb   5, 2001, Minor mods to accomodate Comeau C++ 4.2.45.1
// BETA7 Mar  13, 2001, Verified with Comeau C++ 4.2.45.2
//                      Minor NetBSD support
// BETA8 Apr   1. 2001, Initial support for SunOS/SPARC
// BETA9 Apr   7, 2001, Stronger SCO support + other UNIX x86 SVR3's
//                      Mods for an fpos_t problem for some LINUXes
//                      Mods since Destroy did not work in strict mode
// BETA10 Apr  12. 2001, Stronger NetBSD support
//
// PLANNED:
// BETAx TBA  TBA, 2001, NetBSD, UNIXWARE, and Windows support expected
//


#ifdef __linux__

#   define _STLP_NO_NATIVE_MBSTATE_T      1
#   define _STLP_NO_NATIVE_WIDE_FUNCTIONS 1
#   define _STLP_NO_NATIVE_WIDE_STREAMS   1
#   define _STLP_NO_LONG_DOUBLE   1

// Comeau C++ under LINUX/INTEL/ELF
// Preprocess away "long long" routines for now, even in relaxed mode
# define __wcstoull_internal_defined	1
# define __wcstoll_internal_defined	1

#endif /* __COMO__ under __linux__ */

#ifdef __USING_x86SVR3x_WITH_COMO /* SCO et al */
/* UNIX 386+ SVR3 mods made with __USING_x86SVR3x_WITH_COMO
   in other sources, not here */
#    define atan2l atan2
#    define cosl cos
#    define sinl sin
#    define sqrtl sqrt
#    include <math.h>
     inline long double expl(long double arg) { return exp(arg); }
     inline long double logl(long double arg) { return log(arg); }
#    define log10l log10

#    define sinhl sinh
#    define coshl cosh
#    define fabsl fabs
namespace std {
 inline int min(int a, int b) { return a>b ? b : a; }
}
#endif

#ifdef sun
// Comeau C++ under Solaris/SPARC or SunOS

#ifdef solarissparc
#define __USING_SOLARIS_SPARC_WITH_COMO /* show this in the source when grep'ing for COMO */
// Note comowchar.h for Solaris/SPARC wchar stuff

#include <math.h>
#    define sinf sin
#    define sinl sin
#    define sinhf sinh
#    define sinhl sinh
#    define cosf cos
#    define cosl cos
#    define coshf cosh
#    define coshl cosh
#    define atan2l atan2
#    define atan2f atan2
     inline float logf(float arg) { return log(arg); }
     inline long double logl(long double arg) { return log(arg); }
#    define log10f log10
#    define log10l log10
#    define expf exp
     inline long double expl(long double arg) { return exp(arg); }
#    define sqrtf sqrt
#    define sqrtl sqrt
#    define fabsf fabs
#    define fabsl fabs
#else
#define __USING_SUNOS_WITH_COMO

#define __unix 1
#define __EXTENSIONS__ /* This might create undue noise somewhere */
#endif
#endif /* sun */

#if defined(__NetBSD__)
// From non-como #ifdef __GNUC__ above
#undef _STLP_NO_FUNCTION_PTR_IN_CLASS_TEMPLATE
#define __unix 1

#include <sys/cdefs.h>
// Some joker #define'd __END_DECLS as };
#undef __END_DECLS
#define __END_DECLS }

// <sys/stat.h> prob
#include <sys/cdefs.h>
#undef __RENAME
#define __RENAME(x)

#define wchar_t __COMO_WCHAR_T
#include <stddef.h>
#undef wchar_t

#include <math.h>
# ifdef BORIS_DISABLED
#    define atan2l atan2
#    define cosl cos
#    define sinl sin
#    define sqrtl sqrt
     inline long double expl(long double arg) { return exp(arg); }
     inline long double logl(long double arg) { return log(arg); }
#    define log10l log10
#    define sinhl sinh
#    define coshl cosh
#    define fabsl fabs
# endif
#endif /* __NetBSD__ under __COMO__ */

// Shouldn't need to change anything below here for Comeau C++
// If so, tell us at comeau@comeaucomputing.com

#define _STLP_NO_DRAND48

#define _STLP_PARTIAL_SPECIALIZATION_SYNTAX
#define _STLP_NO_USING_CLAUSE_IN_CLASS


#if __COMO_VERSION__ >= 4245
#define _STLP_NO_EXCEPTION_HEADER /**/
#endif
#define _STLP_NO_BAD_ALLOC /**/
#define _STLP_USE_AUTO_PTR_CONVERSIONS /**/

#if __COMO_VERSION__ >= 4245
// Is this needed?
#include <stdexcept.stdh>
//
// ALSO: SEE THE END OF THIS FILE FOR #INCLUDE <IOSTREAM>
//
#endif

// this one is true only with MS
# if defined (_MSC_VER)
#  define _STLP_WCHAR_T_IS_USHORT 1
#  if _MSC_VER <= 1200
#   define _STLP_VENDOR_GLOBAL_CSTD
#  endif
#  if _MSC_VER < 1100
#   define _STLP_NO_BAD_ALLOC 1
#   define _STLP_NO_EXCEPTION_HEADER 1
#   define _STLP_NO_NEW_NEW_HEADER 1
#   define _STLP_NO_NEW_IOSTREAMS 1
#  endif
# endif

// # define __EDG_SWITCHES


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.

Written By
Software Developer (Junior) ApriorIT
Ukraine Ukraine
Sergey Popenko.
22 years old.
The Driver Team`s software developer.
Master of the Applied Math faculty, the Dnipropetrovsk National University, Ukraine.

Comments and Discussions