SlideShare a Scribd company logo
IOSR Journal of Computer Engineering (IOSR-JCE)
e-ISSN: 2278-0661,p-ISSN: 2278-8727, Volume 17, Issue 3, Ver. 1 (May – Jun. 2015), PP 82-88
www.iosrjournals.org
DOI: 10.9790/0661-17318288 www.iosrjournals.org 82 | Page
A novel algorithm to protect and manage memory locations
Buthainah F. AL-Dulaimi, Sawsan H. Jaddoa
(College of Education for Women/University of Baghdad, Iraq)
Abstract: Most of security vulnerabilities continue to be caused by memory errors, and long-running programs
that interact with untrusted components. While comprehensive solutions have been developed to handle memory
errors, these solutions suffer from one or more of the following problems: high overheads, incompatibility, and
changes to the memory model. Address space randomization is a technique that avoids these drawbacks, but do
not offer a level of protection. To overcome these limitations, we develop a new approach in this paper that
supports comprehensive randomization, whereby the absolute locations of all (code and data) objects, as well as
their relative distances are randomized. In particular, we have successfully deployed precise method in the
implementation of a language run-time system. Our approach is implemented as a fully automatic source-to-
source transformation, the address-space randomizations take place at load-time or runtime, so the same copy
of the binaries can be distributed to everyone - this ensures compatibility with today's software distribution
model.
Keywords: Garbage collection, memory errors, memory protection, memory reallocation, transformation,
program locations.
I. Introduction
Intuitively, a memory error occurs in programs when the object accessed via a pointer expression is
different from the one intended by the programmer. The intended object is called the referent of the pointer.
Memory errors can be classified into spatial and temporal errors:
a- A spatial error occurs when dereferencing a pointer that is outside the bounds of its referent. It may be
caused as a result of:
 Dereferencing non-pointer data, e.g., a pointer may be (incorrectly) assigned from an integer, and
dereferenced subsequently. The same integer value, when interpreted as a pointer, will reference different
variables (or code) for each execution of the program.
 Dereferencing uninitialized pointers. This case differs from the first case only when a memory object is
reallocated.
 Valid pointers used with invalid pointer arithmetic. The most common form of memory access error,
