Driver development has always been the privilege of C/C++ and Assembler programmers. If someone needs to write a device driver in Delphi, he has to settle for “adapter” drivers that would allow their user-mode program some ability to interface with kernel-mode functions.
With older Delphi
versions [Delphi 3 and below] the Microsoft linker included in DDDK could be used to
link the object files produced by the Delphi compiler to get a valid
.sys file, but newer Delphi versions have a different .obj file format.
The main reasons why you can’t usually create drivers in Delphi are
- It’s compiler/linker can’t produce .sys files.
- The object file format incompatibility mentioned above.
- Driver Developement Kit isn’t generally available in languages other than C/C++.
- Some essential units (RTL) aren’t intended for use in kernel-mode
and might crash a driver (and the whole system along with it).
The solution is the Delphi Driver Development Kit which addresses most of these issues and allows creation of kernel-mode drivers
even in Delphi 2007. It includes translated DDK headers, and a utility to
convert Delphi OBJ files to a format compatible with the Microsoft
compiled and ran one of the samples on my Windows XP machine using
Delphi 2007 and it worked.
DDDK 0.0.4 was created by The Hacker Defender Project
To get .sys driver you have to run compile.but first
and then build.bat. Compile.bat runs Delphi part of the work creating
.obj files which will be linked to produced the final executable. Build.bat then converts this object file to MS supported format
of OMF using OMF2D 1.02 written by EliCZ and then uses MS linker link.exe assemble final .sys kernel mode driver.
As you can notice making drivers
in Delphi is not supported by default so several hacks are made to make
it working. One of these hacks is ignoring
several linker errors and warnings which are received during linking. Despite this, the final .sys
is working well. Do not take these warnings seriously; however, if you are making your own driver there can be lot of other warnings
and errors you should care about.
In samples directory you've got
some of our samples. Each example includes its own compile and build
scripts. To compile debug version run compile.debug.bat instead of
0.0.4 - Third release comes with few
more supported functions and hook3 from Driver coding tutorial.
- Third release comes with more supported functions, types, constants
exports and also with new example - hook2 from Driver coding tutorial.
- Second release comes with major changes in design.
There are two samples now including hook1 from Driver coding
DDDK.pas ensures easy driver coding, you only
need to add DDDK to project uses to get easy access to all supported
0.0.1 - This is very first release of DDDK. It is just
proof of concept showing the possibility of making working Delphi
The archive contains executable files as well as delphi
This page was moved because an arabic forum was hotlinking to the attached file.NO HOTLINKING.