Download presentation
Presentation is loading. Please wait.
Published byAntony Jacobs Modified over 9 years ago
1
DR. MIGUEL ÁNGEL OROS HERNÁNDEZ 2. Software de bajo nivel
2
1. Perspectivas de bajo y alto nivel 2. Ensamblador 3. Compilación 4. Ambientes de ejecución
3
Perspectivas de bajo y alto nivel
4
Perspectivas de bajo y alto nivel high-level perspectives Program structure Encapsulation Modules Static libraries Dynamic (Link) libraries Common code constructs Procedures Objects Data Management Variables User-defined data structures Lists Control Flow Conditional blocks Switch blocks (n-way conditionals) Loops High-Level Languages CC C++ Java C# (CLR-MSIL)
5
Perspectivas de bajo y alto nivel low-level perspectives Low-level data management Registers The stack Temporarily saved register values Local variables Function parameters and return addresess Heaps Executable Data Sections Control flow
6
Ensamblador
7
Ensamblador registers RegisterDescription EAX, EBX, EDX Generic registers They can be used for any integer, boolean, logical, or memory operation ECX Generic register used as a counter by repetitive instructions ESI/EDI Generic registers Used as source/destination pointers EBP Generic register Used as the stack base ponter ESP CPU stack pointer Stores the current position in the stack
8
Ensamblador Flags Special register Contains all kinds of status and system flags Instruction format Opcode DestOp SourceOp Basic instructions Moving data ( MOV ) Arithmetic ( ADD, SUB, MUL, DIV, IMUL, IDIV ) Conditional branches ( JCC, JNZ ) Function calls ( CALL ) Examples cmp ebx, 0xf020 jnz 10026509 mov edi, [ecx+0x5b0] mov ebx, [ecx+0x5b4] imul edi, ebx
9
Compilación
10
Herramientas compiladores Source code Object File Executable compilationlinking Human readable Text file Binary code with readable symbols Binary code with no symbols Code readability
11
Ambientes de ejecución
12
The componet that actually runs programs CPU Software environment, p.e. virtual machine Software execution environment Bytecode Virtual machine Java Virtual Machine (JVM) Common Language Runtime (CLR) Benefits Platform isolation Enhanced functionality Interpreters Just-in-Time compilers (JiTs) Reversing strategies (bytecode programs)
13
Ambientes de ejecución Hardware execution environments in modern processors AMD (Advanced Micro Devices) Intel NetBurst ops Pipelines Branch prediction
14
Bibliografía Reversing: Secrets of Reverse Engineering Eldad Eilam Wiley Publishing, Inc. 2005
15
Fin
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.