Services
Find Stuff
Pages
Buy My Apps
Other Stuff I’ve Built
Book Club
Archives
- May 2018
- February 2014
- December 2013
- November 2013
- August 2012
- July 2012
- April 2012
- March 2012
- December 2011
- November 2011
- October 2011
- September 2011
- August 2011
- July 2011
- June 2011
- May 2011
- April 2011
- March 2011
- February 2011
- January 2011
- December 2010
- November 2010
- October 2010
- September 2010
- August 2010
- July 2010
- June 2010
- May 2010
- April 2010
- March 2010
- February 2010
- January 2010
- December 2009
- November 2009
- October 2009
- September 2009
- August 2009
- July 2009
- June 2009
- May 2009
- April 2009
- March 2009
- February 2009
- January 2009
- December 2008
- November 2008
- October 2008
- September 2008
- August 2008
- July 2008
- June 2008
Categories
- Boxing (23)
- Energy (5)
- iPhone (142)
- Jack Handy (283)
- NaNoWriMo (3)
- People (11)
- Planet Microsoft (5)
- Projects (88)
- Python (43)
- Reelviews (13)
- Reverse Engineering (18)
- Six Word Stories (111)
- The Hard Way (3)
- Uncategorized (6)
- UNIX (8)
- Vacation Slides (30)
- Web stuff (51)
Blogroll
Category Archives: Reverse Engineering
GCHQ VM
So, Britain’s GCHQ (the UK’s equivalent of the NSA) has put up a programming contest to attract coders. (The punchline is that the gig only pays $39,000, so good luck with that, chaps.) There are several parts, and the only … Continue reading
Posted in Reverse Engineering
Comments Off
Licenses
Last week, a reader wrote in with this question: [Y]ou’ve got all this great code, but you haven’t declared a license. Is it public domain, or BSD? This is, as they say, a fair question. I address it today.
Posted in iPhone, Planet Microsoft, Projects, Python, Reverse Engineering, UNIX, Web stuff
Comments Off
Usage of Redundant 8086 Opcodes
This is a follow-up to last week’s post, which discussed the fact that fully 30% of the 8086 processor’s 1-byte opcode space is given over to redundant opcodes (i.e. short forms of longer, more general opcodes). Today, I want to … Continue reading
Posted in Reverse Engineering
Comments Off
Python Puzzle
Pedram Amini has got a pretty neat post up on reverse engineering the protocol for a USB device. If you haven’t seen it yet (it was linked from Slashdot) it’s worth reading. However, he includes some Python code which features … Continue reading
Posted in Python, Reverse Engineering
Comments Off
8086 Opcode Redundancies
Looking over the opcode map for the 8086 processor, I was struck by the seemingly large number of redundant opcodes. I decided to determine exactly how many were redundant, and I was surprised to find that just over 30% of … Continue reading
Posted in Reverse Engineering
Comments Off
Disassembler (Odds and Ends)
This week, I post some remarks following up on the just-concluded disassembler tutorial; there are always a few loose ends to tie up, and I wanted to clarify or expand on: The opcode map Addressing Demo code Hardening
Posted in Planet Microsoft, Projects, Python, Reverse Engineering
Comments Off
Disassembler (Part 3)
Editorial Note: Over the last two weeks, we’ve done the groundwork for building a disassembler: We’ve seen how to find documentation for a machine’s instruction format, how to read machine code by hand, and how to build up a machine-readable … Continue reading
Posted in Projects, Python, Reverse Engineering
Comments Off
Disassembler (Part 2)
Editorial Note: This article is the second in a three part series on writing an 8086 disassembler. Today we’ll cover the practical issues involved in finding an opcode map; we saw last week that such a map is central to … Continue reading
Posted in Projects, Reverse Engineering
Comments Off
Disassembler (Part 1)
Editorial Note: This article is the first in a three part series on writing a disassembler. Today we’ll cover the high-level concepts involved in disassembly and see how to read machine code “by hand”. Next week, we’ll look at the … Continue reading
Posted in Planet Microsoft, Projects, Python, Reverse Engineering
Comments Off
Boxing Day
Since it’s a holiday week, I’m just going to do a quick followup to a loose end from last week. In that post, I hypothesized that the function located at CS:3A30 in my run-time copy of the Neuromancer executable existed … Continue reading
Posted in Reverse Engineering, Uncategorized
Comments Off