Forensics Tool to Detect Encrypted Files

Well shit, looks like I haven't posted in about two weeks. I really didn't mean to do that. This absence was entirely unplanned and served no real purpose. But here I am again, and I'll try to update on a semi-daily basis for the forseeable future. Oh, and it looks like I'm getting regular hits … Continue reading Forensics Tool to Detect Encrypted Files

Advertisements

Writing an Emulator for the MIX Architecture

I've been reading a lot of TAOCP lately (that's The Art of Computer Programming by Donald Knuth for you plebes out there 😛 ). This classic book series consists mainly of designing a lot of algorithms in machine language. The machine language used is that of the fictional MIX architecture, which Knuth created specifically for … Continue reading Writing an Emulator for the MIX Architecture

How to Generate Truly Random Numbers in POSIX Systems

Everyone knows about the rand() and srand() functions in the C Standard Library (or any of the equivalents in other programming languages). These functions work together to generate pseudo-random numbers from a seed, thus lending some nondeterminism to the program. But what about truly random numbers? What if you want a stream of random data … Continue reading How to Generate Truly Random Numbers in POSIX Systems

Real Programmers Don’t Use Structs

 1 /* Behold, the Holy Grail of low-level procedural  2 programming...  3   4 The essay Real Programmers Don't Use Pascal tells  5 of Real Programmers who are able to code complex  6 data structures and algorithms without the aid of  7 objects, structs, or similar high-level aggregate  8 data types.  Real Programmers, according to the  9 mythos, are able to program using arrays as their … Continue reading Real Programmers Don’t Use Structs

Marketable Skills (Random X11 Post)

It's weird. I've known how to code for more than half my life - about 15 years now, yet I haven't gotten to the point where my skills are actually marketable. I've learned a hell of a lot of theory - how to design algorithms, how to analyze and optimize them, and also a lot … Continue reading Marketable Skills (Random X11 Post)

How to Generate UUIDs in Linux

UUIDs (or GUIDs as they're called in Windows parlance) are 128-bit codes that are used as unique identifiers for objects and resources. The acronym stands for Universally Unique IDentifier (or Globally Unique IDentifier in Windows). The purpose of UUIDs is to provide a system of identification where there is some assurance that the ID you're … Continue reading How to Generate UUIDs in Linux

A Guide to Error Handling in C

As promised in a previous article, here is my tutorial on the errno.h header file. From what I've seen, there doesn't seem to be much documentation of this header outside of the Unix man pages. There's some reference material but not much tutorial content. I pretty much just figured out how to use errno by … Continue reading A Guide to Error Handling in C