Make a Linux LiveUSB without Unetbootin

Unetbootin has been giving me issues lately. After starting up my newly-burned Antergos LiveUSB on a testbed, the system halted with a weird error as it was mounting the drive:

[    8.755116] FAT-fs (sdb1): IO charset iso8859-1 not found
mount: wrong fs type, bad option, bad superblock on /dev/sdb1,
       missing codepage or helper program, or other error

       In some cases useful info is found in syslog - try
       dmesg | tail or so
ERROR; Failed to mount '/dev/disk/by-label/ANTERGOS'
   Falling back to interactive prompt
   You can try to fix the problem manually, log out when you are finished
sh: can't access tty: job control turned off
[rootfs /]#

Very, very weird. There was little else I could do that wouldn’t result in an instant kernel panic. Since I was testing an unstable pre-release image, I decided to boot into Windows, deep format the drive as FAT32, and use Unetbootin to burn an older stable copy of Antergos that I knew worked.

Unetbootin and formatting process

I booted it up, and to my surprise, I came up with the same error again! I tried using LiLi instead, but it still didn’t work. I even tested my images with VirtualBox to check if they were clean, and sure enough, they were. Frustrated, I wrote down the error and Googled it. It seems to be a particularly nasty bug with Unetbootin that has apparently affected others.

I decided to write the ISO directly to the flash drive without using Unetbootin nor LiLi as my middle-man. Let’s get our hands dirty in the terminal.

Read more

Writing a virtual desktop system in C# with WinAPI

The virtual desktop system is an interesting feature that attempts to bring the massive benefits of multi-monitor computers to single-monitor people. With a simple key combo or button click, the screen is split into a tiled grid of several desktops in an Exposé (now called Mission Control)-type fashion with the ability to select one and switch to it (see fig. 1).

Virtual desktops on Windows (Sysinternals Desktops 2.0)
(Fig. 1) Here is a an example desktop switching “pager” called “Desktops” by Sysinternals running on my Windows 7 machine.

For all intents and purposes, a virtual desktop is treated like another physical monitor, giving you a tremendous amount of “screen space” to work with. This is excellent for developers or graphic artists whose careers require many programs to be up and running simultaneously but cannot use a multi-monitor system, whether it be due to high costs or space constraints of some kind.

When people think of virtual desktops, thoughts of Linux, Mac, and BSD come to mind, but never Windows! Believe it or not, the WinAPI does have full virtual desktop support (as shown by the screen that appears when you press CTRL+ALT+DEL), but Microsoft does not implement it in a user-accessible way. This tutorial will detail how to get access to it and embed it in your own application. So let’s get cracking!

Read more

Honeyd: Your own virtual honeypot

Featured image: “DEFCON In Action #2” by Ambrosia Software

HoneyD Logo
Today, I will discuss a very interesting tool called Honeyd (pronounced “honey-dee” or “honey-daemon“). It is a powerful virtual honeypot tool written by Niels Provos and released as open source under the GNU General Public License v2.0, as part of the Honeynet Project. It runs on many Linux distributions and BSD’s.

A honeypot is a public or private computer that is intentionally left insecure, unpatched, without an anti-virus or firewall, etc. which encourages malicious hackers to attack it for behavioral analysis or for spamtrapping. This is a perfect tool for catching potential black-hat network intruders or spammers and monitoring their behavior. If you like, you can even build a massive open “playground”, giving any hacker (good or bad) a testbed to develop their skills and put their knowledge and techniques to the test without disrupting others.

If you have the cash, you can up multiple honeypots in your home or workplace, which act as convincing “decoy machines” that can help protect your legitimate computers from crackers. Networks like these are called honeynets.

Read more

Library Review: SFML

Visit SFML's project page

Hello everybody and welcome! I decided that I will review a very, very useful cross-platform library that I have been using often lately called SFML, which stands for “Simple and Fast Media Library”. For those who don’t know, SFML is a game library (at version 1.6 at this time of writing), which is a collection of C++ functions that can aid you in making games, and is similar in spirit to another more mature game library called SDL (“Simple DirectMedia Layer”).

Let’s say that you wish to create a sidescroller like Mario, for example. Instead of researching deeply through the net and going into the nitty-gritty of setting up the window and coding unimportant (but complex) components, you could simply bundle SFML together with your project’s code. SFML can take care of playing the sound effects or video cut-scenes, displaying textures and loading game maps, interacting with OpenGL for 3D graphics, etc. while you focus on actually writing the game logic itself.

❗ NOTE: SFML is not a game engine! It is a bit more low-level than that, and it does not include any drag-and-drop editors or media creation tools. It’s purely source code, and you are expected to already know how to program in order to use it. However, it  is powerful enough that it could actually help you create a game engine of your own.

In this review, I will go over the features of the library and explain what it can do. I will also supply an example C++ snippet that demonstrates how to initialize SFML, along with step-by-step explanations of what the program does and how it works. I will finish by outlining SFML’s pros and cons, summarizing my overall impressions, and telling you whether it is worth being in your toolbox as a programmer.

Read more

A List of Ethical Hacking Tools: Part 2

Well, I decided to respond to part 1 of this series with a little shell script which automatically grabs a suite of ethical (and not-so-ethical) hacking and programming tools freely available on Ubuntu’s software repository listings. This should work fine under Debian or other similar distributions as it uses simple apt-get commands, but I cannot promise anything. I will revise this series of posts periodically to improve the listings and fix scripting bugs as time progresses.

See full source code