Content deleted Content added
Talhahzafar (talk | contribs) Added a new section "Uses as a Defence Mechanism" and fixed some grammatical issues
→Features |
|||
Line 9:
| website = [http://www.intel.com/software/pintool www.intel.com/software/pintool]
}}
'''Pin''' is a platform for creating analysis tools. A pin tool comprises instrumentation, analysis and callback [[Subroutine|routines]]. Instrumentation routines are called when code that has not yet been recompiled is about to be run, and enable the insertion of analysis routines. Analysis routines are called when the code
Pin performs instrumentation by taking control of the program just after it loads into the memory.
== Features ==
=== Instrumentation modes ===
Pin supports two modes of instrumentation called JIT mode and Probe mode. JIT mode supports all features of Pin, while Probe mode supports a limited feature set but is far faster, adding almost no overhead to program's running time. JIT mode uses a just-in-time compiler to recompile all program code and insert instrumentation, while Probe mode uses [[Trampoline (computers)|code trampolines]] for instrumentation.
=== Platform independence ===
Line 34:
*'''[http://www.pinplay.org PinPlay]''' enables the capture and deterministic replay of the running of multithreaded programs under pin. Capturing the running of a program helps developers overcome the non-determinism inherent in multithreading.<ref>[http://delivery.acm.org/10.1145/1780000/1772958/p2-patil.pdf PinPlay: a framework for deterministic replay and reproducible analysis of parallel programs]</ref>
* Pin itself comes with many example tools that make use of its abilities. These tools are licensed under a BSD-like license.
== Uses as a Defence Mechanism ==
Most scholars think that one can use Pin tool or binary instrumentation techniques to detect malwares in the future. Unlike traditional antiviruses where scanning files is used to detect malwares, one can use tools like Pin tool to scan program's resources to detect abnormalities; thus detect malwares.
== See also ==
|