Reverse engineering basics
Mg.sc.comp. Kirils Solovjovs Possible Security @KirilsSolovjovs on twitter http://kirils.org for more
Reverse engineering basics @KirilsSolovjovs on twitter Mg.sc.comp. - - PowerPoint PPT Presentation
Reverse engineering basics @KirilsSolovjovs on twitter Mg.sc.comp. Kirils Solovjovs http://kirils.org for more Possible Security Reverse engineering? www.indiamart.com Contents Hardware architecture Processors and machine language
Mg.sc.comp. Kirils Solovjovs Possible Security @KirilsSolovjovs on twitter http://kirils.org for more
www.indiamart.com
Kirils Solovjovs, 10/07/2018 possiblesecurity.com Reverse engineering basics 3/25
– Static analysis – Binary debugging
Kirils Solovjovs, 10/07/2018 possiblesecurity.com Reverse engineering basics 4/25
Kirils Solovjovs, 10/07/2018 possiblesecurity.com Reverse engineering basics 5/25
Kirils Solovjovs, 10/07/2018 possiblesecurity.com Reverse engineering basics 6/25
– Physical rewiring
required
– Takes weeks
Kirils Solovjovs, 10/07/2018 possiblesecurity.com Reverse engineering basics 7/25
Kirils Solovjovs, 10/07/2018 possiblesecurity.com Reverse engineering basics 8/25
Kirils Solovjovs, 10/07/2018 possiblesecurity.com Reverse engineering basics 9/25
–
Data
–
Instructions
different attributes
Instruction memory I/O Control unit Data memory ALU
Kirils Solovjovs, 10/07/2018 possiblesecurity.com Reverse engineering basics 10/25
CPU.
– Data operations – Arithmetic and logic operations – Control fmow operations
– 8086, ARM, MIPS, VAX, ...
Kirils Solovjovs, 10/07/2018 possiblesecurity.com Reverse engineering basics 11/25
MIPS32 Add Immediate Instruction
Equivalent mnemonic:
addi $r1, $r2,350 001000 00001 00010 0000000101011110
OP Code Addr 1 Addr 2 Immediate value
Kirils Solovjovs, 10/07/2018 possiblesecurity.com Reverse engineering basics 12/25
Kirils Solovjovs, 10/07/2018 possiblesecurity.com Reverse engineering basics 13/25
4GiB of virtual address space available to them.
same for every instance of a process
* before ASLR
Virtual address space Physical address space
0x00000000 0x00010000 0x10000000 0x7fffffff 0x00000000 0x00ffffff page belonging to process page not belonging to process
text data stack
Kirils Solovjovs, 10/07/2018 possiblesecurity.com Reverse engineering basics 14/25
stored then?
– Stack and heap
allocation, random access
allocation
Kirils Solovjovs, 10/07/2018 possiblesecurity.com Reverse engineering basics 15/25
Kirils Solovjovs, 10/07/2018 possiblesecurity.com Reverse engineering basics 16/25
assembly
(relocatable object code)
machine code
Kirils Solovjovs, 10/07/2018 possiblesecurity.com Reverse engineering basics 17/25
–
gcc -S fjle.c -o fjle.s
–
gcc -c fjle.s -o fjle.o
–
gcc fjle.o -o fjle
Kirils Solovjovs, 10/07/2018 possiblesecurity.com Reverse engineering basics 18/25
Kirils Solovjovs, 10/07/2018 possiblesecurity.com Reverse engineering basics 19/25
Kirils Solovjovs, 10/07/2018 possiblesecurity.com Reverse engineering basics 20/25
– pdf @ main
Kirils Solovjovs, 10/07/2018 possiblesecurity.com Reverse engineering basics 21/25
Kirils Solovjovs, 10/07/2018 possiblesecurity.com Reverse engineering basics 22/25
– info fjles – b *main
– start – info registers – x/i $pc
Kirils Solovjovs, 10/07/2018 possiblesecurity.com Reverse engineering basics 23/25
Kirils Solovjovs, 10/07/2018 possiblesecurity.com Reverse engineering basics 24/25
Kirils Solovjovs, 10/07/2018 possiblesecurity.com Reverse engineering basics 25/25
Slides are available on http://kirils.org Find me on twitter: @KirilsSolovjovs