Difference between pages "Microsoft PocketPC" and "Mdd"

From ForensicsWiki
(Difference between pages)
Jump to: navigation, search
(Just wanted to leave this up for a day or two, in case someone was wondering where their typing went.)
 
(Can't Use Network Share in Vista)
 
Line 1: Line 1:
__TOC__
+
{{Deprecated Software}}
  
=Overview=
+
{{Infobox_Software |
A Pocket PC is commonly referred to as a handheld computer that runs a version of Microsoft’s proprietary mobile operating systems.
+
  name = mdd |
 +
  maintainer = [[ManTech|ManTech International Corporation]] |
 +
  os = {{Windows}} |
 +
  genre = {{Memory imaging}} |
 +
  license = {{GPL}} |
 +
  website = [http://sourceforge.net/projects/mdd/ sourceforge.net/projects/mdd/] |
 +
}}
  
[[Image:Pocketpc.jpg|thumb|Acer Pocket PC]]
+
'''mdd''', also known as '''[[ManTech|ManTech dd]]''' or '''Memory dd''', is a command line program to acquire an image of the memory of a running [[Windows]] computer. The program has been included in the [[Helix]] incident response tool.
  
Microsoft Pocket PC, sometimes referred to as P/PC or PPC, is based upon the Windows CE framework.  Variants of this operating system include versions such as Pocket PC 2000, Pocket PC 2002, Windows Mobile 2003/2003 SE, and Windows Mobile 5.0. Variants also exist for [[SmartPhones]], such as Windows Mobile 2003 Smartphone edition.
+
== Status ==
 +
The current version of mdd (mdd_1.3.exe) runs on Window XP to SP3 and Vista to SP 2, and may run on other versions.
  
One of the key benefits of Microsoft's Windows Mobile platform is file format compatibility with the desktop versions of the company's productivity software.  Mobile versions of Microsoft software, such as Pocket Word, Pocket Excel, and Pocket PowerPoint, allow individuals to view and edit these files outside of the home and office.  
+
The driver uses the [[Memory Imaging| Physical Memory Object Memory Imaging Mehod]] and returns a file handle to a user-mode program via an IOCTL on the device file named:
 +
<pre>
 +
\\.\memdd
 +
</pre>
  
Another benefit is integration with Microsoft's cross-platform solution, the .NET Framework.  The .NET Framework and its associated class libraries handle things such as memory management, file I/O, and many other functions.  The .NET Framework allows programmers to develop code in one of several .NET languages, such as C# and VB.NET.  Pocket PCs run a simplified version of the framework called the .NET Compact Framework.
+
Once the file handle has been returned the driver and associated memdd device is no longer required and can be removed, which is what the mdd utility does.
  
In order to maintain synchronization and connectivity with desktop computers, Microsft developed the ActiveSync program.  The user merely has to connect the Pocket PC to the desktop computer in order to synchronize items such as appointments, contact lists, and even multimedia files.
+
== Building from source ==
 +
# Load the x64 Free Build Environment from the WDK (in start menu)
 +
# Go to the mdd directory, e.g. C:\src\mdd\driver\mdd\ and run build
 +
# You should now have mdd.sys in C:\src\mdd\driver\mdd\objfre_win7_amd64\amd64
  
In 2001, [[PDAs]] running Palm OS variants held a market share of about 72%, while Pocket PC held a meager 15% of the market. However, by the fourth quarter of 2004, Microsoft Pocket PC and Palm OS were practically tied with regards to market share -- Pocket PC-based devices had a market share of 40.2% while Palm OS claimed 40.7% of the market. This upward trend clearly illustrates the growing popularity of Pocket PC-based devices, and thus the increased likelihood that one will encounter such a device in the field.
+
=== Signing the driver ===
 +
* Make sure the WDK is installed, you need that for the signing.
 +
* Get the right cross certificate file, see [http://msdn.microsoft.com/en-us/windows/hardware/gg487315 Cross-Certificates for Kernel Mode Code Signing]
 +
* Convert the key you have to pfx, if its cert + key you want:
 +
** setup a secure spot to put the private key, this should not be on corp or unprotected at any time
 +
<pre>
 +
openssl pkcs12 -export -out out.pfx -inkey in.key -in in.crt -certfile ca.crt
 +
</pre>
 +
** use a strong password
 +
** shred the .key immediately after use
 +
* Sign the driver by running:
 +
<pre>
 +
signTool sign /v /ac <crosscertificatefile> /f <pathtopfx> /p <pfx password> /t http://timestamp.verisign.com/scripts/timestamp.dll <driver.sys>
 +
</pre>
  
 +
Also see: [http://www.microsoft.com/whdc/winlogo/drvsign/kmsigning.mspx Digital Signatures for Kernel Modules on Windows]
  
== History ==
+
== Usage ==
 +
To execute mdd, you must start cmd.exe. The options are:
 +
* -o ''filename'' - required to actually run mdd
 +
* -w - license information
 +
* -v - verbose
  
Windows CE, which serves as the framework for the Pocket PC operating systems, began its life in November of 1996. The NEC MobilePro 200 and the Casio A-10 were the first two PDA-type devices available with this early version of the operating system, which was dubbed Handheld PC 1.0.
+
To run mdd, the account you are using must have administrator access to the machine you wish to image (however, it does not have to be the Administrator account; it only needs to be in the local Administrator group). The program works by installing a service, called mdd, although see below for problems.
  
Subsequently, Microsoft released iterations of its mobile operating systems with names such as Handheld PC 2.0 (1997), Palm-Size PC 2.0 (1998), Handheld PC Professional Edition (1998).
+
== Known Issues ==
 +
These are the known problems with mdd.
 +
===Error 1073===
 +
This is a Windows Service Manager error. mdd executes by registering itself as a service, so it can run as administrator, although this does not mean you can run mdd without having administrator access. At the end of a normal execution, the service is deleted. However, mdd can accidentally leave the service installed, and this prevents further imaging. This could be caused by the system crashing (or an intentional system crash) during imaging, or by attempting to stop the imaging with control-c.
 +
If this happens, a knowledgeable Windows user will open up the Services tab in Computer Manager, but unfortunately, Windows has a wonderful feature that allows services, when they are registered, to state whether or not they wish to be seen in the Service Manager. This amazing concept allows services to run less visibly, and should be considered a class-a security flaw.
 +
Fortunately, there's a way around this, using the command line (cmd.exe).
 +
* Run cmd.exe
 +
* In cmd.exe, run "sc help" to see the service manager command line tool
 +
* Run "sc query" to see all of the currently registered services, but note that this list will overflow the default line buffer of cmd.exe (this is adjustable, but not necessary for our purposes)
 +
* Run "sc query mdd" and - ta-da - you'll see the mdd service
 +
* Run "sc delete mdd" and it's gone, and mdd can now be run again.
  
As development of Windows CE continued, manufacturers began to build more esoteric devices around it, such as internet TV set-top boxes and web-enabled telephones.
+
===Error 1062===
 +
John Judd will be entering text here.
  
Pocket PC officially began its public life when it was previewed at the Consumer Electronics Show in 2000.  Codenamed "Rapier", the first version of the Pocket PC operating system was simply named Pocket PC.
+
===Can't Use Network Share in Vista===
 
+
In Vista, even if you are in the administrator group, you do not necessarily run programs with administrator access (this is actually a major improvement to the security model of Windows). You can start programs, including cmd.exe, with admin privileges, but in this case, that won't help. You will not be able to image to a Network Share from Vista. There is no known workaround. This problem may exist in Windows 7.
=Pocket PC Variants=
+
 
+
==Pocket PC 2000==
+
 
+
Pocket PC 2000, based on Micrsoft's Windows CE 3.0 platform, was a first step towards the familiar appearance and functionality that is offered by Windows Mobile 5.0.  Devices running Pocket PC 2000 ranged from the Askey PC010, which had a 16-color grayscale screen with no expansion slots, to the Casio EM-500, which had a 64k color screen and provisions for upgraded pheripherals such as cameras.  Pocket PC 2000 launched with versions of Pocket Word, Pocket Excel, and Microsoft Reader bundled.  ActiveSync 3.1, which provided an easier way to install applications onto the Pocket PC, was required to synchronize with host desktop machines.
+
 
+
==Pocket PC 2002==
+
Codenamed "Merlin," Pocket PC 2002 was Microsoft's Windows CE 3.0-based upgrade to Pocket PC 200.  Pocket PC 2002 offered many improvements over the previous operating system, including a Terminal Service Client, a new mail Inbox, Windows Media Player 8.0, improved versions of Pocket Word and MS Reader, and many other features. 
+
 
+
There were three service packs (EUUU1/2/3) released which addressed bugs and other issues in the original release.
+
 
+
==Windows Mobile 2003 & 2003 Second Edition==
+
Windows Mobile 2003, codenamed "Ozone", was officially released in June of 2003.  The operating system is based on Microsoft's Windows CE 4.2, which claimed to provide a more responsive system when compared with devices running Windows CE 3.0. This version of the operating system added many useful features, including a picture viewer, built-in Bluetooth and WiFi support, Windows Media Player 9.0, as well as a host of Personal Information Management application improvements.  This version of Windows Mobile required ActiveSync 3.7 to communicate with a host computer.
+
 
+
Windows Mobile Second Edition, released in 2004, added support for 640x480 VGA resolution, portrait and landscape display modes, DPI settings, and many other improvements.
+
 
+
==Windows Mobile 5.0==
+
Moved To: [[Microsoft Windows Mobile]]
+
 
+
=Pocket PC Devices=
+
 
+
[[Image:Treo.jpg|thumb|Treo 700w]]
+
 
+
In recent years, a number of manufacturers have elected to produce Pocket PC devices.  Some of these makers include companies such as:
+
 
+
*  Acer
+
*  Asus
+
*  Audiovox
+
*  Dell
+
*  HP
+
*  Mitac
+
*  Motorola
+
*  Samsung
+
*  Siemens
+
*  Symbol
+
*  Treo
+
 
+
Because different manufacturers are targeted at different segments of the market, such as business and consumers, the features and functionality of these devices sometimes differ greatly.  For example, some devices have built-in capability for taking images and videos, while other devices have tools such as biometric fingerprint readers and barcode scanners.
+
 
+
=References=
+
 
+
[http://www.hpcfactor.com/support/windowsce/ The History of Microsoft Windows CE]
+
 
+
[http://palmtops.about.com/cs/pdafacts/a/Palm_Pocket_PC.htm Palm vs. Pocket PC-The Great Debate]
+
 
+
[http://www.windowsfordevices.com/news/NS8063885791.html Gartner: Windows CE ties Palm]
+
 
+
[http://en.wikipedia.org/wiki/Pocket_PC Wikipedia: Pocket PC]
+
 
+
[http://www.pocketpcfaq.com PocketPC FAQ]
+

Latest revision as of 07:38, 27 July 2012

40px-Ambox warning pn.png

This tool is deprecated.
The tool that this page describes is deprecated and is no longer under active development.
Further information might be found on the discussion page.

mdd
Maintainer: ManTech International Corporation
OS: Windows
Genre: Memory Imaging
License: GPL
Website: sourceforge.net/projects/mdd/

mdd, also known as ManTech dd or Memory dd, is a command line program to acquire an image of the memory of a running Windows computer. The program has been included in the Helix incident response tool.

Status

The current version of mdd (mdd_1.3.exe) runs on Window XP to SP3 and Vista to SP 2, and may run on other versions.

The driver uses the Physical Memory Object Memory Imaging Mehod and returns a file handle to a user-mode program via an IOCTL on the device file named:

\\.\memdd

Once the file handle has been returned the driver and associated memdd device is no longer required and can be removed, which is what the mdd utility does.

Building from source

  1. Load the x64 Free Build Environment from the WDK (in start menu)
  2. Go to the mdd directory, e.g. C:\src\mdd\driver\mdd\ and run build
  3. You should now have mdd.sys in C:\src\mdd\driver\mdd\objfre_win7_amd64\amd64

Signing the driver

  • Make sure the WDK is installed, you need that for the signing.
  • Get the right cross certificate file, see Cross-Certificates for Kernel Mode Code Signing
  • Convert the key you have to pfx, if its cert + key you want:
    • setup a secure spot to put the private key, this should not be on corp or unprotected at any time
openssl pkcs12 -export -out out.pfx -inkey in.key -in in.crt -certfile ca.crt
    • use a strong password
    • shred the .key immediately after use
  • Sign the driver by running:
signTool sign /v /ac <crosscertificatefile> /f <pathtopfx> /p <pfx password> /t http://timestamp.verisign.com/scripts/timestamp.dll <driver.sys>

Also see: Digital Signatures for Kernel Modules on Windows

Usage

To execute mdd, you must start cmd.exe. The options are:

  • -o filename - required to actually run mdd
  • -w - license information
  • -v - verbose

To run mdd, the account you are using must have administrator access to the machine you wish to image (however, it does not have to be the Administrator account; it only needs to be in the local Administrator group). The program works by installing a service, called mdd, although see below for problems.

Known Issues

These are the known problems with mdd.

Error 1073

This is a Windows Service Manager error. mdd executes by registering itself as a service, so it can run as administrator, although this does not mean you can run mdd without having administrator access. At the end of a normal execution, the service is deleted. However, mdd can accidentally leave the service installed, and this prevents further imaging. This could be caused by the system crashing (or an intentional system crash) during imaging, or by attempting to stop the imaging with control-c. If this happens, a knowledgeable Windows user will open up the Services tab in Computer Manager, but unfortunately, Windows has a wonderful feature that allows services, when they are registered, to state whether or not they wish to be seen in the Service Manager. This amazing concept allows services to run less visibly, and should be considered a class-a security flaw. Fortunately, there's a way around this, using the command line (cmd.exe).

  • Run cmd.exe
  • In cmd.exe, run "sc help" to see the service manager command line tool
  • Run "sc query" to see all of the currently registered services, but note that this list will overflow the default line buffer of cmd.exe (this is adjustable, but not necessary for our purposes)
  • Run "sc query mdd" and - ta-da - you'll see the mdd service
  • Run "sc delete mdd" and it's gone, and mdd can now be run again.

Error 1062

John Judd will be entering text here.

Can't Use Network Share in Vista

In Vista, even if you are in the administrator group, you do not necessarily run programs with administrator access (this is actually a major improvement to the security model of Windows). You can start programs, including cmd.exe, with admin privileges, but in this case, that won't help. You will not be able to image to a Network Share from Vista. There is no known workaround. This problem may exist in Windows 7.