A tag is a keyword or label that categorizes your question with other, similar questions. Using the right tags makes it easier for others to find and answer your question.
As assembler languages have no built-in primitives to handle arguments passing while starting a procedure, most of assembler programs and compiler do agree on calling conventions to describe how to em…
the process of assembling a set of instructions obtained through *disassembly* and which were certainly patched or modified.
An surjective function that maps a set of keys to a smaller data sets of a fixed length. Cryptographic hash-function are supposed to be practically impossible to reverse except by brute-force.
`Application Programming Interface` defines an interface that controls the interactions between a module and its users.
Represent all the active functions in the program at a precise moment. It is composed of a chain of functions where each function has a caller (parent) and a callee (descendant), except for the `main`…
when referring to a true .EXE file as opposed to a .COM or .MSI or any other executable.
A way for an operating system to serve requests from user-space without breaking the user-space and kernel-space memory protection.
the art of understanding the properties of an unknown binary stream of data without any additional information. Usually done as a last resort due to lack of related code to reverse…
An integrated development environment (IDE) developed by Borland using Object-Pascal for console, desktop graphical, web, and mobile applications.
A formatted unit of data carried by a network. This is the smallest unit of data that you can capture on packet-switched networks.
Extra information added to help for debugging purpose. It gathers information about each variable, type, procedure, etc, and link the assembly code to source code. Usual debugging-symbols formats incl…
the lowest level form of encoding instructions (binary). It is usually what the processor directly decodes and executes.
Software managing the hardware part of the computer and providing an API for user-space software to access various services provided by hardware devices.
Managing the risks over information and hardware to prevent unintended or unauthorized access, change or destruction of data or disruption of service.
A family of instruction set architectures originally designed by AMD to extend the Intel x86 instruction set to 64bits CPUs.
special computer programs made as a collection of functions which are meant to be called as external resources by multiple programs.
A software testing technique that involves providing invalid, unexpected, or random data to the inputs of a computer system, then monitoring for exceptions, failed assertions, or memory leaks.
variables declared on the stack. They are usually local to the block they were declared in.
Field of computer science involved in the security of software and the prevention of bug exploitation by attackers.
Can be either the division of a computer's primary memory into segments or sections, or the process in the operating system that maps virtual memory onto physical memory.
a very popular and free assembler and disassembler for the x86 architecture (16-bits, 32-bits, and 64-bits).
a representation, using graph notation, of all paths that might be traversed through a program during its execution. The control flow graph is due to Frances E. Allen, wh…