Rebasing
Encyclopedia
In computing, rebasing is one of the following:
- The process of creating a shared library image in such a way that it is guaranteed to use virtual memoryVirtual memoryIn computing, virtual memory is a memory management technique developed for multitasking kernels. This technique virtualizes a computer architecture's various forms of computer data storage , allowing a program to be designed as though there is only one kind of memory, "virtual" memory, which...
without conflicting with any other shared librariesLibrary (computer science)In computer science, a library is a collection of resources used to develop software. These may include pre-written code and subroutines, classes, values or type specifications....
loadable in the system. This technique is used extensively on Win32 platforms to avoid the overhead of address relocation of system DLLDLLDLL may refer to:* Data link layer, a layer in the OSI network architecture model* Delay-locked loop, a device to reduce clock skew in digital circuits* Doubly linked list, a data structure in computer programming...
s by the loader. Some security extensions to LinuxLinuxLinux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
/x86X86 architectureThe term x86 refers to a family of instruction set architectures based on the Intel 8086 CPU. The 8086 was launched in 1978 as a fully 16-bit extension of Intel's 8-bit based 8080 microprocessor and also introduced segmentation to overcome the 16-bit addressing barrier of such designs...
use rebasing to force the use of code addresses below 0x00ffffff in order to introduce a 0x00 byte into all code pointers; this eliminates a certain class of buffer overflowBuffer overflowIn computer security and programming, a buffer overflow, or buffer overrun, is an anomaly where a program, while writing data to a buffer, overruns the buffer's boundary and overwrites adjacent memory. This is a special case of violation of memory safety....
security problems related to improper checking of zero terminated strings, common in the CC (programming language)C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....
programming languageProgramming languageA programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely....
. - The mechanism that the Microsoft Exchange or Microsoft Outlook DST (Daylight saving timeDaylight saving timeDaylight saving time —also summer time in several countries including in British English and European official terminology —is the practice of temporarily advancing clocks during the summertime so that afternoons have more daylight and mornings have less...
) rebasing tool TZMOVE.EXE uses to recalculate and reschedule appointment dates that are affected by DST. - The act of moving changesetChangesetIn revision control, a changeset is a way to group a number of modifications that are relevant to each other in one atomic package, that may be canceled or propagated as needed. This is one synchronization model....
s to a different branchBranching (software)Branching, in revision control and software configuration management, is the duplication of an object under revision control so that modifications can happen in parallel along both branches....
when using a revision controlRevision controlRevision control, also known as version control and source control , is the management of changes to documents, programs, and other information stored as computer files. It is most commonly used in software development, where a team of people may change the same files...
system, or, in some systems, by synchronizing a branch with the originating branch by merging all new changes in the latter to the former.