Program examples compiled using an empty Win32 console mode application of theVisual C++ .Net (Visual studio .Net 2003). It is low-level programming and the.Net used is Unmanaged (/clr is not set: go to the Project menu →click theyour_project_name Properties… sub menu →expand the Configuration Properties folder →expand theGeneral subfolder →make sure theUsed Managed Extension setting is set to No).
This also applied to other program examples in other Modules oftenouk.com Tutorial that mentioned “compiled using Visual C++ .Net”. Other settings are default. Otherwise mentioned, machine’s OS is a standalone Win Xp SP2 with periodical updates. Program examples have been tested for Non Destructive Test. All information recomposed for Win 2000 (NT5.0) above.
Beware for the codes that span more than one line, you should make it in one line. If you want to try the code examples, make sure you clean-up the HTML formats (it is normal if you copy directly from the HTML page). You may copy the formatted codes, paste it in the text editor, clean up any HTML formats, re-copy and re-paste it into the VC++ IDE.
SOME SOFT WARNING:Wrongly modified and run the program examples presented here might collapse your Windows machine or disturb its integrity because this is part of the Windows system programming. Though we are not directly do the Windows kernel programming, those sample codes communicate directly with the Windows kernel. So for your Windows machine safety, make sure you fulfill the following conditions:
Already read, understood and agreed to tenouk.com smalldisclaimer.
Must be familiar with Windows OSes mainly NT5 (Windows 2000 above).
Must be fluent in the following C topics:Function,Array,Pointer,String andStructure.
Then, the basic knowledge of the MicrosoftC Run-Time (CRT) andWin32 Programming using C.
Do not mess up your system (Get a test machine! And run the program examples on the test machine).
Must understand what you are going to do with the Windows APIs.
Other related and required information (if any) not available here can be found at MSDN Online documentation.
All the program examples run in the Debug mode, the WinXp machine logged as normal/restricted user Mike, who is a member of Administrators group except whenever mentioned. Beware the codes that span more than one line. For the restricted/normal user to run program in Debug mode, he/she must be a member of 'Debugger Users' group. This group normally created automatically when we install the Microsoft Visual IDE.
And you can view, add or remove the Debugger Users group member through the Properties page as shown below.
Some sample program run on VC++ Express 2005/2008 and full Visual Studio 2008 editions that may be given at the end of some Modules. In this case (except the Unicode & Multibyte topics) you need to set the project setting not to use the Unicode/Multi-byte character set else you may need to change most of the type to Unicode. For Visual C++ 2005 Express Edition example:
Go to Project menu → select Your_Project_name Properties... → expand the Configuration Properties folder → expand the General sub folder → make sure the Character Set setting is set to Not Set.
Otherwise you need to change all the types used in the program example to Unicode or multi-byte version.
The program examples provided as a 'loose' and assumed not 'safe' or suitable for production, release or similar. You need more fine tuning and consideration.
More advanced level that closely related to Windows system or Windows kernel programming areWindows Device Driver development and various type of Windows system, low level programming exploitations (mostly through Windows device driver programming) through the WindowsRootkit. Whatever it is, have a nice journey buddies!