SC : EP01 : DISCOVERING AND EXPLOITING : SHELLCODE --- INTRODUCTION BEFORE YOU BEGAIN
THOUGHT OF AUTHOR : From now on my blog is going to publish a series of post about finding and exploiting the vulnerability of the system. This tutorials teach you from the basic to the next level. So keep in touch with us. PEACE ;) JAI HIND \m/
#START:EP01:
BASIC CONCEPT : Before you begin to understand the concepts, you need to know some basic definitions or terms.
*Vulnerability : A flaw in a system's security that can lead to an attacker getting access of a system. This can include the availability of the system, elevating access privileges to an unintended level , complete control of the system by an unauthorized party and many other possibilities. Also known as a security hole or security hole or security bug.
*Exploit(v) : To take advantage of a vulnerability so that the system reacts in a manner other than that which the designer intended.
*Exploit(n) : The tool , set of instructions, or code that is used to take advantage of a vulnerability. Also known as Proof of Concept(POC).
*0day(n) : An exploit for a vulnerability that has not been publicly disclosed. Sometimes used to refer to the vulnerability itself.
*Fuzzer(n) : A tool or application that attempts all or wide range of unexpected input values to a system. The purpose of a fuzzer is to determine whether a bug exists in the system, which could later be exploited without having fully know the target system's internal functioning.
Figure.1
MEMORY MANAGEMENT : Every program has it's own memory space. When a program executed , various content of the program mapped into memory.
First Operating System creates address space in which the program will run. This address space will include the actual program instructions as well as any required data.
Next information of the program is loaded from executable to newly created address space. This information contain three types of segments: .text (read-only), .bss (writable) and .data(writable). The .data and .bss segments are reserved for global variables. The .data segment contains static initialized data, while the .bss segment contains uninitialized data. And .text, holds the program instructions.
Finally, the stack and heap are initialized. The stack is a data structure, more specifically a Last In First Out(LIFO) data structure. The stack stores local variables, functional calls and other information used to clean up the stack after a function or procedure is called. Another important feature of the stack is that it grows down the address space: as more data is added to the stack, it is added at increasingly lower address values. The heap is another data structure used to hold program information, more specifically dynamic variables. The heap is First In First Out (FIFO) data structure. As data is added to the heap, it is added at increasingly higher address value. (see Figure.1)
Figure.2
REGISTER :
A computer processor consists of a small set of data holding places called register. (see Figure.2). A register may hold a computer instruction, a storage address, a flag or bit sequence. Registers can be grouped into four categories :
*General purpose: General purpose registers are used to perform a range of common mathematical operations. They include registers such as EAX,EBX and ECx for the IA32, and can be used to store data and addresses, offset addresses, perform counting functions and many other things. There is also a Extended Stack Pointer Register (ESP) or simply the stack pointer. ESP points to the memory address where the next stack operation will be tack place.
*Segment : The segment register are 16 bit. They are commonly CS, DS and SS.
*Control : Control registers are used to control the processor. The most important of these registers for the IA32 is the Extended Instruction Pointer (EIP) or simply instruction pointer. EIP contains the address of the next machine instruction to be executed.
*other : The registers in the other category are simply extraneous registers that do not fit neatly into the first three categories. One of these registers is the Extended Flags (EFLAGS) register, which comprises many single-bit registers that are used to store the results of various tests performed by the processor.
***All register are 32 bit except segment registers are 16 bit.
#END:EP01:
****to be continued till next. :)
To get more information what i discussed search the internet. And if you have any query fell free to ask. Thanks to visit us.
To get more information what i discussed search the internet. And if you have any query fell free to ask. Thanks to visit us.
Find us on Facebook : https://www.facebook.com/Sourceinfo
Find us on Youtube : https://www.youtube.com/channel/UCx3DsLftaibO_ErCdTwGbCA
#UNITED_BY_ONE#
#DIVIDED_BY_ZERO#
#PEACE#



Comments
Post a Comment