namely, out-of-bounds array access, falls in this category.
b- A temporal error occurs when dereferencing a pointer whose referent no longer exists, i.e., it has been freed
previously. If the invalid access goes to an object in free memory, then it causes no errors. But if the
memory has been reallocated, then temporal errors allow the contents of the reallocated object to be
corrupted using the invalid pointer. Note that the results of such errors become predictable only when the
purpose of reuse of the memory location is predictable. It may appear that temporal errors, and errors
involving uninitialized pointers, are an unlikely target for attackers. In general, it may be hard to exploit
such errors if they involve heap objects, as heap allocations tend to be somewhat unpredictable even in the
absence of any randomizations. However, stack allocations are highly predictable, so these errors can be
exploited in attacks involving stack-allocated variables. [1]
Unfortunately, existing techniques to exploit memory errors are associated with high overheads and
nontrivial programming effort is often required so that they can work with these tools. Precompiled libraries can
pose additional compatibility problems. The existing approaches are concerned with preventing all invalid
memory accesses; we present an approach with a more limited goal: it only seeks to ensure that the results of
any invalid access are unpredictable and this goal can be achieved with a much lower runtime overhead. Our
approach is based on the address of the location of code and data objects that are resident in memory. The
approach is using randomization techniques and these techniques can provide protection against most known
types of memory error exploits, they are vulnerable to several classes of attacks including relative-address
attacks, information leakage attacks, and attacks on randomization. The approach developed in this paper is
aimed at protecting against all memory error exploits, whether they are known or unknown. Our approach
makes the memory locations of program objects (including code as well as data objects) unpredictable. This is
achieved by randomizing the absolute locations of all objects, as well as the relative distance between any two
objects. Our implementation uses a source-to-source transformation. Instead, the transformation produces a self-
A novel algorithm to protect and manage memory locations
DOI: 10.9790/0661-17318288 www.iosrjournals.org 83 | Page
randomizing program: a program that randomizes itself each time it is run, or continuously during runtime. This
means that the use of our approach doesn't, in any way, change the software distribution model that is prevalent
today.
II. Static Data Transformations
Static Data Transformations
One possible approach to randomize the location of static data is to recompile the data into position-
independent code (PIC). A drawback of this approach is that it does not protect against relative address attacks,
e.g., an attack that overflows past the end of a buffer to corrupt security-critical data that is close to the buffer.
Moreover, an approach that relies only on changes to the base address is very vulnerable to information leakage
attacks, where an attacker may mount a successful attack just by knowing the address of any static variable, or
the base address of the static area. At the beginning of program execution, control is transferred to an
initialization function introduced into the transformed program. This function first allocates a new region of
memory to store the original static variables. This memory is allocated dynamically so that its base address can
be chosen randomly. Note that bounds-checking errors dominate among memory errors. Such errors occur either
due to the use of an array subscript that is outside its bounds, or more generally, due to incorrect pointer
arithmetic. For this reason, our transformation separates buffer-type variables, which can be sources of bounds-
checking errors, from other types of variables. Buffer-type variables include all arrays and structures containing
arrays. In addition, they include any variable whose address is taken, since it may be used in pointer arithmetic,
which can in turn lead to out-of-bounds access. All buffer-type variables are allocated separately from other
variables. Inaccessible memory pages (neither readable nor writable) are introduced before and after the
memory region containing buffer variables, so that any buffer overflows from these variables cannot corrupt
non-buffer variables.
Code Transformations
As with static data, one way to randomize code location is to generate PIC code, and map this at a
randomly chosen location at runtime. Specifically, our randomization technique works at the granularity of
functions. To achieve this, a function pointer is associated with each function. It is initialized with the value of
function. These functions are reordered in a random manner, using a procedure similar to that used for
randomizing the order of static variables. Random gaps and inaccessible pages are inserted periodically during
this process in order to introduce further uncertainty in code locations, and to provide additional protection. The
transformation ensures that these gaps do not increase the overall space usage for the executable by more than a
specified parameter. After relocating functions, the initializations of variables are changed so as to reflect the
new location of each function. As a final step, the function pointer table needs to be write-protected. [2]
III. Manage Memory Location
Automatic memory management simplifies most implementation tasks, and among programming
languages currently in widespread use, most automates memory management through garbage collection (GC).
A popular approach for adding GC is to use conservative GC, assumes that any word in a register, on the stack,
in a static variable, or in a reachable allocated object is a potential pointer that counts toward the further reach
ability of objects. A conservative GC is typically implemented as a library, which makes using it relatively easy.
Conservative GC can trigger unbounded memory use due to linked lists that manage threads and continuations.
The key constraint a C program must obey to GC is that the static types in the program source must match the
program’s run-time behavior, at least to the extent that the types distinguish pointers from non-pointers. The
implementation of precise GC, meanwhile, is responsible for handling union types and the fact that the static
type of a C variable or expression often provides an incomplete description of its run-time shape. Thus, the
concerns for precise GC in the source program can be divided into two parts: those that relate to separating live
pointers from other values, and those that relate to connecting allocation with the shape of the allocated data. [3]
For GC to work, all live objects must be reachable via pointer chains starting from roots, which include
static and local variables with pointer types. For precise GC, the values of variables and expressions typed as
non-pointers must never be used as pointers to GC-allocated objects, because objects are not considered to be
reachable through such references. Memory can be allocated but the allocated memory is treated by the GC as
an array of non-pointers. Object-referencing invariants must hold whenever a collection is possible, but some
code (such as a library function) might safely break the temporarily between collections. The GC may also
allow a pointer-typed location to refer to an address that is not a GC-allocated object. The transformation to
support precise GC must detect allocations and replace them with GC allocations, in the process associating tags
(for mark and repair functions) with the allocated data. [4, 5, 6]
A novel algorithm to protect and manage memory locations
DOI: 10.9790/0661-17318288 www.iosrjournals.org 84 | Page
IV. Garbage Collection
In computer science, garbage collection (GC) is a form of automatic memory management.
The garbage collector, or just collector, attempts to reclaim garbage, or memory occupied by objects that are no
longer in use by the program. Garbage collection is often portrayed as the opposite of manual memory
management, which requires the programmer to specify which objects to deallocate and return to the memory
system. However, many systems use a combination of approaches, including other techniques such as stack
allocation and region inference. Like other memory management techniques, garbage collection may take a
significant proportion of total processing time in a program and can thus have significant influence on
performance. The basic principles of garbage collection are:
- Find data objects in a program that cannot be accessed in the future.
- Reclaim the resources used by those objects.
Many programming languages require garbage collection as part of the language specification (for
Java, C#) these are said to be garbage collected languages. Other languages were designed for use with manual
memory management, but have garbage collected implementations available (for C, C++). While integrating
garbage collection into the language's compiler and runtime system enables a much wider choice of methods GC
systems exist. The garbage collector will almost always be closely integrated with the memory allocator.
Garbage collection frees the programmer from manually dealing with memory deallocation. Some of the bugs
addressed by garbage collection can have security implications. As a result, certain categories of bugs are
eliminated or substantially reduced:
- Dangling pointer bugs, which occur when a piece of memory is freed while there are still pointers to it, and
one of those pointers is dereferenced. By then the memory may have been reassigned to another use, with
unpredictable results.
- Double free bugs, which occur when the program tries to free a region of memory that has already been
freed, and perhaps already been allocated again.
- Certain kinds of memory leaks, in which a program fails to free memory occupied by objects that have
become unreachable, which can lead to memory exhaustion.
- Efficient implementations of persistent data structures
Typically, garbage collection has certain disadvantages:
- Garbage collection consumes computing resources in deciding which memory to free, even though the
programmer may have already known this information. The penalty for the convenience of not annotating
object lifetime manually in the source code is overhead, which can lead to decreased or uneven
performance.
- The moment when the garbage is actually collected can be unpredictable, resulting in stalls scattered
throughout a session. Unpredictable stalls can be unacceptable in real-time environments, in transaction
processing, or in interactive programs. Incremental, concurrent, and real-time garbage collectors address
these problems, with varying trade-offs.
Tracing garbage collection
The overall strategy consists of determining which objects should be garbage collected by tracing
which objects are reachable by a chain of references from certain root objects, and considering the rest as
garbage and collecting them.
Reference counting
It is a form of garbage collection whereby each object has a count of the number of references to it.
Garbage is identified by having a reference count of zero. An object's reference count is incremented when a
reference to it is created and decremented when a reference is destroyed. The object's memory is reclaimed
when the count reaches zero. As with manual memory management, and unlike tracing garbage collection,
reference counting guarantees that objects are destroyed as soon as their last reference is destroyed, and usually
only accesses memory which is either in CPU caches, in objects to be freed, or directly pointed by those, and
thus tends to not have significant negative side effects on CPU cache and virtual memory operation. [7, 8]
V. The Proposed Transformation
The proposed transformation algorithm and the implementation
The proposed transformation algorithm is outlined in the following steps, and its implementation is illustrated
afterward in Fig. 1 below.
Step 1: Prompt the user to enter the number of random memory locations to generate.
cout<<"How many random memory location to generate:";
A novel algorithm to protect and manage memory locations
DOI: 10.9790/0661-17318288 www.iosrjournals.org 85 | Page
cin>>howMany;
Step 2: create a dynamic array to store the random numbers using malloc.
intptr =(int *) malloc(howMany * sizeof(int));
step 3: In this example we have tested to be sure malloc succeeded. If not, we are outof memory
if (intptr == NULL){
cout<<"memory allocation error exitingn";
exit(1);}
Step 4: generate the random locations and print them
for (inti=0;i<howMany;i++){
intptr[i]=random(1000);}
cout<<" locations Valuesn";
PrintArray(intptr,howMany);
Step 5: double the size of the array usingrealloc
intptr = (int *)realloc(intptr, 2*howMany);
Step 6: generate new array add to random numbers and print them
for ( i=0; i<howMany; i++){
intptr[i]=intptr[i]+random(1000);}
cout<<" new locationsn";
PrintArray(intptr,howMany);
Step 7: free the memory location we used
free(intptr);
Fig. 1. The implementation of the transformation
Our approach provides the following benefits:
- Ease of use. Our approach is implemented as an automatic, source-to-source transformation, and is fully
compatible with legacy C code. It can interoperate with preexisting (untransformed) libraries.
- Comprehensive randomization. At runtime, the absolute as well as relative distances between all memory-
resident objects are randomized.
- Portability across multiple platforms. The vast majority of our randomizations are OS and architecture
independent. This factor eases portability of our approach to different platforms.
- Low runtime overhead. Our approach produces low overheads.
- Ease of deployment. Our approach can be applied to individual applications without requiring changes to
the OS kernel, system libraries or the software distribution models.
VI. The Proposed Garbage Collection
The proposed strategy
- The program is consists of three classes the first one is “oper” stands for “operation” which is the main
class and the second is “RC” stands for “reference counter” which plays the role of deleting the object, the
last class is “SP” stands for “smart pointer” which represent the functions of the smart pointer in our
example.
- Class “oper” consists of an array that will store the elements for three functions each one represent a
specific type of sorting algorithms (bubble, insertion, and selection). Also “display” function, the default
constructors and destructor.
A novel algorithm to protect and manage memory locations
DOI: 10.9790/0661-17318288 www.iosrjournals.org 86 | Page
- Class “RC” consists of one variable which is “count” it is to count the number of pointers that refer to a
specific location, also two functions “AddRef()” increments the count value, and “Release” decrements the
count value.
- The last class is “SP” the genuine of the program it connect the parts of the program to implement the
desired idea; its consists of the pointer “pData” which refers to any type of data because its created as
template and that’s what the “SP” class accepts as an input – any type of data – and “reference” pointer
which refers to an object from the class “RC”.
The constructors of the class which calls the function “AddRef()” from the class “RC” so that the
“count” variable increments every time a smart pointer is created, weather the destructor deletes the smart
pointer when the value of “count” reaches “0” given from the function “Release”. Then an overloaded functions
defined that gives the class the abilities to return the location that the smart pointer refers to “operator*”, return
the value of the content of the smart pointer “operator->”, and the assignment operator “=” which rather than
giving the value of the location that the smart pointer refers to for more than one object, it calls the function
“AddRef()” so the value of “count” increases.
The Implementation
Fig. 2 is the “main()” function, in this function a smart pointer created with an operator object , by
running the program four options is there for the user. The first three of them represent the three types of sorting
functions and the last one is exit which deletes the pointer and ends the program, choosing one sorting function
leads us to write the numbers to be sorted as in Fig. 3. And then “display” function displays the numbers with
the correct arraignment as shown in Fig. 4. And so on the program takes the values from the user and uses one
of the sorting functions depending on the choice of the user as in Fig. 5 and demonstrating results in Fig. 6.
Until the user decide to end the process the objects delete their selves and the smart pointer also do that and the
program ends as in Fig. 7.
Fig. 2. The main menu
Fig. 3. the bubble sort
A novel algorithm to protect and manage memory locations
DOI: 10.9790/0661-17318288 www.iosrjournals.org 87 | Page
Fig. 4. The result of sorting
Fig. 5. Using sorting choice
Fig. 6. The sorting result
A novel algorithm to protect and manage memory locations
DOI: 10.9790/0661-17318288 www.iosrjournals.org 88 | Page
Fig. 7. Stopping the process
VII. Conclusions
Our approach is based on permuting the order of static variables at the beginning of program execution.
Address space randomization is a technique which provides broad protection from memory error exploits in C
and C++ programs. However, previous implementations of ASR have provided a relatively coarse granularity of
randomization, with many program objects sharing the same address mapping, so that the relative distance
between any two objects is likely to be the same in both the original and randomized program. This leaves the
randomized program vulnerable to guessing, partial pointer overwrites and information leakage attacks, as well
as attacks that modify security-critical data without corrupting any pointers. Our approach is implemented using
a source-to-source transformation that produces a self-randomizing program, which randomizes its memory
layout at load-time and runtime. This randomization makes it very difficult for memory error exploits to
succeed. Automatic memory management offers many benefit for C code, and conservative GC and reference
counting are fine choices for many programs. Those memory-management techniques are a poor match,
however, for long-running programs that have complex reference patterns and that host extensions or untrusted
code. GC needs five times the memory to compensate for this overhead and to perform as fast as explicit
memory management.
References
[1]. S. Bhatkar, D. C. Du Varney, and R. Sekar, Address obfuscation: An efficient approach to combat a broad range of memory error
exploits, In USENIX Security Symposium, Washington, DC, August 2003.
[2]. S. McPeak, G. C. Necula, S. P. Rahul, and W. Weimer, CIL: Intermediate language and tools for C program analysis and
transformation, In Conference on Compiler Construction, 2002.
[3]. J. Baker, Antonio Cunei, FilipPizlo, and Jan Vitek, Accurate garbage collection in uncooperative environments with lazy pointer
stacks, In International Conference on Compiler Construction, 2007.
[4]. M. Hirzel, A. Diwan, and J. Henkel, On the usefulness of type and liveness accuracy for garbage collection and leak detection.
ACM Transaction Program. Language System, 24(6), 2002, 593–624.
[5]. S. M. Pike, B. W. Weide, and J. E. Hollingsworth, Checkmate: cornering C++ dynamic memory errors with checked pointers.
SIGCSE Technical Symposium on Computer Science Education, 2000, 352–356.
[6]. A. W. Magpie, Precise Garbage Collection for C, PhD thesis, University of Utah, June 2006.
[7]. J. Richard, H. Antony, M. Eliot, The Garbage Collection Handbook: The Art of Automatic Memory Management, CRC Applied
Algorithms and Data Structures Series. Chapman and Hall/CRC, 19 Aug. 2011, ISBN 1-4200-8279-5.
[8]. W. Fu and Carl Hauser, A Real-Time Garbage Collection Framework for Embedded Systems, ACM SCOPES '05, 2005,
Portal.acm.org. Retrieved 9 July 2010.

More Related Content

What's hot

Human Machine Learning and Analysis
Human Machine Learning and AnalysisHuman Machine Learning and Analysis
Human Machine Learning and AnalysisEmil Lupu
 
Coupling and cohesion
Coupling and cohesionCoupling and cohesion
Coupling and cohesionSutha31
 
Internet Worm Classification and Detection using Data Mining Techniques
Internet Worm Classification and Detection using Data Mining TechniquesInternet Worm Classification and Detection using Data Mining Techniques
Internet Worm Classification and Detection using Data Mining Techniquesiosrjce
 
Cohesion and coupling in software design
Cohesion and coupling in software designCohesion and coupling in software design
Cohesion and coupling in software designAhmed Saad Khames
 
Architecture of a morphological malware detector
Architecture of a morphological malware detectorArchitecture of a morphological malware detector
Architecture of a morphological malware detectorUltraUploader
 
Irregular Programs on GPU
Irregular Programs on GPUIrregular Programs on GPU
Irregular Programs on GPUPrashant Momale
 
Binary obfuscation using signals
Binary obfuscation using signalsBinary obfuscation using signals
Binary obfuscation using signalsUltraUploader
 
76201929
7620192976201929
76201929IJRAT
 
A Survey of Symbolic Execution Tools
A Survey of Symbolic Execution ToolsA Survey of Symbolic Execution Tools
A Survey of Symbolic Execution ToolsCSCJournals
 
UML Diagrams For Online Course Portal
UML Diagrams For Online Course PortalUML Diagrams For Online Course Portal
UML Diagrams For Online Course PortalHarieHaren GV
 
A Model of Local Area Network Based Application for Inter-office Communication
A Model of Local Area Network Based Application for Inter-office CommunicationA Model of Local Area Network Based Application for Inter-office Communication
A Model of Local Area Network Based Application for Inter-office Communicationtheijes
 
Encryption-Based Multilevel Model for DBMS
Encryption-Based Multilevel Model for DBMSEncryption-Based Multilevel Model for DBMS
Encryption-Based Multilevel Model for DBMSAmna Magzoub
 
Are current antivirus programs able to detect complex metamorphic malware an ...
Are current antivirus programs able to detect complex metamorphic malware an ...Are current antivirus programs able to detect complex metamorphic malware an ...
Are current antivirus programs able to detect complex metamorphic malware an ...UltraUploader
 
Performance Analysis of Parallel Algorithms on Multi-core System using OpenMP
Performance Analysis of Parallel Algorithms on Multi-core System using OpenMP Performance Analysis of Parallel Algorithms on Multi-core System using OpenMP
Performance Analysis of Parallel Algorithms on Multi-core System using OpenMP IJCSEIT Journal
 

What's hot (19)

Human Machine Learning and Analysis
Human Machine Learning and AnalysisHuman Machine Learning and Analysis
Human Machine Learning and Analysis
 
Coupling and cohesion
Coupling and cohesionCoupling and cohesion
Coupling and cohesion
 
Internet Worm Classification and Detection using Data Mining Techniques
Internet Worm Classification and Detection using Data Mining TechniquesInternet Worm Classification and Detection using Data Mining Techniques
Internet Worm Classification and Detection using Data Mining Techniques
 
Cohesion and coupling in software design
Cohesion and coupling in software designCohesion and coupling in software design
Cohesion and coupling in software design
 
Architecture of a morphological malware detector
Architecture of a morphological malware detectorArchitecture of a morphological malware detector
Architecture of a morphological malware detector
 
Cohesion and coupling
Cohesion and couplingCohesion and coupling
Cohesion and coupling
 
Irregular Programs on GPU
Irregular Programs on GPUIrregular Programs on GPU
Irregular Programs on GPU
 
[IJET-V2I1P13] Authors:Shilpa More, Gagandeep .S. Dhir , Deepak Daiwadney and...
[IJET-V2I1P13] Authors:Shilpa More, Gagandeep .S. Dhir , Deepak Daiwadney and...[IJET-V2I1P13] Authors:Shilpa More, Gagandeep .S. Dhir , Deepak Daiwadney and...
[IJET-V2I1P13] Authors:Shilpa More, Gagandeep .S. Dhir , Deepak Daiwadney and...
 
Binary obfuscation using signals
Binary obfuscation using signalsBinary obfuscation using signals
Binary obfuscation using signals
 
76201929
7620192976201929
76201929
 
A Survey of Symbolic Execution Tools
A Survey of Symbolic Execution ToolsA Survey of Symbolic Execution Tools
A Survey of Symbolic Execution Tools
 
UML Diagrams For Online Course Portal
UML Diagrams For Online Course PortalUML Diagrams For Online Course Portal
UML Diagrams For Online Course Portal
 
A Model of Local Area Network Based Application for Inter-office Communication
A Model of Local Area Network Based Application for Inter-office CommunicationA Model of Local Area Network Based Application for Inter-office Communication
A Model of Local Area Network Based Application for Inter-office Communication
 
Encryption-Based Multilevel Model for DBMS
Encryption-Based Multilevel Model for DBMSEncryption-Based Multilevel Model for DBMS
Encryption-Based Multilevel Model for DBMS
 
Ecbs2000
Ecbs2000Ecbs2000
Ecbs2000
 
Are current antivirus programs able to detect complex metamorphic malware an ...
Are current antivirus programs able to detect complex metamorphic malware an ...Are current antivirus programs able to detect complex metamorphic malware an ...
Are current antivirus programs able to detect complex metamorphic malware an ...
 
Atva05
Atva05Atva05
Atva05
 
Performance Analysis of Parallel Algorithms on Multi-core System using OpenMP
Performance Analysis of Parallel Algorithms on Multi-core System using OpenMP Performance Analysis of Parallel Algorithms on Multi-core System using OpenMP
Performance Analysis of Parallel Algorithms on Multi-core System using OpenMP
 
10.1.1.17.6973
10.1.1.17.697310.1.1.17.6973
10.1.1.17.6973
 

Viewers also liked

Cloud Computing: Overview & Utility
Cloud Computing: Overview & UtilityCloud Computing: Overview & Utility
Cloud Computing: Overview & Utilityiosrjce
 
Task Scheduling using Hybrid Algorithm in Cloud Computing Environments
Task Scheduling using Hybrid Algorithm in Cloud Computing EnvironmentsTask Scheduling using Hybrid Algorithm in Cloud Computing Environments
Task Scheduling using Hybrid Algorithm in Cloud Computing Environmentsiosrjce
 
Identification of Microorganism Associated With Otitis Media among Children i...
Identification of Microorganism Associated With Otitis Media among Children i...Identification of Microorganism Associated With Otitis Media among Children i...
Identification of Microorganism Associated With Otitis Media among Children i...iosrjce
 
Pose Invariant Face Recognition using Neuro-Fuzzy Approach
Pose Invariant Face Recognition using Neuro-Fuzzy ApproachPose Invariant Face Recognition using Neuro-Fuzzy Approach
Pose Invariant Face Recognition using Neuro-Fuzzy Approachiosrjce
 
Heap graph, software birthmark, frequent sub graph mining.
Heap graph, software birthmark, frequent sub graph mining.Heap graph, software birthmark, frequent sub graph mining.
Heap graph, software birthmark, frequent sub graph mining.iosrjce
 
Frequent Pattern Mining with Serialization and De-Serialization
Frequent Pattern Mining with Serialization and De-SerializationFrequent Pattern Mining with Serialization and De-Serialization
Frequent Pattern Mining with Serialization and De-Serializationiosrjce
 
Emission Control Using Methanol, Ethanol And Butanol In Diesel Engine: A Comp...
Emission Control Using Methanol, Ethanol And Butanol In Diesel Engine: A Comp...Emission Control Using Methanol, Ethanol And Butanol In Diesel Engine: A Comp...
Emission Control Using Methanol, Ethanol And Butanol In Diesel Engine: A Comp...iosrjce
 
Family Instability and Juvenile Delinquency in Nigeria: A Study of Owerri Mun...
Family Instability and Juvenile Delinquency in Nigeria: A Study of Owerri Mun...Family Instability and Juvenile Delinquency in Nigeria: A Study of Owerri Mun...
Family Instability and Juvenile Delinquency in Nigeria: A Study of Owerri Mun...iosrjce
 
Firm Value and Derivatives Use: Evidence from Nairobi Securities Exchange
Firm Value and Derivatives Use: Evidence from Nairobi Securities ExchangeFirm Value and Derivatives Use: Evidence from Nairobi Securities Exchange
Firm Value and Derivatives Use: Evidence from Nairobi Securities Exchangeiosrjce
 
Mixed Methods on the Commercialization of Cash Waqf in Nigeria: An Analysis o...
Mixed Methods on the Commercialization of Cash Waqf in Nigeria: An Analysis o...Mixed Methods on the Commercialization of Cash Waqf in Nigeria: An Analysis o...
Mixed Methods on the Commercialization of Cash Waqf in Nigeria: An Analysis o...iosrjce
 
Disclosure of Transfer Pricing Policies: An Internal Prespective
Disclosure of Transfer Pricing Policies: An Internal PrespectiveDisclosure of Transfer Pricing Policies: An Internal Prespective
Disclosure of Transfer Pricing Policies: An Internal Prespectiveiosrjce
 
A Robust Model for Thegrowth of the Nigerian Population
A Robust Model for Thegrowth of the Nigerian PopulationA Robust Model for Thegrowth of the Nigerian Population
A Robust Model for Thegrowth of the Nigerian Populationiosrjce
 
Routing and Security Issues for Trust Based Framework in Mobile Ad Hoc Networks
Routing and Security Issues for Trust Based Framework in Mobile Ad Hoc NetworksRouting and Security Issues for Trust Based Framework in Mobile Ad Hoc Networks
Routing and Security Issues for Trust Based Framework in Mobile Ad Hoc Networksiosrjce
 
Talent Management Practices in Higher Educational Institutions: German and US...
Talent Management Practices in Higher Educational Institutions: German and US...Talent Management Practices in Higher Educational Institutions: German and US...
Talent Management Practices in Higher Educational Institutions: German and US...iosrjce
 
Utilization of Foundry Waste Sand as a Masonry Mortar
Utilization of Foundry Waste Sand as a Masonry Mortar Utilization of Foundry Waste Sand as a Masonry Mortar
Utilization of Foundry Waste Sand as a Masonry Mortar iosrjce
 
A Study of the Compliance of Practising Quantity Surveyors with the Professio...
A Study of the Compliance of Practising Quantity Surveyors with the Professio...A Study of the Compliance of Practising Quantity Surveyors with the Professio...
A Study of the Compliance of Practising Quantity Surveyors with the Professio...iosrjce
 
Ant Colony Optimization for Wireless Sensor Network: A Review
Ant Colony Optimization for Wireless Sensor Network: A ReviewAnt Colony Optimization for Wireless Sensor Network: A Review
Ant Colony Optimization for Wireless Sensor Network: A Reviewiosrjce
 
Micro Insurance in India: A Gizmo to Vehicle Economic Development & Alleviate...
Micro Insurance in India: A Gizmo to Vehicle Economic Development & Alleviate...Micro Insurance in India: A Gizmo to Vehicle Economic Development & Alleviate...
Micro Insurance in India: A Gizmo to Vehicle Economic Development & Alleviate...iosrjce
 
Effect of Dividend Policy on Value Creation for Shareholders of Companies Lis...
Effect of Dividend Policy on Value Creation for Shareholders of Companies Lis...Effect of Dividend Policy on Value Creation for Shareholders of Companies Lis...
Effect of Dividend Policy on Value Creation for Shareholders of Companies Lis...iosrjce
 
Trade Openness and Volatility of India’s Exports-an Analysis
Trade Openness and Volatility of India’s Exports-an AnalysisTrade Openness and Volatility of India’s Exports-an Analysis
Trade Openness and Volatility of India’s Exports-an Analysisiosrjce
 

Viewers also liked (20)

Cloud Computing: Overview & Utility
Cloud Computing: Overview & UtilityCloud Computing: Overview & Utility
Cloud Computing: Overview & Utility
 
Task Scheduling using Hybrid Algorithm in Cloud Computing Environments
Task Scheduling using Hybrid Algorithm in Cloud Computing EnvironmentsTask Scheduling using Hybrid Algorithm in Cloud Computing Environments
Task Scheduling using Hybrid Algorithm in Cloud Computing Environments
 
Identification of Microorganism Associated With Otitis Media among Children i...
Identification of Microorganism Associated With Otitis Media among Children i...Identification of Microorganism Associated With Otitis Media among Children i...
Identification of Microorganism Associated With Otitis Media among Children i...
 
Pose Invariant Face Recognition using Neuro-Fuzzy Approach
Pose Invariant Face Recognition using Neuro-Fuzzy ApproachPose Invariant Face Recognition using Neuro-Fuzzy Approach
Pose Invariant Face Recognition using Neuro-Fuzzy Approach
 
Heap graph, software birthmark, frequent sub graph mining.
Heap graph, software birthmark, frequent sub graph mining.Heap graph, software birthmark, frequent sub graph mining.
Heap graph, software birthmark, frequent sub graph mining.
 
Frequent Pattern Mining with Serialization and De-Serialization
Frequent Pattern Mining with Serialization and De-SerializationFrequent Pattern Mining with Serialization and De-Serialization
Frequent Pattern Mining with Serialization and De-Serialization
 
Emission Control Using Methanol, Ethanol And Butanol In Diesel Engine: A Comp...
Emission Control Using Methanol, Ethanol And Butanol In Diesel Engine: A Comp...Emission Control Using Methanol, Ethanol And Butanol In Diesel Engine: A Comp...
Emission Control Using Methanol, Ethanol And Butanol In Diesel Engine: A Comp...
 
Family Instability and Juvenile Delinquency in Nigeria: A Study of Owerri Mun...
Family Instability and Juvenile Delinquency in Nigeria: A Study of Owerri Mun...Family Instability and Juvenile Delinquency in Nigeria: A Study of Owerri Mun...
Family Instability and Juvenile Delinquency in Nigeria: A Study of Owerri Mun...
 
Firm Value and Derivatives Use: Evidence from Nairobi Securities Exchange
Firm Value and Derivatives Use: Evidence from Nairobi Securities ExchangeFirm Value and Derivatives Use: Evidence from Nairobi Securities Exchange
Firm Value and Derivatives Use: Evidence from Nairobi Securities Exchange
 
Mixed Methods on the Commercialization of Cash Waqf in Nigeria: An Analysis o...
Mixed Methods on the Commercialization of Cash Waqf in Nigeria: An Analysis o...Mixed Methods on the Commercialization of Cash Waqf in Nigeria: An Analysis o...
Mixed Methods on the Commercialization of Cash Waqf in Nigeria: An Analysis o...
 
Disclosure of Transfer Pricing Policies: An Internal Prespective
Disclosure of Transfer Pricing Policies: An Internal PrespectiveDisclosure of Transfer Pricing Policies: An Internal Prespective
Disclosure of Transfer Pricing Policies: An Internal Prespective
 
A Robust Model for Thegrowth of the Nigerian Population
A Robust Model for Thegrowth of the Nigerian PopulationA Robust Model for Thegrowth of the Nigerian Population
A Robust Model for Thegrowth of the Nigerian Population
 
Routing and Security Issues for Trust Based Framework in Mobile Ad Hoc Networks
Routing and Security Issues for Trust Based Framework in Mobile Ad Hoc NetworksRouting and Security Issues for Trust Based Framework in Mobile Ad Hoc Networks
Routing and Security Issues for Trust Based Framework in Mobile Ad Hoc Networks
 
Talent Management Practices in Higher Educational Institutions: German and US...
Talent Management Practices in Higher Educational Institutions: German and US...Talent Management Practices in Higher Educational Institutions: German and US...
Talent Management Practices in Higher Educational Institutions: German and US...
 
Utilization of Foundry Waste Sand as a Masonry Mortar
Utilization of Foundry Waste Sand as a Masonry Mortar Utilization of Foundry Waste Sand as a Masonry Mortar
Utilization of Foundry Waste Sand as a Masonry Mortar
 
A Study of the Compliance of Practising Quantity Surveyors with the Professio...
A Study of the Compliance of Practising Quantity Surveyors with the Professio...A Study of the Compliance of Practising Quantity Surveyors with the Professio...
A Study of the Compliance of Practising Quantity Surveyors with the Professio...
 
Ant Colony Optimization for Wireless Sensor Network: A Review
Ant Colony Optimization for Wireless Sensor Network: A ReviewAnt Colony Optimization for Wireless Sensor Network: A Review
Ant Colony Optimization for Wireless Sensor Network: A Review
 
Micro Insurance in India: A Gizmo to Vehicle Economic Development & Alleviate...
Micro Insurance in India: A Gizmo to Vehicle Economic Development & Alleviate...Micro Insurance in India: A Gizmo to Vehicle Economic Development & Alleviate...
Micro Insurance in India: A Gizmo to Vehicle Economic Development & Alleviate...
 
Effect of Dividend Policy on Value Creation for Shareholders of Companies Lis...
Effect of Dividend Policy on Value Creation for Shareholders of Companies Lis...Effect of Dividend Policy on Value Creation for Shareholders of Companies Lis...
Effect of Dividend Policy on Value Creation for Shareholders of Companies Lis...
 
Trade Openness and Volatility of India’s Exports-an Analysis
Trade Openness and Volatility of India’s Exports-an AnalysisTrade Openness and Volatility of India’s Exports-an Analysis
Trade Openness and Volatility of India’s Exports-an Analysis
 

Similar to A novel algorithm to protect and manage memory locations

System Structure for Dependable Software Systems
System Structure for Dependable Software SystemsSystem Structure for Dependable Software Systems
System Structure for Dependable Software SystemsVincenzo De Florio
 
Code scheduling constraints
Code scheduling constraintsCode scheduling constraints
Code scheduling constraintsArchanaMani2
 
IRJET - Buffer Overflows Attacks & Defense
IRJET -  	  Buffer Overflows Attacks & DefenseIRJET -  	  Buffer Overflows Attacks & Defense
IRJET - Buffer Overflows Attacks & DefenseIRJET Journal
 
Formal Specification for Implementing Atomic Read/Write Shared Memory in Mobi...
Formal Specification for Implementing Atomic Read/Write Shared Memory in Mobi...Formal Specification for Implementing Atomic Read/Write Shared Memory in Mobi...
Formal Specification for Implementing Atomic Read/Write Shared Memory in Mobi...AIRCC Publishing Corporation
 
Formal Specification for Implementing Atomic Read/Write Shared Memory in Mobi...
Formal Specification for Implementing Atomic Read/Write Shared Memory in Mobi...Formal Specification for Implementing Atomic Read/Write Shared Memory in Mobi...
Formal Specification for Implementing Atomic Read/Write Shared Memory in Mobi...ijcsit
 
THE REMOVAL OF NUMERICAL DRIFT FROM SCIENTIFIC MODELS
THE REMOVAL OF NUMERICAL DRIFT FROM SCIENTIFIC MODELSTHE REMOVAL OF NUMERICAL DRIFT FROM SCIENTIFIC MODELS
THE REMOVAL OF NUMERICAL DRIFT FROM SCIENTIFIC MODELSIJSEA
 
Advanced computer architecture unit 5
Advanced computer architecture  unit 5Advanced computer architecture  unit 5
Advanced computer architecture unit 5Kunal Bangar
 
Parallel programming model
Parallel programming modelParallel programming model
Parallel programming modeleasy notes
 
Software Reverse Engineering in a Security Context
Software Reverse Engineering in a Security ContextSoftware Reverse Engineering in a Security Context
Software Reverse Engineering in a Security ContextLokendra Rawat
 
Defensive coding practices is one of the most critical proactive s
Defensive coding practices is one of the most critical proactive sDefensive coding practices is one of the most critical proactive s
Defensive coding practices is one of the most critical proactive sLinaCovington707
 
Simple Obfuscation Tool for Software Protection
Simple Obfuscation Tool for Software ProtectionSimple Obfuscation Tool for Software Protection
Simple Obfuscation Tool for Software ProtectionQUESTJOURNAL
 
Automatic static unpacking of malware binaries
Automatic static unpacking of malware binariesAutomatic static unpacking of malware binaries
Automatic static unpacking of malware binariesUltraUploader
 
IEEE BE-BTECH NS2 PROJECT@ DREAMWEB TECHNO SOLUTION
IEEE BE-BTECH NS2 PROJECT@ DREAMWEB TECHNO SOLUTIONIEEE BE-BTECH NS2 PROJECT@ DREAMWEB TECHNO SOLUTION
IEEE BE-BTECH NS2 PROJECT@ DREAMWEB TECHNO SOLUTIONranjith kumar
 
Implementation of reducing features to improve code change based bug predicti...
Implementation of reducing features to improve code change based bug predicti...Implementation of reducing features to improve code change based bug predicti...
Implementation of reducing features to improve code change based bug predicti...eSAT Journals
 
SELF CORRECTING MEMORY DESIGN FOR FAULT FREE CODING IN PROGRESSIVE DATA STREA...
SELF CORRECTING MEMORY DESIGN FOR FAULT FREE CODING IN PROGRESSIVE DATA STREA...SELF CORRECTING MEMORY DESIGN FOR FAULT FREE CODING IN PROGRESSIVE DATA STREA...
SELF CORRECTING MEMORY DESIGN FOR FAULT FREE CODING IN PROGRESSIVE DATA STREA...VLSICS Design
 
Dynamic Multi Levels Java Code Obfuscation Technique (DMLJCOT)
Dynamic Multi Levels Java Code Obfuscation Technique (DMLJCOT)Dynamic Multi Levels Java Code Obfuscation Technique (DMLJCOT)
Dynamic Multi Levels Java Code Obfuscation Technique (DMLJCOT)CSCJournals
 
RETURN ORIENTED OBFUSCATION
RETURN ORIENTED OBFUSCATIONRETURN ORIENTED OBFUSCATION
RETURN ORIENTED OBFUSCATIONcsandit
 

Similar to A novel algorithm to protect and manage memory locations (20)

System Structure for Dependable Software Systems
System Structure for Dependable Software SystemsSystem Structure for Dependable Software Systems
System Structure for Dependable Software Systems
 
Code scheduling constraints
Code scheduling constraintsCode scheduling constraints
Code scheduling constraints
 
IRJET - Buffer Overflows Attacks & Defense
IRJET -  	  Buffer Overflows Attacks & DefenseIRJET -  	  Buffer Overflows Attacks & Defense
IRJET - Buffer Overflows Attacks & Defense
 
Formal Specification for Implementing Atomic Read/Write Shared Memory in Mobi...
Formal Specification for Implementing Atomic Read/Write Shared Memory in Mobi...Formal Specification for Implementing Atomic Read/Write Shared Memory in Mobi...
Formal Specification for Implementing Atomic Read/Write Shared Memory in Mobi...
 
Formal Specification for Implementing Atomic Read/Write Shared Memory in Mobi...
Formal Specification for Implementing Atomic Read/Write Shared Memory in Mobi...Formal Specification for Implementing Atomic Read/Write Shared Memory in Mobi...
Formal Specification for Implementing Atomic Read/Write Shared Memory in Mobi...
 
THE REMOVAL OF NUMERICAL DRIFT FROM SCIENTIFIC MODELS
THE REMOVAL OF NUMERICAL DRIFT FROM SCIENTIFIC MODELSTHE REMOVAL OF NUMERICAL DRIFT FROM SCIENTIFIC MODELS
THE REMOVAL OF NUMERICAL DRIFT FROM SCIENTIFIC MODELS
 
4213ijsea04
4213ijsea044213ijsea04
4213ijsea04
 
Advanced computer architecture unit 5
Advanced computer architecture  unit 5Advanced computer architecture  unit 5
Advanced computer architecture unit 5
 
Parallel programming model
Parallel programming modelParallel programming model
Parallel programming model
 
Software Reverse Engineering in a Security Context
Software Reverse Engineering in a Security ContextSoftware Reverse Engineering in a Security Context
Software Reverse Engineering in a Security Context
 
Defensive coding practices is one of the most critical proactive s
Defensive coding practices is one of the most critical proactive sDefensive coding practices is one of the most critical proactive s
Defensive coding practices is one of the most critical proactive s
 
AspectCache
AspectCacheAspectCache
AspectCache
 
Simple Obfuscation Tool for Software Protection
Simple Obfuscation Tool for Software ProtectionSimple Obfuscation Tool for Software Protection
Simple Obfuscation Tool for Software Protection
 
Automatic static unpacking of malware binaries
Automatic static unpacking of malware binariesAutomatic static unpacking of malware binaries
Automatic static unpacking of malware binaries
 
IEEE BE-BTECH NS2 PROJECT@ DREAMWEB TECHNO SOLUTION
IEEE BE-BTECH NS2 PROJECT@ DREAMWEB TECHNO SOLUTIONIEEE BE-BTECH NS2 PROJECT@ DREAMWEB TECHNO SOLUTION
IEEE BE-BTECH NS2 PROJECT@ DREAMWEB TECHNO SOLUTION
 
Implementation of reducing features to improve code change based bug predicti...
Implementation of reducing features to improve code change based bug predicti...Implementation of reducing features to improve code change based bug predicti...
Implementation of reducing features to improve code change based bug predicti...
 
SELF CORRECTING MEMORY DESIGN FOR FAULT FREE CODING IN PROGRESSIVE DATA STREA...
SELF CORRECTING MEMORY DESIGN FOR FAULT FREE CODING IN PROGRESSIVE DATA STREA...SELF CORRECTING MEMORY DESIGN FOR FAULT FREE CODING IN PROGRESSIVE DATA STREA...
SELF CORRECTING MEMORY DESIGN FOR FAULT FREE CODING IN PROGRESSIVE DATA STREA...
 
cvpr-final
cvpr-finalcvpr-final
cvpr-final
 
Dynamic Multi Levels Java Code Obfuscation Technique (DMLJCOT)
Dynamic Multi Levels Java Code Obfuscation Technique (DMLJCOT)Dynamic Multi Levels Java Code Obfuscation Technique (DMLJCOT)
Dynamic Multi Levels Java Code Obfuscation Technique (DMLJCOT)
 
RETURN ORIENTED OBFUSCATION
RETURN ORIENTED OBFUSCATIONRETURN ORIENTED OBFUSCATION
RETURN ORIENTED OBFUSCATION
 

More from iosrjce

An Examination of Effectuation Dimension as Financing Practice of Small and M...
An Examination of Effectuation Dimension as Financing Practice of Small and M...An Examination of Effectuation Dimension as Financing Practice of Small and M...
An Examination of Effectuation Dimension as Financing Practice of Small and M...iosrjce
 
Does Goods and Services Tax (GST) Leads to Indian Economic Development?
Does Goods and Services Tax (GST) Leads to Indian Economic Development?Does Goods and Services Tax (GST) Leads to Indian Economic Development?
Does Goods and Services Tax (GST) Leads to Indian Economic Development?iosrjce
 
Childhood Factors that influence success in later life
Childhood Factors that influence success in later lifeChildhood Factors that influence success in later life
Childhood Factors that influence success in later lifeiosrjce
 
Emotional Intelligence and Work Performance Relationship: A Study on Sales Pe...
Emotional Intelligence and Work Performance Relationship: A Study on Sales Pe...Emotional Intelligence and Work Performance Relationship: A Study on Sales Pe...
Emotional Intelligence and Work Performance Relationship: A Study on Sales Pe...iosrjce
 
Customer’s Acceptance of Internet Banking in Dubai
Customer’s Acceptance of Internet Banking in DubaiCustomer’s Acceptance of Internet Banking in Dubai
Customer’s Acceptance of Internet Banking in Dubaiiosrjce
 
A Study of Employee Satisfaction relating to Job Security & Working Hours amo...
A Study of Employee Satisfaction relating to Job Security & Working Hours amo...A Study of Employee Satisfaction relating to Job Security & Working Hours amo...
A Study of Employee Satisfaction relating to Job Security & Working Hours amo...iosrjce
 
Consumer Perspectives on Brand Preference: A Choice Based Model Approach
Consumer Perspectives on Brand Preference: A Choice Based Model ApproachConsumer Perspectives on Brand Preference: A Choice Based Model Approach
Consumer Perspectives on Brand Preference: A Choice Based Model Approachiosrjce
 
Student`S Approach towards Social Network Sites
Student`S Approach towards Social Network SitesStudent`S Approach towards Social Network Sites
Student`S Approach towards Social Network Sitesiosrjce
 
Broadcast Management in Nigeria: The systems approach as an imperative
Broadcast Management in Nigeria: The systems approach as an imperativeBroadcast Management in Nigeria: The systems approach as an imperative
Broadcast Management in Nigeria: The systems approach as an imperativeiosrjce
 
A Study on Retailer’s Perception on Soya Products with Special Reference to T...
A Study on Retailer’s Perception on Soya Products with Special Reference to T...A Study on Retailer’s Perception on Soya Products with Special Reference to T...
A Study on Retailer’s Perception on Soya Products with Special Reference to T...iosrjce
 
A Study Factors Influence on Organisation Citizenship Behaviour in Corporate ...
A Study Factors Influence on Organisation Citizenship Behaviour in Corporate ...A Study Factors Influence on Organisation Citizenship Behaviour in Corporate ...
A Study Factors Influence on Organisation Citizenship Behaviour in Corporate ...iosrjce
 
Consumers’ Behaviour on Sony Xperia: A Case Study on Bangladesh
Consumers’ Behaviour on Sony Xperia: A Case Study on BangladeshConsumers’ Behaviour on Sony Xperia: A Case Study on Bangladesh
Consumers’ Behaviour on Sony Xperia: A Case Study on Bangladeshiosrjce
 
Design of a Balanced Scorecard on Nonprofit Organizations (Study on Yayasan P...
Design of a Balanced Scorecard on Nonprofit Organizations (Study on Yayasan P...Design of a Balanced Scorecard on Nonprofit Organizations (Study on Yayasan P...
Design of a Balanced Scorecard on Nonprofit Organizations (Study on Yayasan P...iosrjce
 
Public Sector Reforms and Outsourcing Services in Nigeria: An Empirical Evalu...
Public Sector Reforms and Outsourcing Services in Nigeria: An Empirical Evalu...Public Sector Reforms and Outsourcing Services in Nigeria: An Empirical Evalu...
Public Sector Reforms and Outsourcing Services in Nigeria: An Empirical Evalu...iosrjce
 
Media Innovations and its Impact on Brand awareness & Consideration
Media Innovations and its Impact on Brand awareness & ConsiderationMedia Innovations and its Impact on Brand awareness & Consideration
Media Innovations and its Impact on Brand awareness & Considerationiosrjce
 
Customer experience in supermarkets and hypermarkets – A comparative study
Customer experience in supermarkets and hypermarkets – A comparative studyCustomer experience in supermarkets and hypermarkets – A comparative study
Customer experience in supermarkets and hypermarkets – A comparative studyiosrjce
 
Social Media and Small Businesses: A Combinational Strategic Approach under t...
Social Media and Small Businesses: A Combinational Strategic Approach under t...Social Media and Small Businesses: A Combinational Strategic Approach under t...
Social Media and Small Businesses: A Combinational Strategic Approach under t...iosrjce
 
Secretarial Performance and the Gender Question (A Study of Selected Tertiary...
Secretarial Performance and the Gender Question (A Study of Selected Tertiary...Secretarial Performance and the Gender Question (A Study of Selected Tertiary...
Secretarial Performance and the Gender Question (A Study of Selected Tertiary...iosrjce
 
Implementation of Quality Management principles at Zimbabwe Open University (...
Implementation of Quality Management principles at Zimbabwe Open University (...Implementation of Quality Management principles at Zimbabwe Open University (...
Implementation of Quality Management principles at Zimbabwe Open University (...iosrjce
 
Organizational Conflicts Management In Selected Organizaions In Lagos State, ...
Organizational Conflicts Management In Selected Organizaions In Lagos State, ...Organizational Conflicts Management In Selected Organizaions In Lagos State, ...
Organizational Conflicts Management In Selected Organizaions In Lagos State, ...iosrjce
 

More from iosrjce (20)

An Examination of Effectuation Dimension as Financing Practice of Small and M...
An Examination of Effectuation Dimension as Financing Practice of Small and M...An Examination of Effectuation Dimension as Financing Practice of Small and M...
An Examination of Effectuation Dimension as Financing Practice of Small and M...
 
Does Goods and Services Tax (GST) Leads to Indian Economic Development?
Does Goods and Services Tax (GST) Leads to Indian Economic Development?Does Goods and Services Tax (GST) Leads to Indian Economic Development?
Does Goods and Services Tax (GST) Leads to Indian Economic Development?
 
Childhood Factors that influence success in later life
Childhood Factors that influence success in later lifeChildhood Factors that influence success in later life
Childhood Factors that influence success in later life
 
Emotional Intelligence and Work Performance Relationship: A Study on Sales Pe...
Emotional Intelligence and Work Performance Relationship: A Study on Sales Pe...Emotional Intelligence and Work Performance Relationship: A Study on Sales Pe...
Emotional Intelligence and Work Performance Relationship: A Study on Sales Pe...
 
Customer’s Acceptance of Internet Banking in Dubai
Customer’s Acceptance of Internet Banking in DubaiCustomer’s Acceptance of Internet Banking in Dubai
Customer’s Acceptance of Internet Banking in Dubai
 
A Study of Employee Satisfaction relating to Job Security & Working Hours amo...
A Study of Employee Satisfaction relating to Job Security & Working Hours amo...A Study of Employee Satisfaction relating to Job Security & Working Hours amo...
A Study of Employee Satisfaction relating to Job Security & Working Hours amo...
 
Consumer Perspectives on Brand Preference: A Choice Based Model Approach
Consumer Perspectives on Brand Preference: A Choice Based Model ApproachConsumer Perspectives on Brand Preference: A Choice Based Model Approach
Consumer Perspectives on Brand Preference: A Choice Based Model Approach
 
Student`S Approach towards Social Network Sites
Student`S Approach towards Social Network SitesStudent`S Approach towards Social Network Sites
Student`S Approach towards Social Network Sites
 
Broadcast Management in Nigeria: The systems approach as an imperative
Broadcast Management in Nigeria: The systems approach as an imperativeBroadcast Management in Nigeria: The systems approach as an imperative
Broadcast Management in Nigeria: The systems approach as an imperative
 
A Study on Retailer’s Perception on Soya Products with Special Reference to T...
A Study on Retailer’s Perception on Soya Products with Special Reference to T...A Study on Retailer’s Perception on Soya Products with Special Reference to T...
A Study on Retailer’s Perception on Soya Products with Special Reference to T...
 
A Study Factors Influence on Organisation Citizenship Behaviour in Corporate ...
A Study Factors Influence on Organisation Citizenship Behaviour in Corporate ...A Study Factors Influence on Organisation Citizenship Behaviour in Corporate ...
A Study Factors Influence on Organisation Citizenship Behaviour in Corporate ...
 
Consumers’ Behaviour on Sony Xperia: A Case Study on Bangladesh
Consumers’ Behaviour on Sony Xperia: A Case Study on BangladeshConsumers’ Behaviour on Sony Xperia: A Case Study on Bangladesh
Consumers’ Behaviour on Sony Xperia: A Case Study on Bangladesh
 
Design of a Balanced Scorecard on Nonprofit Organizations (Study on Yayasan P...
Design of a Balanced Scorecard on Nonprofit Organizations (Study on Yayasan P...Design of a Balanced Scorecard on Nonprofit Organizations (Study on Yayasan P...
Design of a Balanced Scorecard on Nonprofit Organizations (Study on Yayasan P...
 
Public Sector Reforms and Outsourcing Services in Nigeria: An Empirical Evalu...
Public Sector Reforms and Outsourcing Services in Nigeria: An Empirical Evalu...Public Sector Reforms and Outsourcing Services in Nigeria: An Empirical Evalu...
Public Sector Reforms and Outsourcing Services in Nigeria: An Empirical Evalu...
 
Media Innovations and its Impact on Brand awareness & Consideration
Media Innovations and its Impact on Brand awareness & ConsiderationMedia Innovations and its Impact on Brand awareness & Consideration
Media Innovations and its Impact on Brand awareness & Consideration
 
Customer experience in supermarkets and hypermarkets – A comparative study
Customer experience in supermarkets and hypermarkets – A comparative studyCustomer experience in supermarkets and hypermarkets – A comparative study
Customer experience in supermarkets and hypermarkets – A comparative study
 
Social Media and Small Businesses: A Combinational Strategic Approach under t...
Social Media and Small Businesses: A Combinational Strategic Approach under t...Social Media and Small Businesses: A Combinational Strategic Approach under t...
Social Media and Small Businesses: A Combinational Strategic Approach under t...
 
Secretarial Performance and the Gender Question (A Study of Selected Tertiary...
Secretarial Performance and the Gender Question (A Study of Selected Tertiary...Secretarial Performance and the Gender Question (A Study of Selected Tertiary...
Secretarial Performance and the Gender Question (A Study of Selected Tertiary...
 
Implementation of Quality Management principles at Zimbabwe Open University (...
Implementation of Quality Management principles at Zimbabwe Open University (...Implementation of Quality Management principles at Zimbabwe Open University (...
Implementation of Quality Management principles at Zimbabwe Open University (...
 
Organizational Conflicts Management In Selected Organizaions In Lagos State, ...
Organizational Conflicts Management In Selected Organizaions In Lagos State, ...Organizational Conflicts Management In Selected Organizaions In Lagos State, ...
Organizational Conflicts Management In Selected Organizaions In Lagos State, ...
 

Recently uploaded

KIT-601 Lecture Notes-UNIT-4.pdf Frequent Itemsets and Clustering
KIT-601 Lecture Notes-UNIT-4.pdf Frequent Itemsets and ClusteringKIT-601 Lecture Notes-UNIT-4.pdf Frequent Itemsets and Clustering
KIT-601 Lecture Notes-UNIT-4.pdf Frequent Itemsets and ClusteringDr. Radhey Shyam
 
Introduction to Machine Learning Unit-4 Notes for II-II Mechanical Engineering
Introduction to Machine Learning Unit-4 Notes for II-II Mechanical EngineeringIntroduction to Machine Learning Unit-4 Notes for II-II Mechanical Engineering
Introduction to Machine Learning Unit-4 Notes for II-II Mechanical EngineeringC Sai Kiran
 
Digital Signal Processing Lecture notes n.pdf
Digital Signal Processing Lecture notes n.pdfDigital Signal Processing Lecture notes n.pdf
Digital Signal Processing Lecture notes n.pdfAbrahamGadissa
 
Cloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptx
Cloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptxCloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptx
Cloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptxMd. Shahidul Islam Prodhan
 
2024 DevOps Pro Europe - Growing at the edge
2024 DevOps Pro Europe - Growing at the edge2024 DevOps Pro Europe - Growing at the edge
2024 DevOps Pro Europe - Growing at the edgePaco Orozco
 
BRAKING SYSTEM IN INDIAN RAILWAY AutoCAD DRAWING
BRAKING SYSTEM IN INDIAN RAILWAY AutoCAD DRAWINGBRAKING SYSTEM IN INDIAN RAILWAY AutoCAD DRAWING
BRAKING SYSTEM IN INDIAN RAILWAY AutoCAD DRAWINGKOUSTAV SARKAR
 
RS Khurmi Machine Design Clutch and Brake Exercise Numerical Solutions
RS Khurmi Machine Design Clutch and Brake Exercise Numerical SolutionsRS Khurmi Machine Design Clutch and Brake Exercise Numerical Solutions
RS Khurmi Machine Design Clutch and Brake Exercise Numerical SolutionsAtif Razi
 
Automobile Management System Project Report.pdf
Automobile Management System Project Report.pdfAutomobile Management System Project Report.pdf
Automobile Management System Project Report.pdfKamal Acharya
 
A CASE STUDY ON ONLINE TICKET BOOKING SYSTEM PROJECT.pdf
A CASE STUDY ON ONLINE TICKET BOOKING SYSTEM PROJECT.pdfA CASE STUDY ON ONLINE TICKET BOOKING SYSTEM PROJECT.pdf
A CASE STUDY ON ONLINE TICKET BOOKING SYSTEM PROJECT.pdfKamal Acharya
 
Introduction to Machine Learning Unit-5 Notes for II-II Mechanical Engineering
Introduction to Machine Learning Unit-5 Notes for II-II Mechanical EngineeringIntroduction to Machine Learning Unit-5 Notes for II-II Mechanical Engineering
Introduction to Machine Learning Unit-5 Notes for II-II Mechanical EngineeringC Sai Kiran
 
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptxCFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptxR&R Consult
 
HYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generationHYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generationRobbie Edward Sayers
 
Event Management System Vb Net Project Report.pdf
Event Management System Vb Net  Project Report.pdfEvent Management System Vb Net  Project Report.pdf
Event Management System Vb Net Project Report.pdfKamal Acharya
 
Construction method of steel structure space frame .pptx
Construction method of steel structure space frame .pptxConstruction method of steel structure space frame .pptx
Construction method of steel structure space frame .pptxwendy cai
 
School management system project report.pdf
School management system project report.pdfSchool management system project report.pdf
School management system project report.pdfKamal Acharya
 
Furniture showroom management system project.pdf
Furniture showroom management system project.pdfFurniture showroom management system project.pdf
Furniture showroom management system project.pdfKamal Acharya
 
NO1 Pandit Black Magic Removal in Uk kala jadu Specialist kala jadu for Love ...
NO1 Pandit Black Magic Removal in Uk kala jadu Specialist kala jadu for Love ...NO1 Pandit Black Magic Removal in Uk kala jadu Specialist kala jadu for Love ...
NO1 Pandit Black Magic Removal in Uk kala jadu Specialist kala jadu for Love ...Amil baba
 
İTÜ CAD and Reverse Engineering Workshop
İTÜ CAD and Reverse Engineering WorkshopİTÜ CAD and Reverse Engineering Workshop
İTÜ CAD and Reverse Engineering WorkshopEmre Günaydın
 
Quality defects in TMT Bars, Possible causes and Potential Solutions.
Quality defects in TMT Bars, Possible causes and Potential Solutions.Quality defects in TMT Bars, Possible causes and Potential Solutions.
Quality defects in TMT Bars, Possible causes and Potential Solutions.PrashantGoswami42
 

Recently uploaded (20)

KIT-601 Lecture Notes-UNIT-4.pdf Frequent Itemsets and Clustering
KIT-601 Lecture Notes-UNIT-4.pdf Frequent Itemsets and ClusteringKIT-601 Lecture Notes-UNIT-4.pdf Frequent Itemsets and Clustering
KIT-601 Lecture Notes-UNIT-4.pdf Frequent Itemsets and Clustering
 
Introduction to Machine Learning Unit-4 Notes for II-II Mechanical Engineering
Introduction to Machine Learning Unit-4 Notes for II-II Mechanical EngineeringIntroduction to Machine Learning Unit-4 Notes for II-II Mechanical Engineering
Introduction to Machine Learning Unit-4 Notes for II-II Mechanical Engineering
 
Digital Signal Processing Lecture notes n.pdf
Digital Signal Processing Lecture notes n.pdfDigital Signal Processing Lecture notes n.pdf
Digital Signal Processing Lecture notes n.pdf
 
Cloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptx
Cloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptxCloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptx
Cloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptx
 
2024 DevOps Pro Europe - Growing at the edge
2024 DevOps Pro Europe - Growing at the edge2024 DevOps Pro Europe - Growing at the edge
2024 DevOps Pro Europe - Growing at the edge
 
BRAKING SYSTEM IN INDIAN RAILWAY AutoCAD DRAWING
BRAKING SYSTEM IN INDIAN RAILWAY AutoCAD DRAWINGBRAKING SYSTEM IN INDIAN RAILWAY AutoCAD DRAWING
BRAKING SYSTEM IN INDIAN RAILWAY AutoCAD DRAWING
 
RS Khurmi Machine Design Clutch and Brake Exercise Numerical Solutions
RS Khurmi Machine Design Clutch and Brake Exercise Numerical SolutionsRS Khurmi Machine Design Clutch and Brake Exercise Numerical Solutions
RS Khurmi Machine Design Clutch and Brake Exercise Numerical Solutions
 
Automobile Management System Project Report.pdf
Automobile Management System Project Report.pdfAutomobile Management System Project Report.pdf
Automobile Management System Project Report.pdf
 
A CASE STUDY ON ONLINE TICKET BOOKING SYSTEM PROJECT.pdf
A CASE STUDY ON ONLINE TICKET BOOKING SYSTEM PROJECT.pdfA CASE STUDY ON ONLINE TICKET BOOKING SYSTEM PROJECT.pdf
A CASE STUDY ON ONLINE TICKET BOOKING SYSTEM PROJECT.pdf
 
Introduction to Machine Learning Unit-5 Notes for II-II Mechanical Engineering
Introduction to Machine Learning Unit-5 Notes for II-II Mechanical EngineeringIntroduction to Machine Learning Unit-5 Notes for II-II Mechanical Engineering
Introduction to Machine Learning Unit-5 Notes for II-II Mechanical Engineering
 
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptxCFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
 
HYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generationHYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generation
 
Event Management System Vb Net Project Report.pdf
Event Management System Vb Net  Project Report.pdfEvent Management System Vb Net  Project Report.pdf
Event Management System Vb Net Project Report.pdf
 
Construction method of steel structure space frame .pptx
Construction method of steel structure space frame .pptxConstruction method of steel structure space frame .pptx
Construction method of steel structure space frame .pptx
 
School management system project report.pdf
School management system project report.pdfSchool management system project report.pdf
School management system project report.pdf
 
Furniture showroom management system project.pdf
Furniture showroom management system project.pdfFurniture showroom management system project.pdf
Furniture showroom management system project.pdf
 
NO1 Pandit Black Magic Removal in Uk kala jadu Specialist kala jadu for Love ...
NO1 Pandit Black Magic Removal in Uk kala jadu Specialist kala jadu for Love ...NO1 Pandit Black Magic Removal in Uk kala jadu Specialist kala jadu for Love ...
NO1 Pandit Black Magic Removal in Uk kala jadu Specialist kala jadu for Love ...
 
İTÜ CAD and Reverse Engineering Workshop
İTÜ CAD and Reverse Engineering WorkshopİTÜ CAD and Reverse Engineering Workshop
İTÜ CAD and Reverse Engineering Workshop
 
Standard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - NeometrixStandard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - Neometrix
 
Quality defects in TMT Bars, Possible causes and Potential Solutions.
Quality defects in TMT Bars, Possible causes and Potential Solutions.Quality defects in TMT Bars, Possible causes and Potential Solutions.
Quality defects in TMT Bars, Possible causes and Potential Solutions.
 

A novel algorithm to protect and manage memory locations

  • 1. IOSR Journal of Computer Engineering (IOSR-JCE) e-ISSN: 2278-0661,p-ISSN: 2278-8727, Volume 17, Issue 3, Ver. 1 (May – Jun. 2015), PP 82-88 www.iosrjournals.org DOI: 10.9790/0661-17318288 www.iosrjournals.org 82 | Page A novel algorithm to protect and manage memory locations Buthainah F. AL-Dulaimi, Sawsan H. Jaddoa (College of Education for Women/University of Baghdad, Iraq) Abstract: Most of security vulnerabilities continue to be caused by memory errors, and long-running programs that interact with untrusted components. While comprehensive solutions have been developed to handle memory errors, these solutions suffer from one or more of the following problems: high overheads, incompatibility, and changes to the memory model. Address space randomization is a technique that avoids these drawbacks, but do not offer a level of protection. To overcome these limitations, we develop a new approach in this paper that supports comprehensive randomization, whereby the absolute locations of all (code and data) objects, as well as their relative distances are randomized. In particular, we have successfully deployed precise method in the implementation of a language run-time system. Our approach is implemented as a fully automatic source-to- source transformation, the address-space randomizations take place at load-time or runtime, so the same copy of the binaries can be distributed to everyone - this ensures compatibility with today's software distribution model. Keywords: Garbage collection, memory errors, memory protection, memory reallocation, transformation, program locations. I. Introduction Intuitively, a memory error occurs in programs when the object accessed via a pointer expression is different from the one intended by the programmer. The intended object is called the referent of the pointer. Memory errors can be classified into spatial and temporal errors: a- A spatial error occurs when dereferencing a pointer that is outside the bounds of its referent. It may be caused as a result of:  Dereferencing non-pointer data, e.g., a pointer may be (incorrectly) assigned from an integer, and dereferenced subsequently. The same integer value, when interpreted as a pointer, will reference different variables (or code) for each execution of the program.  Dereferencing uninitialized pointers. This case differs from the first case only when a memory object is reallocated.  Valid pointers used with invalid pointer arithmetic. The most common form of memory access error, namely, out-of-bounds array access, falls in this category. b- A temporal error occurs when dereferencing a pointer whose referent no longer exists, i.e., it has been freed previously. If the invalid access goes to an object in free memory, then it causes no errors. But if the memory has been reallocated, then temporal errors allow the contents of the reallocated object to be corrupted using the invalid pointer. Note that the results of such errors become predictable only when the purpose of reuse of the memory location is predictable. It may appear that temporal errors, and errors involving uninitialized pointers, are an unlikely target for attackers. In general, it may be hard to exploit such errors if they involve heap objects, as heap allocations tend to be somewhat unpredictable even in the absence of any randomizations. However, stack allocations are highly predictable, so these errors can be exploited in attacks involving stack-allocated variables. [1] Unfortunately, existing techniques to exploit memory errors are associated with high overheads and nontrivial programming effort is often required so that they can work with these tools. Precompiled libraries can pose additional compatibility problems. The existing approaches are concerned with preventing all invalid memory accesses; we present an approach with a more limited goal: it only seeks to ensure that the results of any invalid access are unpredictable and this goal can be achieved with a much lower runtime overhead. Our approach is based on the address of the location of code and data objects that are resident in memory. The approach is using randomization techniques and these techniques can provide protection against most known types of memory error exploits, they are vulnerable to several classes of attacks including relative-address attacks, information leakage attacks, and attacks on randomization. The approach developed in this paper is aimed at protecting against all memory error exploits, whether they are known or unknown. Our approach makes the memory locations of program objects (including code as well as data objects) unpredictable. This is achieved by randomizing the absolute locations of all objects, as well as the relative distance between any two objects. Our implementation uses a source-to-source transformation. Instead, the transformation produces a self-
  • 2. A novel algorithm to protect and manage memory locations DOI: 10.9790/0661-17318288 www.iosrjournals.org 83 | Page randomizing program: a program that randomizes itself each time it is run, or continuously during runtime. This means that the use of our approach doesn't, in any way, change the software distribution model that is prevalent today. II. Static Data Transformations Static Data Transformations One possible approach to randomize the location of static data is to recompile the data into position- independent code (PIC). A drawback of this approach is that it does not protect against relative address attacks, e.g., an attack that overflows past the end of a buffer to corrupt security-critical data that is close to the buffer. Moreover, an approach that relies only on changes to the base address is very vulnerable to information leakage attacks, where an attacker may mount a successful attack just by knowing the address of any static variable, or the base address of the static area. At the beginning of program execution, control is transferred to an initialization function introduced into the transformed program. This function first allocates a new region of memory to store the original static variables. This memory is allocated dynamically so that its base address can be chosen randomly. Note that bounds-checking errors dominate among memory errors. Such errors occur either due to the use of an array subscript that is outside its bounds, or more generally, due to incorrect pointer arithmetic. For this reason, our transformation separates buffer-type variables, which can be sources of bounds- checking errors, from other types of variables. Buffer-type variables include all arrays and structures containing arrays. In addition, they include any variable whose address is taken, since it may be used in pointer arithmetic, which can in turn lead to out-of-bounds access. All buffer-type variables are allocated separately from other variables. Inaccessible memory pages (neither readable nor writable) are introduced before and after the memory region containing buffer variables, so that any buffer overflows from these variables cannot corrupt non-buffer variables. Code Transformations As with static data, one way to randomize code location is to generate PIC code, and map this at a randomly chosen location at runtime. Specifically, our randomization technique works at the granularity of functions. To achieve this, a function pointer is associated with each function. It is initialized with the value of function. These functions are reordered in a random manner, using a procedure similar to that used for randomizing the order of static variables. Random gaps and inaccessible pages are inserted periodically during this process in order to introduce further uncertainty in code locations, and to provide additional protection. The transformation ensures that these gaps do not increase the overall space usage for the executable by more than a specified parameter. After relocating functions, the initializations of variables are changed so as to reflect the new location of each function. As a final step, the function pointer table needs to be write-protected. [2] III. Manage Memory Location Automatic memory management simplifies most implementation tasks, and among programming languages currently in widespread use, most automates memory management through garbage collection (GC). A popular approach for adding GC is to use conservative GC, assumes that any word in a register, on the stack, in a static variable, or in a reachable allocated object is a potential pointer that counts toward the further reach ability of objects. A conservative GC is typically implemented as a library, which makes using it relatively easy. Conservative GC can trigger unbounded memory use due to linked lists that manage threads and continuations. The key constraint a C program must obey to GC is that the static types in the program source must match the program’s run-time behavior, at least to the extent that the types distinguish pointers from non-pointers. The implementation of precise GC, meanwhile, is responsible for handling union types and the fact that the static type of a C variable or expression often provides an incomplete description of its run-time shape. Thus, the concerns for precise GC in the source program can be divided into two parts: those that relate to separating live pointers from other values, and those that relate to connecting allocation with the shape of the allocated data. [3] For GC to work, all live objects must be reachable via pointer chains starting from roots, which include static and local variables with pointer types. For precise GC, the values of variables and expressions typed as non-pointers must never be used as pointers to GC-allocated objects, because objects are not considered to be reachable through such references. Memory can be allocated but the allocated memory is treated by the GC as an array of non-pointers. Object-referencing invariants must hold whenever a collection is possible, but some code (such as a library function) might safely break the temporarily between collections. The GC may also allow a pointer-typed location to refer to an address that is not a GC-allocated object. The transformation to support precise GC must detect allocations and replace them with GC allocations, in the process associating tags (for mark and repair functions) with the allocated data. [4, 5, 6]
  • 3. A novel algorithm to protect and manage memory locations DOI: 10.9790/0661-17318288 www.iosrjournals.org 84 | Page IV. Garbage Collection In computer science, garbage collection (GC) is a form of automatic memory management. The garbage collector, or just collector, attempts to reclaim garbage, or memory occupied by objects that are no longer in use by the program. Garbage collection is often portrayed as the opposite of manual memory management, which requires the programmer to specify which objects to deallocate and return to the memory system. However, many systems use a combination of approaches, including other techniques such as stack allocation and region inference. Like other memory management techniques, garbage collection may take a significant proportion of total processing time in a program and can thus have significant influence on performance. The basic principles of garbage collection are: - Find data objects in a program that cannot be accessed in the future. - Reclaim the resources used by those objects. Many programming languages require garbage collection as part of the language specification (for Java, C#) these are said to be garbage collected languages. Other languages were designed for use with manual memory management, but have garbage collected implementations available (for C, C++). While integrating garbage collection into the language's compiler and runtime system enables a much wider choice of methods GC systems exist. The garbage collector will almost always be closely integrated with the memory allocator. Garbage collection frees the programmer from manually dealing with memory deallocation. Some of the bugs addressed by garbage collection can have security implications. As a result, certain categories of bugs are eliminated or substantially reduced: - Dangling pointer bugs, which occur when a piece of memory is freed while there are still pointers to it, and one of those pointers is dereferenced. By then the memory may have been reassigned to another use, with unpredictable results. - Double free bugs, which occur when the program tries to free a region of memory that has already been freed, and perhaps already been allocated again. - Certain kinds of memory leaks, in which a program fails to free memory occupied by objects that have become unreachable, which can lead to memory exhaustion. - Efficient implementations of persistent data structures Typically, garbage collection has certain disadvantages: - Garbage collection consumes computing resources in deciding which memory to free, even though the programmer may have already known this information. The penalty for the convenience of not annotating object lifetime manually in the source code is overhead, which can lead to decreased or uneven performance. - The moment when the garbage is actually collected can be unpredictable, resulting in stalls scattered throughout a session. Unpredictable stalls can be unacceptable in real-time environments, in transaction processing, or in interactive programs. Incremental, concurrent, and real-time garbage collectors address these problems, with varying trade-offs. Tracing garbage collection The overall strategy consists of determining which objects should be garbage collected by tracing which objects are reachable by a chain of references from certain root objects, and considering the rest as garbage and collecting them. Reference counting It is a form of garbage collection whereby each object has a count of the number of references to it. Garbage is identified by having a reference count of zero. An object's reference count is incremented when a reference to it is created and decremented when a reference is destroyed. The object's memory is reclaimed when the count reaches zero. As with manual memory management, and unlike tracing garbage collection, reference counting guarantees that objects are destroyed as soon as their last reference is destroyed, and usually only accesses memory which is either in CPU caches, in objects to be freed, or directly pointed by those, and thus tends to not have significant negative side effects on CPU cache and virtual memory operation. [7, 8] V. The Proposed Transformation The proposed transformation algorithm and the implementation The proposed transformation algorithm is outlined in the following steps, and its implementation is illustrated afterward in Fig. 1 below. Step 1: Prompt the user to enter the number of random memory locations to generate. cout<<"How many random memory location to generate:";
  • 4. A novel algorithm to protect and manage memory locations DOI: 10.9790/0661-17318288 www.iosrjournals.org 85 | Page cin>>howMany; Step 2: create a dynamic array to store the random numbers using malloc. intptr =(int *) malloc(howMany * sizeof(int)); step 3: In this example we have tested to be sure malloc succeeded. If not, we are outof memory if (intptr == NULL){ cout<<"memory allocation error exitingn"; exit(1);} Step 4: generate the random locations and print them for (inti=0;i<howMany;i++){ intptr[i]=random(1000);} cout<<" locations Valuesn"; PrintArray(intptr,howMany); Step 5: double the size of the array usingrealloc intptr = (int *)realloc(intptr, 2*howMany); Step 6: generate new array add to random numbers and print them for ( i=0; i<howMany; i++){ intptr[i]=intptr[i]+random(1000);} cout<<" new locationsn"; PrintArray(intptr,howMany); Step 7: free the memory location we used free(intptr); Fig. 1. The implementation of the transformation Our approach provides the following benefits: - Ease of use. Our approach is implemented as an automatic, source-to-source transformation, and is fully compatible with legacy C code. It can interoperate with preexisting (untransformed) libraries. - Comprehensive randomization. At runtime, the absolute as well as relative distances between all memory- resident objects are randomized. - Portability across multiple platforms. The vast majority of our randomizations are OS and architecture independent. This factor eases portability of our approach to different platforms. - Low runtime overhead. Our approach produces low overheads. - Ease of deployment. Our approach can be applied to individual applications without requiring changes to the OS kernel, system libraries or the software distribution models. VI. The Proposed Garbage Collection The proposed strategy - The program is consists of three classes the first one is “oper” stands for “operation” which is the main class and the second is “RC” stands for “reference counter” which plays the role of deleting the object, the last class is “SP” stands for “smart pointer” which represent the functions of the smart pointer in our example. - Class “oper” consists of an array that will store the elements for three functions each one represent a specific type of sorting algorithms (bubble, insertion, and selection). Also “display” function, the default constructors and destructor.
  • 5. A novel algorithm to protect and manage memory locations DOI: 10.9790/0661-17318288 www.iosrjournals.org 86 | Page - Class “RC” consists of one variable which is “count” it is to count the number of pointers that refer to a specific location, also two functions “AddRef()” increments the count value, and “Release” decrements the count value. - The last class is “SP” the genuine of the program it connect the parts of the program to implement the desired idea; its consists of the pointer “pData” which refers to any type of data because its created as template and that’s what the “SP” class accepts as an input – any type of data – and “reference” pointer which refers to an object from the class “RC”. The constructors of the class which calls the function “AddRef()” from the class “RC” so that the “count” variable increments every time a smart pointer is created, weather the destructor deletes the smart pointer when the value of “count” reaches “0” given from the function “Release”. Then an overloaded functions defined that gives the class the abilities to return the location that the smart pointer refers to “operator*”, return the value of the content of the smart pointer “operator->”, and the assignment operator “=” which rather than giving the value of the location that the smart pointer refers to for more than one object, it calls the function “AddRef()” so the value of “count” increases. The Implementation Fig. 2 is the “main()” function, in this function a smart pointer created with an operator object , by running the program four options is there for the user. The first three of them represent the three types of sorting functions and the last one is exit which deletes the pointer and ends the program, choosing one sorting function leads us to write the numbers to be sorted as in Fig. 3. And then “display” function displays the numbers with the correct arraignment as shown in Fig. 4. And so on the program takes the values from the user and uses one of the sorting functions depending on the choice of the user as in Fig. 5 and demonstrating results in Fig. 6. Until the user decide to end the process the objects delete their selves and the smart pointer also do that and the program ends as in Fig. 7. Fig. 2. The main menu Fig. 3. the bubble sort
  • 6. A novel algorithm to protect and manage memory locations DOI: 10.9790/0661-17318288 www.iosrjournals.org 87 | Page Fig. 4. The result of sorting Fig. 5. Using sorting choice Fig. 6. The sorting result
  • 7. A novel algorithm to protect and manage memory locations DOI: 10.9790/0661-17318288 www.iosrjournals.org 88 | Page Fig. 7. Stopping the process VII. Conclusions Our approach is based on permuting the order of static variables at the beginning of program execution. Address space randomization is a technique which provides broad protection from memory error exploits in C and C++ programs. However, previous implementations of ASR have provided a relatively coarse granularity of randomization, with many program objects sharing the same address mapping, so that the relative distance between any two objects is likely to be the same in both the original and randomized program. This leaves the randomized program vulnerable to guessing, partial pointer overwrites and information leakage attacks, as well as attacks that modify security-critical data without corrupting any pointers. Our approach is implemented using a source-to-source transformation that produces a self-randomizing program, which randomizes its memory layout at load-time and runtime. This randomization makes it very difficult for memory error exploits to succeed. Automatic memory management offers many benefit for C code, and conservative GC and reference counting are fine choices for many programs. Those memory-management techniques are a poor match, however, for long-running programs that have complex reference patterns and that host extensions or untrusted code. GC needs five times the memory to compensate for this overhead and to perform as fast as explicit memory management. References [1]. S. Bhatkar, D. C. Du Varney, and R. Sekar, Address obfuscation: An efficient approach to combat a broad range of memory error exploits, In USENIX Security Symposium, Washington, DC, August 2003. [2]. S. McPeak, G. C. Necula, S. P. Rahul, and W. Weimer, CIL: Intermediate language and tools for C program analysis and transformation, In Conference on Compiler Construction, 2002. [3]. J. Baker, Antonio Cunei, FilipPizlo, and Jan Vitek, Accurate garbage collection in uncooperative environments with lazy pointer stacks, In International Conference on Compiler Construction, 2007. [4]. M. Hirzel, A. Diwan, and J. Henkel, On the usefulness of type and liveness accuracy for garbage collection and leak detection. ACM Transaction Program. Language System, 24(6), 2002, 593–624. [5]. S. M. Pike, B. W. Weide, and J. E. Hollingsworth, Checkmate: cornering C++ dynamic memory errors with checked pointers. SIGCSE Technical Symposium on Computer Science Education, 2000, 352–356. [6]. A. W. Magpie, Precise Garbage Collection for C, PhD thesis, University of Utah, June 2006. [7]. J. Richard, H. Antony, M. Eliot, The Garbage Collection Handbook: The Art of Automatic Memory Management, CRC Applied Algorithms and Data Structures Series. Chapman and Hall/CRC, 19 Aug. 2011, ISBN 1-4200-8279-5. [8]. W. Fu and Carl Hauser, A Real-Time Garbage Collection Framework for Embedded Systems, ACM SCOPES '05, 2005, Portal.acm.org. Retrieved 9 July 2010.