Optional Parameters in C / C++

Recently, while developing a function to help me create logs to keep track of my program for debugging purposes, I came across a need to  specify an undefined amount of parameters so that I can call functions such as CreateLog(“Function Entry: Install”, “Success”, “Remark”, “More Remark”).  Therefore, I have searched online to see whether this can be done.  To my amazement, this was in fact an easy task.  By using the __VA_ARGS__ option and vsprintf function, it can be accomplished.  I have yet the time to tidy the codes for this post but at the very least an article to help out.

If you are not sure what I meant by Optional Parameters, see here.

Article: http://www.lysator.liu.se/c/c-faq/c-7.html

What’s the difference between AppData\Local and AppData\Roaming?

User Account Control Data Redirection

Familiarizing your applications with UAC.  It has become an important piece of information for my future projects.  Data redirection is when Windows redirect the data your application writes to a different directory called VirtualStore.  Something along the lines mentioned, for more please visit the article link below.

Source: http://windowsteamblog.com/windows/b/developers/archive/2009/08/04/user-account-control-data-redirection.aspx

Escalating UAC privileges in C / C++ applications using Visual Studio

To set this linker option in the Visual Studio development environment

  1. Open the project’s Property Pages dialog box. For details, see How to: Open Project Property Pages.
  2. Expand the Configuration Properties node.
  3. Expand the Linker node.
  4. Select the Manifest File property page.
  5. Modify the Enable User Account Control (UAC), UAC Execution Level, and UAC Bypass UI Protection properties.

To set this linker option programmatically

Source: http://msdn.microsoft.com/en-us/library/bb384691.aspx

How User Account Control (UAC) Affects Your Application

There is a need for me recently to run applications with privileges for the registry hive and I came across an article on UAC by MSDN.  The image below depicts how UAC process flow works.

Article: http://msdn.microsoft.com/en-us/library/bb384608.aspx

C vs C++ where Exploit, Game Hack and Malware are concerned

On the contrary of comparing which language is best used in the idea of creating exploits, game hacks and malwares, 01blasphemer has pointed some of the reasons why the C language is at advantage in HackForums. Read the rest of this entry »

Thread.Sleep (.NET) vs Sleep Function (WinAPI)

Thread.Sleep is a sign of a poorly designed program.

by Peter Ritchie.

Thread.Sleep has it’s use: simulating lengthy operations while testing/debugging on an MTA thread.  In .NET there’s no other reason to use it.

Thread.Sleep(n) means block the current thread for at least the number of timeslices (or thread quantums) that can occur within n milliseconds.  The length of a timeslice is different on different versions/types of Windows and different processors and generally ranges from 15 to 30 milliseconds.  This means the thread is almost guaranteed to block for more than n milliseconds.  The likelihood that your thread will re-awaken exactly after n milliseconds is about as impossible as impossible can be.  So, Thread.Sleep is pointless for timing.  Read the rest of this entry »