Overview of my solution to the exercises from the book <em>Practical Reverse Engineering</em> by Bruce Dang, Alexandre Gazet and Elias Bachaalany (ISBN: <a href="http://www.amazon.com/Practical-Reverse-Engineering-Reversing-Obfuscation/dp/1118787315">1118787315</a>). The book is my first contact with reverse engineering, so take my statements with a grain of salt. All code snippets are on <a href="https://github.com/baderj/practical-reverse-engineering/">GitHub</a>.

<table width="100%">
	<tbody>
		<tr>
			<td class="done"></td>
			<td>&nbsp;solved</td
                        <td class="guess"></td>
			<td>&nbsp;wild guess published / partial solution</td
                        <td class="open"></td>
			<td>&nbsp;not solved yet</td
		</tr>
	</tbody>
</table>

<br/>
<h2>Chapter 1: x86 and x64</h2>
[custom_table style="2"]
<table width="100%">
	<thead>
		<tr>
			<th>Page</th>
			<td class="status"></td>
			<th>Exercise</th>
			<th>Link to Solution</th>
		</tr>
	</thead>
	<tbody>
		<tr>
			<td>Page 11</td>
			<td class="done"></td>
			<td>Exercise 1 </td>
			<td><a href="http://www.johannesbader.ch/2014/05/practical-reverse-engineering-exercises-page-11/"> May 9, 2014</a></td>
		</tr>
		<tr>
			<td rowspan=4>Page 17</td>
			<td class="done"></td>
			<td>Exercise 1</td>
			<td rowspan=4><a href="http://www.johannesbader.ch/2014/05/practical-reverse-engineering-solutions-page-17/"> May 9, 2014</a></td>
		</tr>
		<tr>
			<td class="done"></td>
			<td>Exercise 2</td>
		</tr>
		<tr>
			<td class="done"></td>
			<td>Exercise 3</td>
		</tr>
		<tr>
			<td class="done"></td>
			<td>Exercise 4</td>
		</tr>
		<tr>
			<td rowspan=12>Page 35/36</td>
			<td class="done"></td>
			<td>Exercise 1 </td>
			<td rowspan=4><a href="http://www.johannesbader.ch/2014/05/practical-reverse-engineering-solutions-page-35-part-i/"> May 16, 2014</a></td>
		</tr>
		<tr>
			<td class="done"></td>
			<td>Exercise 2</td>
		</tr>
		<tr>
			<td class="done"></td>
			<td>Exercise 3</td>
		</tr>
		<tr>
			<td class="done"></td>
			<td>Exercise 4</td>
		</tr>
		<tr>
			<td class="guess"></td>
			<td>Exercise 5</td>
			<td><a href="http://www.johannesbader.ch/2014/06/practical-reverse-engineering-solutions-page-35-part-v/">June 15, 2014</a> and <a href="http://www.johannesbader.ch/2014/06/practical-reverse-engineering-solutions-page-35-part-vi">June 16, 2014</a></td>
		</tr>
		<tr>
			<td class="guess"></td>
			<td>Exercise 6</td>
			<td><a href="http://www.johannesbader.ch/2014/05/practical-reverse-engineering-solutions-page-35-part-iii/">May 22, 2014</a></td>
		</tr>
		<tr>
			<td class="done"></td>
			<td>Exercise 7</td>
			<td><a href="http://www.johannesbader.ch/2014/05/practical-reverse-engineering-solutions-page-35-part-ii/">May 17, 2014</a></td>
		</tr>
		<tr>
			<td class="done"></td>
			<td>Exercise 8</td>
			<td rowspan=2><a href="http://www.johannesbader.ch/2014/05/practical-reverse-engineering-solutions-page-35-part-iv/">May 23, 2014</a></td>
		</tr>
		<tr>
			<td class="done"></td>
			<td>Exercise 9</td>
		</tr>
		<tr>
			<td class="open"></td>
			<td>Exercise 10</td>
			<td rowspan=5>(no solution)</td>
		</tr>
		<tr>
			<td class="open"></td>
			<td>Exercise 11</td>
		</tr>
		<tr>
			<td class="open"></td>
			<td>Exercise 12</td>
		</tr>
		<tr>
			<td rowspan=2>Page 38</td>
			<td class="open"></td>
			<td>Exercise 1</td>
		</tr>
		<tr>
			<td class="open"></td>
			<td>Exercise 2</td>
		</tr>
	</tbody>
</table>
[/custom_table]


<h2>Chapter 2: ARM</h2>
[custom_table style="2"]
<table width="100%">
	<thead>
		<tr>
			<th>Page</th>
			<td class="status"></td>
			<th>Exercise</th>
			<th>Link to Solution</th>
		</tr>
	</thead>
	<tbody>
		<tr>
			<td rowspan=11>Page 78-86</td>
			<td class="done"></td>
			<td>Mystery 1</td>
			<td rowspan=4><a href="http://www.johannesbader.ch/2014/06/practical-reverse-engineering-solutions-page-78-part-i/">June 4, 2014</a></td>
		</tr>		
		<tr>
			<td class="done"></td>
			<td>Mystery 2</td>
		</tr>
                <tr>
			<td class="done"></td>
			<td>Mystery 3</td>
		</tr>
                <tr>
			<td class="done"></td>
			<td>Mystery 4</td>
		</tr>
		<tr>
			<td class="done"></td>
			<td>Mystery 5</td>
<td rowspan=2><a href="http://www.johannesbader.ch/2014/06/practical-reverse-engineering-solutions-page-78-part-ii/">June 5, 2014</a></td>
		</tr>
		<tr>
			<td class="done"></td>
			<td>Mystery 6</td>
		</tr>
		<tr>
			<td class="done"></td>
<td>Mystery 7</td>
			<td rowspan=3><a href="http://www.johannesbader.ch/2014/06/practical-reverse-engineering-solutions-page-78-part-iii/">June 6, 2014</a></td>
		</tr>
		<tr>
			<td class="done"></td>
			<td>Mystery 8</td>
		</tr>
		<tr>
			<td class="done"></td>
			<td>Mystery  9</td>
		</tr>
		<tr>
			<td class="done"></td>
			<td>Mystery 10</td>
<td rowspan=2><a href="http://www.johannesbader.ch/2014/06/practical-reverse-engineering-solutions-page-78-part-iv/">June 26, 2014</a></td>
		</tr>
		<tr>
			<td class="guess"></td>
			<td>Mystery 11</td>
		</tr>

	</tbody>
</table>
[/custom_table]
<h2>Chapter 3: The Windows Kernel</h2>
(not started yet)
<h2>Chapter 4: Debugging and Automation</h2>
(not started yet)
<h2>Chapter 5: Obfuscation</h2>
(not started yet)
