|
| 1 | +--- |
| 2 | +layout: post |
| 3 | +title: Getting Started with Assembler for Reverse Engineering |
| 4 | +date: 2024-02-28 |
| 5 | +categories: [reverse-engineering, assembler] |
| 6 | +tags: [reference] |
| 7 | +--- |
| 8 | + |
| 9 | +Mostly notes for my self, but this is one thing I am interested in learning about. Thanks to my friend M who gave me alot of these links! |
| 10 | + |
| 11 | + |
| 12 | +[0xinfectionl - Reverse Engineering for Everyone](https://0xinfection.github.io/reversing/) - x86, ARM-32, x64, ARM-64, Pico Hacking |
| 13 | + |
| 14 | +[Cool tool](https://defuse.ca/online-x86-assembler.htm#disassembly) to paste in some assembler and convert from mnomics to binary and vice versa |
| 15 | + |
| 16 | +[Microcorruption Game](https://microcorruption.com/) - haven't played alot, but could be fun. |
| 17 | + |
| 18 | +[Intel® 64 and IA-32 Architectures Software Developer’s Manual Combined Volumes: 1, 2A, 2B, 2C, 2D, 3A, 3B, 3C, 3D, and 4](https://www.intel.com/content/www/us/en/content-details/782158/intel-64-and-ia-32-architectures-software-developer-s-manual-combined-volumes-1-2a-2b-2c-2d-3a-3b-3c-3d-and-4.html?wapkw=intel%2064%20and%20ia-32%20architectures%20software%20developer%27s%20manual&docid=782158) |
| 19 | + |
| 20 | +[Exercises in Reverse Engineering](https://challenges.re/) - something to get started on |
| 21 | + |
| 22 | +Tools to get familiar with: |
| 23 | +* [Ghidra](https://ghidra-sre.org/) |
| 24 | +* [Ida FREE](https://hex-rays.com/ida-free/) |
| 25 | +* [Radare2](https://github.com/radareorg/radare2) |
| 26 | +* [GNU Dbg](https://www.sourceware.org/gdb/) |
| 27 | + |
| 28 | + |
| 29 | +## Syntax Styles |
| 30 | + |
| 31 | +### Intel Syntax |
| 32 | + |
| 33 | +* first operand is the `destination`, and the second operand is the `source` |
| 34 | +* No prefix on registers or immediates |
| 35 | +* Immedates are suffixed with 'h' and 'b' |
| 36 | +* If the first hexadecimal digit is a letter then the value is prefixed by a '0'. |
| 37 | +* Base registers use [ ] |
| 38 | + |
| 39 | +``` |
| 40 | +addl eax, [ebx] |
| 41 | +mov eax,1 |
| 42 | +
|
| 43 | +``` |
| 44 | + |
| 45 | +### AT&T Syntax |
| 46 | + |
| 47 | +* Registers prefixed with `%` |
| 48 | +* Immediates prefixed with `$`, hex is prefixed with 0x |
| 49 | +* First operand is the `source`, and the second operand is the `destination` |
| 50 | +* Base registers use ( ) |
| 51 | + |
| 52 | +``` |
| 53 | +addl (%ebx), %eax |
| 54 | +movl $1,%eax |
| 55 | +``` |
| 56 | + |
| 57 | +More [details here](https://imada.sdu.dk/u/kslarsen/dm546/Material/IntelnATT.htm) |
| 58 | + |
0 commit comments