Hex-curious?

 Uncategorized  Add comments
Nov 032011
 

Have you ever wondered how to make sense of hexdumps?

e1a02000e5d00000 e3500000012fff1e
e3a00000e2800001 e7d23000e3530000
1afffffbe12fff1e

Or been curious to know what exactly does a bxeq lr instruction mean in assembly?
<br />
   0:   e1a02000        mov     r2, r0<br />
   4:   e5d00000        ldrb    r0, [r0]<br />
   8:   e3500000        cmp     r0, #0<br />
   c:   012fff1e        bxeq    lr<br />
  10:   e3a00000        mov     r0, #0<br />
  14:   e2800001        add     r0, r0, #1<br />
  18:   e7d23000        ldrb    r3, [r2, r0]<br />
  1c:   e3530000        cmp     r3, #0<br />
  20:   1afffffb        bne     0x14<br />
  24:   e12fff1e        bx      lr<br />

If so, then you should sign up for the introduction to assembly programming and reverse engineering class. You can learn assembly programming and machine architecture using reverse engineering techniques on your own code. In this class we will write code, compile it into an executable and then disassemble it to learn about registers, stacks, branches, function calls and argument passing, structs and other common idioms.

Experience with any programming language is required; the examples in the class with be in C, with dissassembly into ARM assembly. Bring your own laptop with arm-elf-gcc and associated binutils installed to follow along.

 Posted by at 8:22 pm