Windows hooks detector

June 22, 2011

Update 2012/08/26: Added support for Windows 7.

Recently, I had to fix a problem with Microsoft Office Word. The problem was that the normal key combination Alt-Shift for changing the input language was not working. After some time I discovered that the culprit was a rather old piece of software that had installed some Windows hooks targeted at the Microsoft Office Word, which (probably) stopped the propagation of the Alt-Shift key combination before it could actually change the language.

While I was investigating this issue, I noticed that there was no available utility that could detect and report installed Windows hooks. So here I present a Windows hooks detector. It is a command line application accompanied by a system driver, that scans, detects and reports installed Windows hooks.

Also you can download a demo hook application, that installs local and global hooks for testing purposes.

The source code is on GitHub: prekageo/winhook. The binaries are here: Windows hooks detector and demo application. The software has been tested on Windows XP and Windows 7.

Read the rest of this entry »

Moore state machine solver and optimizer

May 17, 2011

A Moore machine is a finite-state machine whose output values are determined solely by its current state, in contrast to a Mealy machine. A state machine has a number of states, which are usually conveniently labeled 0, 1, 2, etc.. Below you can find a utility that can help you design and implement a state machine in hardware.

Read the rest of this entry »

Quine-McCluskey algorithm implementation in Python

May 17, 2011

Recently, I had to minimize some boolean functions using Karnaugh maps. The functions were part of a state machine, which I would like to optimize, so I had to repeat the process using Karnaugh maps over and over until, finally, I decided it would be much more productive, if I could write a program that could do the trick. So, here it is; an implementation of the Quine-McCluskey algorithm written in Python. Before writing the code, I had studied the implementation of Robert Dick, which can be found here: http://pypi.python.org/pypi/qm/0.2.

Read the rest of this entry »

Web site monitor

March 16, 2011

I wanted to monitor a number of web sites that did not provide RSS feeds or their RSS feeds were misbehaving. So, I ended up writing a Python utility that does exactly that: Given a list of URLs and some rules, it retrieves them, stores them and compares them.

Read the rest of this entry »

Bulk load bookmarks into Mozilla Firefox

February 7, 2011

Recently, I needed to add a batch of URLs into Mozilla Firefox as bookmarks. This is an operation I would call bulk loading of bookmarks and it seems there is no easy solution available. For that reason, I’ve developed a small JavaScript application that does the job.

Read the rest of this entry »

Χάρτης καταστημάτων oteshop

January 12, 2011

Μια φορά και ένα καιρό ήθελα να βρω όλα τα καταστήματα oteshop που βρίσκονται στην Αθήνα. Ο λόγος ήταν ότι έψαχνα να αγοράσω κάτι το οποίο δεν υπήρχε στο κοντινότερο κατάστημα οπότε οι υπάλληλοι με συμβούλεψαν να το αναζητήσω σε κάποιο άλλο κατάστημα του δικτύου. Επισκέφτηκα το portal των oteshop, όπου διαπίστωσα ότι αν και υπάρχουν χάρτες για κάθε κατάστημα, λείπει ένας συγκεντρωτικός.

Read the rest of this entry »

Disable AutoRun and AutoPlay in Windows XP

December 12, 2010

AutoRun and AutoPlay are Windows features that enable the automatic execution of specified programs when a removable medium, such as a USB flash drive, is attached to the computer. These two features are a common vector of installing unwanted malicious software, so it always advised to disable them in order to enhance the system’s security. You will find below the necessary steps that are required in order to disable these features under Windows XP

Read the rest of this entry »

Windows XP could not start because the following file is missing or corrupt: \WINDOWS\SYSTEM32\CONFIG\SYSTEM

December 11, 2010

The above is a common error message that appears during the boot process of the Windows XP operating system. Microsoft has a knowledge base article with instructions for recovery. Below, I present a different recovery technique.

Read the rest of this entry »

Manipulate Microsoft registry hive files from Python

December 11, 2010

I’ve written a small utility in Python that has the capability to manipulate the binary data files that hold the Microsoft Windows registry. These files are called hives.

Read the rest of this entry »

Υπηρεσία ΟΤΕ e-bill – σύγκριση τιμολογίων

November 28, 2010

Μία νέα δυνατότητα προστέθηκε στην εφαρμογή παρακολούθησης της υπηρεσίας ΟΤΕ e-bill. Πρόκειται για τη σύγκριση των τιμολογίων διαφόρων τηλεπικοινωνιακών παρόχων με βάση στοιχεία πραγματικής χρήσης, τα οποία έχει συλλέξει ο χρήστης από την αντίστοιχη εφαρμογή ανάκτησης και αποθήκευσης των τηλεφωνικών κλήσεων της υπηρεσίας ΟΤΕ e-bill.

Read the rest of this entry »