A Brute-Force Approach to Automatic Induction of Machine Code on CISC Architectures

نویسندگان

  • Felix Kühling
  • Krister Wolff
  • Peter Nordin
چکیده

RISC stands for " Reduced Instruction Set Computer ". On RISC architectures the instruction length is constant, e.g. 32 bit on a SPARC. For a given instruction opcode there are certain bits which encode the opcode and others which encode the parameters. This makes point mutations conserving syntactic closure straight−forward. Parameters of an instruction can be changed by only modifying the bits encoding parameters. An instruction can always be replaced by a different one since they all have the same length. String crossover operations are simple for the same reason. The crossover points have to be aligned to 32 bit boundaries in the SPARC example. CISC means " Complete/Complex Instruction Set Computer ". On CISC architectures like the Intel 32 bit architecture instruction lengths can range from 1 byte to 14 or more bytes with immediate operands, address offsets and instruction prefixes. If syntactic closure has to be ensured this requires more sophisticated point mutation and string crossover operations. Possibly one would limit the instruction set to simplify those operations giving up one strength of the CISC architecture. Debugger Services Debugger services are operating system services which allow one process in a multi− tasking operating system to control the execution of another process. This includes access to the memory and the CPU registers of the debugged process. Signals sent to the process can be intercepted. The debugging process has the choice to deliver a signal to the debugged programme, to modify it or not to deliver it at all. This is important since all errors like illegal instructions or access to unmapped addresses are reported by the operating systems by sending signals to the offending process, which usually lead to its termination. Signals generated by a timer can be caught in this way, too. Furthermore it is possible to intercept system calls from the debugged programme. Again, they can be delivered, modified or ignored. Memory Mapping In modern multi−tasking operating systems one distinguishes physical memory which is typically something between 128 and 512 MB on a workstation and the virtual address space which is 4 GB on 32 bit architecture. Each process has its own 4GB virtual address space. The translation from a virtual address to a physical memory address is called memory mapping. This is supported by a memory management unit (MMU) in the processor. The figure below illustrates the memory mapping for one typical process. Note: The Linux …

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Efficient Evolution of Machine Code for CISC Architectures using Blocks and Homologous Crossover

This chapter describes recent advances in genetic programming of machine code. Evolutionary program induction of binary machine code is one of the fastest GP methods and the most well studied linear approach. The technique has previously been known as Compiling Genetic Programming System (CGPS) but to avoid confusion with methods using an actual compiler and to separate the system from the meth...

متن کامل

2.1 Introduction

This chapter describes recent advances in genetic programming of machine code. Evolutionary program induction using binary machine code is the fastest known Genetic Programming method. It is, in addition, the most well studied Genetic Programming system that uses a linear genome. Evolutionary program induction using binary machine code was originally referred to as Compiling Genetic Programming...

متن کامل

Technological Steps toward a Software Component Industry

A machine_independent abstract program representation is presented that is twice as compact as machine code for a CISC processor. It forms the basis of an implementation, in which the process of code generation is deferred until the time of loading. Separate compilation of program modules with type_safe interfaces, and dynamic loading (with code generation) on a per_module basis are both suppor...

متن کامل

A Machine-Checked Safety Proof for a CISC-Compatible SFI Technique

Executing untrusted code while preserving security requires that the code be prevented from modifying memory or executing instructions except as explicitly allowed. Software-based fault isolation (SFI) or “sandboxing” enforces such a policy by rewriting code at the instruction level. In previous work, we developed a new SFI technique that is applicable to CISC architectures such as the Intel IA...

متن کامل

A Performance Survey of Meta-Heuristic And Brute-Force Search Algorithms to Cryptanalysis The SDES Encryption Algorithm

For many years, cryptanalysis has been considered as an attractive topic in jeopardizing the security and resistance of an encryption algorithm. The SDES encryption algorithm is a symmetric cryptography algorithm that performs a cryptographic operation using a crypt key. In the world of encryption, there are many search algorithms to cryptanalysis. In these researches, brute force attack algori...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2002