Showing posts with label Reverse Enginering. Show all posts
Showing posts with label Reverse Enginering. Show all posts

Thursday, February 9, 2012

MEMORY REGISTERS

CPU REGISTERS

A processor takes data and instructions that are stored in memory and performs whatever calculations are required, then writes the output back into memory as applicable. However, the CPU needs a place to store the data it retrieves from memory while it calculates; this is where the registers come in. Registers are small segments of memory inside the CPU that are used for temporarily storing data; some have specific functions, others are just used for general data storage. 

There are many registers used by a processor, but we are concerned primarily with a group of registers called the general purpose registers. The general purpose registers are composed of:

AMD64_EM64T_architectur
EAX : Extended Accumulator Register
EBX : Extended Base Register
ECX : Extended Counter Register
EDX : Extended Data Register
ESI : Extended Source Index
EDI : Extended Destination Index
EBP : Extended Base Pointer
ESP : Extended Stack Pointer
EIP : Extended Instruction Pointer  
  • The EAX register is called the accumulator, and is commonly used to hold the results of a calculation.  
  • EBX is a pointer to the data segment, and ECX is normally used to count the number of iterations in a loop; EDX is used as an I/O pointer.
  • ESI and EDI are used to specify source and destination addresses respectively; they are most often used when copying strings from one memory address to another.
  • ESP is a stack register, called a stack pointer, that points to the top of the stack; EBP is also a stack register (called the base pointer), used to reference local variables and function arguments on the stack.  
  • EIP is the instruction pointer register - it controls program execution by pointing to the address of the next instruction to be executed.
  • The 'E' at the beginning of each register name stands for Extended.  

 (source : ethicalhacker.net , wikipedia , code )

Wednesday, February 8, 2012

Fuzzing For Reverse Enginering


FUZZING
Fuzzing is a process or method used to find a logic error and failure in a data processing applications by providing an abnormal input into an application and see and learn how the application handles the exception that there is. 

Fuzzer is a mention for applications used in the fuzzing process. Basically a way of working by sending data simultaneously and repeatedly either automatically or semi-automatic into a software for processing. fuzzer based on how it works is divided into two kinds, they are mutation-bassed and generation - based.

Fuzzing for reverse engineering 
fuzzing is first time process stage which would be carried out by a security researcher, through the process of fuzzing an application can be set up to treat abnormal or invalid data that will be seen how the application handles the data and process handling error by the application. Of this process that a researcher can see if there are security holes in applications that can be exploited.