- @{[ a_href('http://www.vmware.com/download/workstation.html',
- 'VMware Workstation') ]}
+ @{[ a_href 'http://www.vmware.com/download/workstation.html',
+ 'VMware Workstation' ]}
Original Microsoft Windows operating system can be run inside a virtual
machine running under GNU/Linux and share the read-write NTFS disk by using
a network file sharing through a VMware virtual network card.
@@ -326,13 +326,13 @@ Yep. :-)
that if it went wrong it could crash the machine. With no source, we might not
be able to work around the problem.
Nope,
-@{[ a_href('http://lufs.sourceforge.net/lufs/','Linux Userland File System (LUFS)') ]}
+@{[ a_href 'http://lufs.sourceforge.net/lufs/','Linux Userland File System (LUFS)' ]}
moves the filesystem implementation to UNIX userland where the Microsoft
Windows filesystem is completely unarmed by Captive jail of chroot(2),
setuid(2) and setrlimit(2). There only remains one narrow connection to the rest of
system (by CORBA/ORBit). The filesystem's life environment gets kill(2)ed when
UNIX is no longer satisfied with it. Safety similiar to
-@{[ a_href('http://www.vmware.com/solutions/security.html','VMware sandbox') ]}.
+@{[ a_href 'http://www.vmware.com/solutions/security.html','VMware sandbox' ]}.
> The next major problem is compatibility.
Which version of the Windows system file would we use? Picking one would limit
@@ -358,22 +358,24 @@ It does not apply to this project due to the implemented
See also
- - @{[ a_href('Preview.html.pl','Technology Preview') ]}
- - @{[ a_href('doc/','Developer Documentation') ]}
- - @{[ a_href('apiref/','API Reference Manual') ]} (fragment)
+ - @{[ a_href 'Preview.html.pl','Technology Preview' ]}
+ - @{[ a_href 'doc/','Developer Documentation' ]}
+ - @{[ a_href 'apiref/','API Reference Manual' ]} (fragment)
-
- @{[ a_href('http://cvs.jankratochvil.net/viewcvs/priv/captive/','CVS repository ViewCVS') ]}
- (@{[ a_href('http://cvs.jankratochvil.net/viewcvs/priv/reactos/?only_with_tag=captive','ReactOS branch part') ]})
+ @{[ a_href 'http://cvs.jankratochvil.net/viewcvs/priv/captive/','CVS repository ViewCVS' ]}
+ (@{[ a_href 'http://cvs.jankratochvil.net/viewcvs/priv/reactos/?only_with_tag=captive','ReactOS branch part' ]})
- - @{[ a_href('Thanks.html.pl','Thanks') ]}
- - @{[ a_href('Resources.html.pl','Related Pages') ]}
+ - @{[ a_href 'http://cvs.jankratochvil.net/viewcvs/*checkout*/priv/captive/src/libcaptive/ke/exports.captivesym?rev=HEAD',
+ 'List of implemented W32 kernel functions' ]}
+ - @{[ a_href 'Thanks.html.pl','Thanks' ]}
+ - @{[ a_href 'Resources.html.pl','Related Pages' ]}
@{[ vskip "3ex" ]}
Why did I install Microsoft Windows and wrote such disgusting piece of code?
- I expect @{[ a_href($W->{"top_dir"}."/CV.html.pl","yet another challenging task") ]}, !
+ I expect @{[ a_href $W->{"top_dir"}."/CV.html.pl","yet another challenging task" ]}, !
HERE
diff --git a/project/captive/Preview.html.pl b/project/captive/Preview.html.pl
index 6d416ae..6717355 100755
--- a/project/captive/Preview.html.pl
+++ b/project/captive/Preview.html.pl
@@ -44,6 +44,9 @@ print img("doc/arch-W32","Microsoft Windows Subsystems Architecture");
print img("doc/arch-captive","Captive Subsystems Architecture");
print img("doc/ratio","Functions Reusal Ratio");
print img("doc/fig/functype_patched_wrap_fromw32","Wrapping of Call from W32 Code");
+print img("doc/ntdebug-windbg-boot","Windows NT Remote Kernel Debug Mode Boot");
+print img("doc/captive-install-acquire","Captive Microsoft Windows Drivers Acquire");
+print img("doc/dia/arch-all","Captive Components Architecture");
My::Web->footer();
diff --git a/project/captive/doc/Index.html.pl b/project/captive/doc/Index.html.pl
index 95bca2d..af0acf8 100755
--- a/project/captive/doc/Index.html.pl
+++ b/project/captive/doc/Index.html.pl
@@ -27,6 +27,7 @@ use warnings;
BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; }
use My::Web;
+require "CGI";
My::Web->init(
@@ -47,18 +48,26 @@ My::Web->init(
My::Web->heading();
-sub doc_img
+sub doc_img ($$)
{
my($img_base,$caption)=@_;
my $r="";
$r.=''."\n";
$r.="\t".img($img_base,$caption)." |
\n";
- $r.="\t".CGI::escapeHTML($caption)."\n";
+ $r.="\t$caption\n";
$r.='
'."\n";
+ $r.=vskip "2ex";
return $r;
}
+sub captive_srcfile ($)
+{
+my($filename)=@_;
+
+ a_href 'http://cvs.jankratochvil.net/viewcvs/*checkout*/priv/captive/'.$filename.'?rev=HEAD',$filename;
+}
+
my $freespeech=a_href 'http://www.gnu.org/philosophy/free-sw.html','Free';
my $freebeer=a_href 'http://www.gnu.org/philosophy/free-sw.html','free (as in beer)';
@@ -78,18 +87,12 @@ my $gnulinux='GNU/Linux';
print vskip("10ex")."!!! PRELIMINARY - TO BE UPDATED !!!
\n".vskip("10ex");
-print <<"HERE";
-Abstract
-Existing binary Microsoft Windows file system drivers were exploited
-for accessing drives with possibly proprietary file system data structures.
-Open file system API is provided to access these file system drivers.
-Microsoft Windows system components required by these drivers
-were analyzed and successfuly emulated in the GNU/Linux operating system.
-Currently the implementation allows applications running under the GNU/Linux
-operating system to access VFAT, ISO9660 and EXT2 drives. NTFS file system
-capability target is the final goal being currently developed on the base
-of this project assets.
+# FIXME:
+# Compatibility with NT4 etc. - just legal reasons.
+
+
+print <<"HERE";
Reasons for the Implementation
@@ -111,22 +114,22 @@ of this project assets.
and
XP as NT-5.1.)
based operating systems NTFS is the default
- disk file system type for new installations as described in the
- recommendations
- report by Microsoft.
+ disk file system type for vendor preinstalled Microsoft Windows.
Unfortunately the NTFS filesystem has too
complex data structure to allow a complete reverse enginnering process in
reasonable time. Currently available $freespeech solutions such as $LinuxNTFS
- filesystem have already implemented (more or less) reliable reverse
- engineered read-only access. However the
- reliability of the read-write part of the access requires much better
- knowledge of the NTFS data structures. Also
- any future versions of NTFS filesystem would
- require another major reverse engineering effort.
+ filesystem have already implemented reliable reverse
+ engineered read-only access. However reliabile
+ read-write part of the access would require much better
+ knowledge of the NTFS data structures.
+ Currently only rewriting of already existing file data blocks is supported
+ by $LinuxNTFS - no file creation, no file deletion, no directory operations etc.
+ Also any future versions of NTFS filesystem
+ would require another major reverse engineering effort.
-Goals of This Stage of the Project
+Challenges of the Project
The ultimate goal of this project is definitely the
free implementation of reliable read-write
since Wine implements only the user space
part of W32.
- There also exists a $freespeech
- ext2fsd.sys
- W32 filesystem driver for ext2 filesystems with
- source files freely available for it. Moreover original
- Microsoft Windows NT filesystems
- cdfs.sys and
- fastfat.sys (which correspond to Linux
- iso9660 and
- vfat filesystems, resp.) are easy enough to
- get working in reasonable time. All these filesystem drivers also use only
- the documented filesystem data structures which makes their behaviour better
- controllable when debugging the project.
-
- Therefore this stage of the project is intended to get only the original
- W32 binary form of cdfs.sys and
- fastfat.sys drivers working. This goal was
- achieved and the compatibility with ext2fsd.sys
- can be considered as an additional benefit.
-
Architecture
- Although this project attempts to be as general and crossplatform as
- possible to avoid being needlessly bound by any resources the current
- implementation is being developed/tested on $gnulinux. The principle of the
+
The principle of the
project lies in the glue between
Microsoft Windows NT kernel space
- environment and $gnulinux user space process environment. Currently there are
- no plans to ever extend the project's crossplatformity beyond the
- i386 processor
- (i386 used here as
- Intel architecture covering 32-bit
- processors compatible with i386,
- i486, ...).
+ environment and $gnulinux user space process environment:
+ @{[ doc_img 'arch-W32','Microsoft Windows Subsystems Architecture' ]}
+ @{[ doc_img 'arch-captive','Captive Subsystems Architecture' ]}
+
Existing Emulation Projects
- There are two well-known $freespeech projects emulating W32 subsystems
+
There were two well-known $freespeech projects emulating W32 subsystems
to reach the compatibility with various W32 components:
$Wine and $ReactOS. Sad moment is that the goals of this project do not fit
- very well into any role in those two projects:
+ very well into any role in those two ones. Therefore this project went
+ its own way of emulation:
@@ -206,7 +186,14 @@ of this project assets.
W32 kernel and user space |
ntoskrnl.exe |
- Existing Emulation Projects Characteristics
+
+
+ this project |
+ $gnulinux |
+ W32 kernel |
+ ntoskrnl.exe |
+
+ Emulation Projects Characteristics
@@ -266,6 +253,14 @@ of this project assets.
space interface to the kernel space implementation by
ntoskrnl.exe.
+ Currently there are
+ no plans to ever extend the project's crossplatformity beyond the
+ i386 processor
+ (i386 used here as
+ Intel architecture covering 32-bit
+ processors compatible with i386,
+ i486, ...).
+
API Function Implementation Choices
During the initial point of the project development all the API
@@ -288,7 +283,7 @@ of this project assets.
Library is called patched if we require
loading its original binary code file. Project needs to patch it to be able
- to trap all the function entry points. The typical current
+ to trap all the function entry points. The only currently
patched library of this project is
ntoskrnl.exe.
@@ -390,8 +385,11 @@ of this project assets.
supported by the compiler (definitely not the case of the plain C compiler
of GCC) --- all the exception catching code should be discarded as any
generated exceptions are always fatal when
- such driver is running in the scope of this project.
-
+ such driver is running in the scope of this project. You can use the
+ following script of this project to compile W32 filesystem source files as
+ UNIX .so:
+ @{[ captive_srcfile 'src/w32-mod/ext2fsd.so-build.sh' ]}
+
Be aware of some differences if you use
PE-32 binary format file vs.
.so format file.
@@ -435,9 +433,10 @@ of this project assets.
Sometimes no sufficient documentation was found and some code behaviour
had to be reverse engineered directly from the binaries of
ntoskrnl.exe,
- cdfs.sys
- and/or
- fastfat.sys.
+ cdfs.sys,
+ fastfat.sys
+ and primarily
+ ntfs.sys.
Up to now the code was disassembled by
IDA Freeware
and by
@@ -447,6 +446,99 @@ of this project assets.
interpret debug symbols from W32 .PDB
(Program DataBase) debug information files.
+ dumpbin.exe:
+
+ You should use the following options for
+ dumpbin.exe:
+
+
+ dumpbin.exe /all /rawdata:none /disasm /pdbpath:verbose FILENAME.SYS
+
+
+ You should see the following line in the output:
+
+
+ PDB file found at '.\\FILENAME.pdb'
+
+
+ WinDbg Windows NT kernel debugging
+
+ WinDbg is downloadable from:
+ @{[ a_href 'http://www.microsoft.com/whdc/ddk/debugging/installx86.mspx' ]}
+
+ This is (the only?) tool able to debug filesystem drivers incl.
+ ntfs.sys. You will need two computers running
+ Microsoft Windows - one computer will run
+ WinDbg while the other one will be
+ frozen in remote Windows NT kernel debug mode. It does not matter which
+ Microsoft Windows version will be run
+ on the WinDbg side.
+
+ The most easy way to setup two computers is to use commercial
+ VMware Workstation
+ where you can run two virtual machines simultaneously on single PC
+ hardware and you can connect them by a virtual serial port provided by
+ VMware.
+
+ WinDbg side setup
+
+ @{[ doc_img 'ntdebug-vmware-windbg',
+ 'VMware virtual serial port'
+ .' of WinDbg side' ]}
+
+ You should setup WinDbg according
+ to:
+
+ @{[ doc_img 'ntdebug-windbg-port','Port settings of WinDbg' ]}
+ @{[ doc_img 'ntdebug-windbg-sym','Symbols files location of WinDbg' ]}
+
+ Symbols should point to the directory where
+ reside files extracted from the symbol archive for your version of
+ Microsoft Windows. In the case of the
+ recommended Microsoft Windows XP Service Pack 1 Checked Build
+ you should use:
+ @{[ a_href 'http://msdl.microsoft.com/download/symbols/packages/windowsxp/xpsp1sym_x86_chk.exe' ]}
+
+
+ # Rename xpsp1sym_x86_chk.exe contents .pdb files for WinDbg
+ @{[ CGI::escapeHTML(q{for i in *.pdb*;do ext="`echo $i|sed 's/^.*\.pdb\.\(.*\)$/\1/'`";if [ "$i" = "$ext" ];then echo "BAD:$i";break;fi;base="`echo $i|sed 's/\(\.pdb\)\..*$/\1/'`";echo "md $ext";echo "move /-y $i $ext\\$base";done|sort -u|sed 's/$/'`echo -ne '\r'`'/g' >/tmp/rename.bat}) ]}
+
+
+ The resulting rename.bat for
+ xpsp1sym_x86_chk.exe can be found at:
+ @{[ a_href 'xpsp1sym_x86_chk-rename.bat.zip' ]}
+
+ The resulting directory should contain at least
+ sys\\ntfs.pdb
+ and
+ exe\\ntoskrnl.pdb.
+
+ Your successfuly connected target (after the steps described
+ below) should look like:
+
+ @{[ doc_img 'ntdebug-windbg-boot','Successfuly connected WinDbg' ]}
+
+ Setup of the side being kernel-debugged
+
+ @{[ doc_img 'ntdebug-vmware-xpdebug',
+ 'VMware virtual serial port'
+ .' of the side being kernel-debugged' ]}
+
+ You must use the following options in your
+ c:\\boot.init command-line:
+
+
+ /debug /debugport=COM1 /baudrate=115200
+
+
+ After booting this boot.ini-entry
+ should freeze at this point
+ (if no WinDbg is waiting in the other
+ virtual machine):
+
+ @{[ doc_img 'ntdebug-wait','Side being kernel-debugged waiting for WinDbg' ]}
+
+
Laws and Licensing Conditions
If you are an authorized user of
@@ -471,13 +563,12 @@ of this project assets.
This downloadable file contains the full versions of the essential
files needed for the current stage of this product:
- cdfs.sys,
- fastfat.sys
+ ntfs.sys
and
ntoskrnl.exe.
- It even contains ntfs.sys for the planned
- NTFS
- functionality.
+ It even contains
+ cdfs.sys and
+ fastfat.sys for testing purposes.
Service Pack also contains
EULA (End User License Agreement) paper disallowing any use of
@@ -498,9 +589,11 @@ of this project assets.
download/extract the Service Pack files
accordingly.
+ @{[ doc_img 'captive-install-acquire-ask','Microsoft Windows Drivers Acquire Affirmation' ]}
+
Project Architecture
- @{[ doc_img 'fig/architecture','Project Architecture' ]}
+ @{[ doc_img 'dia/arch-all','Project Components Architecture' ]}
Most of the work of this project is located in the single box called
"libcaptive" located in the center
@@ -639,8 +732,6 @@ of this project assets.
At Most One Mounted Filesystem
- @{[ doc_img 'fig/sandbox','Multiple Filesystems by libcaptive Sandboxing' ]}
-
The project technically supports only one (exactly one...) mounted
filesystem device and only one filesystem driver. There is nothing
complicated to support multiple disks and multiple loaded filesystem
diff --git a/project/captive/doc/captive-install-acquire-ask.png b/project/captive/doc/captive-install-acquire-ask.png
new file mode 100644
index 0000000000000000000000000000000000000000..e3af27446a0992d7dc1bfc72e1d54cb540322150
GIT binary patch
literal 11763
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
literal 0
HcmV?d00001
diff --git a/project/captive/doc/captive-install-acquire.png b/project/captive/doc/captive-install-acquire.png
new file mode 100644
index 0000000000000000000000000000000000000000..20d10d41560e76b7c80eaf706a5614fbebf2b8f2
GIT binary patch
literal 83190
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