User Tools

Site Tools


labs:disassembly

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
labs:disassembly [2017/03/23 14:35]
manuelei
labs:disassembly [2017/03/23 16:57]
manuelei
Line 18: Line 18:
   * Hex editor: Bless   * Hex editor: Bless
   * Disassembler:​ objdump   * Disassembler:​ objdump
-  * Web assembler/​disassembler:​ https://​defuse.ca/​online-x86-assembler.htm (Attention: Uses Intel syntax, which has arguments in different order than objdump)+  * Web assembler/​disassembler:​ https://​defuse.ca/​online-x86-assembler.htm (Attention: Uses Intel syntax, which has arguments in different order than objdump.)
  
   * IA-32 cheat sheet (GNU format): http://​www.cs.utsa.edu/​~clark/​cs3843/​IA32cheatSheet.pdf   * IA-32 cheat sheet (GNU format): http://​www.cs.utsa.edu/​~clark/​cs3843/​IA32cheatSheet.pdf
   * Intel IA-32 instruction set reference: http://​www.intel.com/​content/​dam/​www/​public/​us/​en/​documents/​manuals/​64-ia-32-architectures-software-developer-instruction-set-reference-manual-325383.pdf   * Intel IA-32 instruction set reference: http://​www.intel.com/​content/​dam/​www/​public/​us/​en/​documents/​manuals/​64-ia-32-architectures-software-developer-instruction-set-reference-manual-325383.pdf
  
-  ​We have written a tool which allows you to insert your own machine code (produced e.g. with asinto SuperTuxKart. It is contained in the same zip folder as the other executables. \\ Usage: ./elf_tool <​executable_file>​ <​new_machine_code_file (inject_code.bin)>​ <​insertion_address>​. \\ The tool inserts the code into the executable, and writes a jump to the new code at the specified insertion_address (given in hexadecimal,​ e.g. 80487f0). Note that the inserted jump will **overwrite 6 bytes** of the code, so if the overwritten ​code is still needed, you have to repeat it in your new code. +===== Hints ===== 
-  * Assembling: Write assembly in a file called inject_code.s and execute the following command to get the machine code binary file required for the elf_tool: as %%--%%32 -o inject_code.o inject_code.s && objcopy -O binary inject_code.o inject_code.bin && rm inject_code.o+  ​1Assembly ​code is not needed.
  
 +  * 3) 
labs/disassembly.txt · Last modified: 2020/08/31 21:05 (external edit)