{
  "schemaVersion": "0.11.0",
  "canonical": "https://www.pystone.net/notes/hooking-techniques/",
  "atlas": "https://www.pystone.net/?node=hooking-techniques#knowledge-atlas",
  "markdown": "https://www.pystone.net/notes/hooking-techniques.md",
  "context": "https://www.pystone.net/notes/hooking-techniques.context.json",
  "knowledgeVersion": "224c990773de.5fa8af6e39fa",
  "build": {
    "siteCommit": "224c990773de166d23a886306577dd90379529ce",
    "notesCommit": "5fa8af6e39fa3891d1b9b4832bfa6c4e0ecaaf0a",
    "builtAt": "1970-01-01T00:00:00.000Z",
    "version": "224c990773de.5fa8af6e39fa"
  },
  "id": "note:hooking-techniques",
  "slug": "hooking-techniques",
  "title": "Hooking技术",
  "type": "note",
  "visibility": "public",
  "idStability": "rename-stable",
  "author": {
    "name": "Perrin Yong",
    "profile": "https://www.pystone.net/profile/"
  },
  "publisher": {
    "name": "Perrin Yong",
    "profile": "https://www.pystone.net/profile/"
  },
  "aliases": [],
  "summary": "Hooking技术",
  "contentRole": "unspecified",
  "isMoc": false,
  "mocRecognition": "none",
  "generated": false,
  "attribution": "unspecified",
  "domain": "10-计算机、信息技术与工程",
  "tags": [],
  "mocs": [],
  "contentHash": "e5cd18e8019f1ba5ca964cd81f62921ac6df39496105e73d2078564768bf36cb",
  "assets": [],
  "headings": [
    {
      "depth": 1,
      "text": "Hooking技术",
      "anchor": "hooking技术",
      "citation": "https://www.pystone.net/notes/hooking-techniques/#hooking%E6%8A%80%E6%9C%AF"
    },
    {
      "depth": 2,
      "text": "Term",
      "anchor": "term",
      "citation": "https://www.pystone.net/notes/hooking-techniques/#term"
    },
    {
      "depth": 3,
      "text": "Usages",
      "anchor": "usages",
      "citation": "https://www.pystone.net/notes/hooking-techniques/#usages"
    },
    {
      "depth": 4,
      "text": "debugging and extending functionality",
      "anchor": "debugging-and-extending-functionality",
      "citation": "https://www.pystone.net/notes/hooking-techniques/#debugging-and-extending-functionality"
    },
    {
      "depth": 4,
      "text": "benchmarking programs",
      "anchor": "benchmarking-programs",
      "citation": "https://www.pystone.net/notes/hooking-techniques/#benchmarking-programs"
    },
    {
      "depth": 4,
      "text": "used by malicious code",
      "anchor": "used-by-malicious-code",
      "citation": "https://www.pystone.net/notes/hooking-techniques/#used-by-malicious-code"
    },
    {
      "depth": 3,
      "text": "Methods",
      "anchor": "methods",
      "citation": "https://www.pystone.net/notes/hooking-techniques/#methods"
    },
    {
      "depth": 4,
      "text": "Source modification",
      "anchor": "source-modification",
      "citation": "https://www.pystone.net/notes/hooking-techniques/#source-modification"
    },
    {
      "depth": 4,
      "text": "Runtime modification",
      "anchor": "runtime-modification",
      "citation": "https://www.pystone.net/notes/hooking-techniques/#runtime-modification"
    },
    {
      "depth": 2,
      "text": "Ref",
      "anchor": "ref",
      "citation": "https://www.pystone.net/notes/hooking-techniques/#ref"
    }
  ],
  "claims": [],
  "outgoing": [],
  "incoming": [
    {
      "id": "note:systems-and-network-security",
      "title": "系统基础与网络安全",
      "url": "https://www.pystone.net/notes/systems-and-network-security/",
      "atlas": "https://www.pystone.net/?node=systems-and-network-security#knowledge-atlas",
      "label": "系统基础与网络安全",
      "origin": "explicit",
      "humanReviewed": true,
      "context": "计算机与操作系统中的“Hooking技术”导航项",
      "citation": "https://www.pystone.net/notes/systems-and-network-security/#%E8%AE%A1%E7%AE%97%E6%9C%BA%E4%B8%8E%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F"
    }
  ],
  "contentMarkdown": "# Hooking技术\n\n﻿# Hooking技术\n\n> 创建时间：2022/2/26 18:55\n\n* Term\n    * Usages\n      * debugging and extending functionality\n      * benchmarking programs\n      * used by malicious code\n    * Methods\n      * Source modification\n      * Runtime modification\n      *   * Ref\n\n## Term\n\nhooking - covers a range of techniques used to alter or augment the behaviour of an operating system, of applications, or of other software components by intercepting function calls or messages or events passed between software components.\n\n### Usages\n\n#### debugging and extending functionality\n\nExamples:\nintercepting keyboard or mouse event messages before they reach an application.\nintercepting operating system calls in order to monitor behavior or modify the function of an application or other component\n\n#### benchmarking programs\n\nfor example frame rate measuring in 3D games, where the output and input is done through hooking.\n\n#### used by malicious code\n\nFor example, rootkits, pieces of software that try to make themselves invisible by faking the output of API calls that would otherwise reveal their existence, often use hooking techniques.\n\n### Methods\n\n#### Source modification\n\n#### Runtime modification\n\n####\n\n## Ref\n\nhttps://en.wikipedia.org/wiki/Hooking\n"
}
