nihilus / idastealth

http://newgre.net/idastealth
103 stars 33 forks source link

IDAStealth v1.3.3, created 06/28/2011, Jan Newger

CONTENTS OF THIS FILE

INSTALLATION

a) IDAStealth Copy both, HideDebugger.dll and IDAStealth.plw to your IDA plugin directory. Optionally, you can copy the provided HideDebugger.ini from \sample_config to the IDAStealth configuration directory (%APPDATA%\IDAStealth). The example config includes a profile to hide the IDA debugger from the newest version of Themida and ASProtect, respectively.

b) IDAStealthRemote Copy both, IDAStealthRemote.exe and HideDebugger.dll to any directory. No further installation is required.

CONFIGURATION

a) IDAStealth The plugin is configured via the GUI, but you can also directly edit the configuration file, which can be found at %APPDATA%\IDAStealth\HideDebugger.ini The file is created upon startup, so it's not necessary to create it manually.

b) IDAStealthRemote The server doesn't use any persistent configuration. The stealth options are transmitted via TCP by the client side IDA plugin. The TCP port can be configured via command line, i.e. IDAStealthRemote.exe

USAGE

a) IDAStealth The plugin is started as usual from the IDA plugins menu. Note that this menu only appears if a file has been loaded into IDA. The plugin automatically detects if IDA uses remote debugging and will try to connect to the IDAStealthRemote server if that's the case. The configuration options are automatically transferred, so the plugin behaves exactly the same as if it was started with the local debugger.

IMPORTANT: The option "Randomize driver name" should be used with caution! When using this option, you must be sure to NOT have two or more instances of this driver running at the same time, because there is no way for IDAStealth to check if another instance already started this driver. Otherwise your system might crash!

b) IDAStealthRemote Just run the executable as you would when doing remote debugging with IDA. If IDAStealth is enabled, it will automatically work with remote debugging. Make sure, that the remote debugging server is running.

KNOWN ISSUES

The plugin was only thoroughly tested on Windows XP SP3 32-bit. It is designed only for 32-bit applications and doesn't work with 64-bit applications. However, it should also work with Vista/Win7 32-bit, but it wasn't thoroughly tested on these systems. In the remote scenario, the "Swallow DBG_PRINTEXCEPTION" technique doesn't work. The technique "Improved NtClose" doesn't work on 64-bit operating systems. In this case just pass the exception back to the debuggee using IDA. For a list of current issues, visit the IDAStealth issue tracker at https://newgre.net/trac.

COMPILING

Both projects are VS 2008 solutions and compile out of the box, given that WTL[1], boost[2] and the IDA SDK headers are in the include path. The RDTSC driver needs ddkbuild[3] and the Win7 WDK[4]. The driver as well as the plugin itself make use of the diStorm disassembler library[5].

LICENSE

IDAStealth can be freely used without any restrictions. For the diStorm license, see the accompanying license file.

CHANGELOG

06/28/2010 - v1.3.3

09/27/2010 - v1.3.2

08/23/2010 - v1.3.1

07/07/2010 - v1.3

02/15/2010 - v1.2.1

12/15/2009 - v1.2

11/24/2009 - v1.1.1

11/14/2009 - v1.1

03/25/2009 - v1.0

09/15/2008 - v1.0 Beta 3

09/02/2008 - v1.0 Beta 2

07/24/2008 - v1.0 Beta 1

07/14/2008 - v1.0 Alpha 4

07/13/2008 - v1.0 Alpha 3

07/06/2008 - v1.0 Alpha 2

07/04/2008 - v1.0 Alpha

FILES

\bin\IDAStealth --- the plugin and the stealth dll \IDAStealthRemote --- the remote server and the stealth dll \distorm --- the license of the diStorm disassembler library \sample_config --- sample configuration file with pre defined profiles for Themida and ASProtect \src --- source code \HideDebugger --- stealth dll \IDAStealth --- IDA plugin \IDAStealthRemote --- remote server \IniFileAccess --- utility class to read/write ini files \NInjectLib --- library to inject dlls into a process \RDTSCEmu --- kernel mode driver to fake RDTSC return values

[1] WTL - http://wtl.sourceforge.net/ [2] boost - http://www.boost.org/ [3] ddkbuild - http://ddkwizard.assarbad.net/ [4] WDK - http://www.microsoft.com/whdc/devtools/wdk/default.mspx [5] diStorm - http://ragestorm.net/distorm/