徽标
联盟百科
通讯
下载应用,请到 Google Play
新! 在您的Android™设备上下载联盟百科!
安装
比浏览器更快的访问!
 

钩子编程

指数 钩子编程

钩子编程(hooking),也称作“挂钩”,是计算机程序设计术语,指通过拦截间的函数调用、消息传递、事件传递来修改或扩展操作系统、应用程序或其他软件组件的行为的各种技术。处理被拦截的函数调用、事件、消息的代码,被称为钩子(hook)。 钩子编程有多种用途,如调试、扩展功能。例如在键盘或鼠标事件到达应用程序之前拦截这些事件;拦截应用程序或其他模块的操作系统调用以监督行为、修改功能。也广泛用于benchmarking程序,如度量3D游戏的帧率。 钩子编程也被用于恶意代码,如rootkit是各种通过假扮系统API调用输出来隐藏自身进程的可见性的工具与技术;游戏外挂是另一类例子。.

16 关系: ATL執行檔執行期可移植可执行帧率回调函数程序设计组件对象模型DirectX訊息傳遞 (軟體)调试虚函数 (程序语言)NetfilterRootkitWindows API游戏外挂

ATL

ATL 可以是下列的意思:.

新!!: 钩子编程和ATL · 查看更多 »

執行檔

執行檔在電腦科學上,指一種內容可被電腦解釋為程式的電腦檔案。通常執行檔內,含有以二進制編碼的微處理器指令,也因此執行檔有時稱為二進制檔。這些二進制微處理器指令的編碼,於各種微處理器有所不同,故此執行檔多數要分開不同的微處理版本。一個電腦檔案是否為執行檔,主要由作業系統的傳統決定。例如根據特定的命名方法(如副檔名為exe)或檔案的元數據信息(例如UNIX系統設定「可執行」權限)。.

新!!: 钩子编程和執行檔 · 查看更多 »

執行期

執行時期(Run time)在電腦科學中代表一個電腦程式從開始執行到終止執行的運作、執行的時期。與執行時期相對的其他時期包括:設计時期(design time)、編譯時期(compile time)、鏈結時期(link time)、與載入時期(load time)。 而執行環境是一種為正在執行的程序或程式提供軟體服務的虛擬機械環境。它有可能是由作業系統自行提供,或由執行此程式的母程式提供。 通常由作業系統負責處理程式的載入:利用載入器(loader)讀入程式碼,接著進行基本的記憶體配置,並視需要聯結此程式指定的所有動態链接庫。有些程式語言會由此語言提供的運行環境處理上述工作。 程式碼的某些問題,只能在執行期間進行偵錯動作(或較有效率),例如邏輯錯誤或陣列邊際檢查等便屬此類。因此不管撰寫與測試得多麼精細,有些錯誤必須在實際上線並處理真實資料的情況下才能找出。因此,程式使用者也許會遇到諸如執行時期錯誤之類的訊息。.

新!!: 钩子编程和執行期 · 查看更多 »

可移植可执行

可移植性可执行文件(英语:Portable Executable,缩写为PE)是一种用于可执行文件、目标文件和动态链接库的文件格式,主要使用在32位和64位的Windows操作系统上。“可移植的”是指该文件格式的通用性,可用于许多种不同的操作系统和体系结构中。PE文件格式封装了Windows操作系统加载可执行程序代码时所必需的一些信息。这些信息包括动态链接库、API导入和导出表、资源管理数据和线程局部存储数据。在Windows NT操作系统中,PE文件格式主要用于EXE文件、DLL文件、.sys(驱动程序)和其他文件类型。可扩展固件接口(EFI)技术规范书中说明PE格式是EFI环境中的标准可执行文件格式。开头为DOS头部。 PE格式是由Unix中的COFF格式修改而来的。在Windows开发环境中,PE格式也称为PE/COFF格式。 在Windows NT操作系统中,PE格式目前支持IA-32、IA-64和x86-64(AMD64/Intel64)的指令系统。在Windows 2000之前,Windows NT还支持MIPS、Alpha和PowerPC的指令系统。由于Windows CE也在使用PE文件格式,因此PE仍然支持几种不同型号的MIPS、ARM(包括Thumb)和SuperH指令系统。 PE文件格式的主要竞争对手是可执行与可链接格式(ELF)(使用于Linux和大多数Unix版本中)和Mach-O(使用于Mac OS X中)。.

新!!: 钩子编程和可移植可执行 · 查看更多 »

帧率

幀率或影格率是用於測量顯示--的量度。測量單位為「每秒顯示--」(Frame per Second,FPS)或「赫茲」,一般來說FPS用於描述影片、電子繪圖或遊戲每秒播放多少--。.

新!!: 钩子编程和帧率 · 查看更多 »

回调函数

在计算机程序设计中,回调函数,或简称回调(Callback 即call then back 被主函数调用运算后会返回主函数),是指通过传递到其它代码的,某一块可执行代码的引用。这一设计允许了底层代码调用在高层定义的子程序。.

新!!: 钩子编程和回调函数 · 查看更多 »

程序设计

电脑程序设计(Computer programming),或稱程式設計(programming),是给出解决特定问题程序的过程,軟體開發過程中的重要步驟。程序设计往往以某种程序设计语言为工具,给出这种语言下的程序。程序设计过程应包括分析、设计、编碼、测试、除错等不同阶段。 在计算机技术发展的早期,軟體開發主要就是程序设计。但随着技术的发展,软件系统越来越复杂,逐渐分化出许多专用的软件系统,如操作系统、数据库系统、应用服务器,而且这些专用的软件系统愈来愈成为普遍的系統環境的一部分。这种情况下軟體開發的内容越来越丰富,不再只是纯粹的程序设计,还包括数据库设计、用户界面设计、通信协议设计和复杂的系统配置过程。 专业的程序设计人员被称为程序员。某种意思上,程序设计的出现甚至早于电子计算机的出现。英国著名诗人拜伦的女儿愛達·勒芙蕾絲曾设计了巴贝奇分析机上計算伯努利數的一个程序。她甚至还建立了循环和子程序的概念。由于她在程序设计上的突破性創新,愛達·勒芙蕾絲被称为世界上第一位程序员。 任何设计工作都是在各种条件限制和相互矛盾的需求之间寻求一种平衡。這種觀點反映在程式設計上,就是硬體儲存空間與程式執行時間的限制。 空間方面,在计算机技术发展的早期,由于机器资源比较昂贵,如何縮小儲存空間往往是设计关心的首要重點;而随着硬件技术的飞速发展,電腦上資料儲存媒體的價格降低,空間不再是考慮的第一要點,一些較耗時的運算也漸漸發展出以空間換取時間的模式。 時間方面,在早期,如何加強程式效率、縮短程式執行時間是程式設計師的共同目標;而在硬體效能進步、效率差距縮小,软件规模與複雜度卻日益增加的現在,程序的结构、可维护性、重複使用性、彈性等因素更顯得重要。在多人合作的程式設計專案裡,程式設計師們會加上各種註解以協助其他參與者理解程式碼,,但卻因能達到較好的溝通並提高程式碼的可維護性,而成為目前的主流。 然而,隨著智慧型手機等攜帶裝置的興起,執行時間的縮短與儲存空間的有效運用再次成為焦點,形成與主機伺服器類型應用程式不同的重點考慮方向。.

新!!: 钩子编程和程序设计 · 查看更多 »

组件对象模型

组件对象模型(Component Object Model,縮寫COM)是微軟的一套软件组件的二进制接口标准。这使得跨编程语言的进程间通信、动态对象创建成为可能。COM是多项微软技术与框架的基础,包括OLE、、ActiveX、COM+、DCOM、、DirectX、Windows Runtime。.

新!!: 钩子编程和组件对象模型 · 查看更多 »

DirectX

DirectX(Direct eXtension,縮寫:DX)是由微软公司建立的一系列專為多媒體以及遊戲開發的應用程式介面。旗下包含Direct3D、Direct2D、DirectCompute等等多個不同用途的子部份,因為這一系列API皆以Direct字樣開頭,所以DirectX(只要把X字母替換為任何一個特定API的名字)就成為這一巨大的API系列的統稱。目前最新版本為DirectX 12,隨附於Windows 10作業系統之上。 DirectX被广泛用于Microsoft Windows、Microsoft Xbox电子游戏开发,并且--能支持这些平台。除了遊戲開發之外,DirectX亦被用於開發許多虛擬三維圖形相關軟體。Direct3D是DirectX中最廣為應用的子模塊,所以有時候這兩個名詞可以互相代稱。 DirectX主要基於C++编程语言实现,遵循COM架構。.

新!!: 钩子编程和DirectX · 查看更多 »

訊息傳遞 (軟體)

在電腦科學中,訊息傳遞(Message passing)是一種通訊的形式,在并发计算、平行計算、物件導向程式設計與行程間通訊中使用。在這種模式中,行程或物件以傳送及接收訊息的方式來達成同步。 不同于传统程序设计通过名字直接调用(invoking)一个进程、子例程或者函数,訊息傳遞直接发送消息给一个进程,依赖进程或基础框架来调用实际执行的代码。 可分为同步方式与异步方式。.

新!!: 钩子编程和訊息傳遞 (軟體) · 查看更多 »

调试

偵錯(),又稱除錯,是发现和减少计算机程序或电子仪器设备中程序错误的一个过程。.

新!!: 钩子编程和调试 · 查看更多 »

虚函数 (程序语言)

在面向对象程序设计领域,C++、Object Pascal 等语言中有虚函数(virtual function)或虚方法(virtual method)的概念。这种函数或方法可以被子类继承和,通常使用动态调度实现。这一概念是面向对象程序设计中(运行时)-zh:多型;zh-tw:多型;zh-cn:多态-的重要组成部分。简言之,虚函数可以给出目标函数的定义,但该目标的具体指向在编译期可能无法确定。 虚函数在设计模式方面扮演重要角色。例如,《设计模式》一书中提到的23种设计模式中,仅5个对象创建模式就有4个用到了虚函数(抽象工厂、工厂方法、生成器、原型),只有-zh:單體;zh-tw:單體;zh-cn:单例;-没有用到。.

新!!: 钩子编程和虚函数 (程序语言) · 查看更多 »

Netfilter

Netfilter,在Linux內核中的一個軟體框架,用於管理網路封包。不僅具有網路位址轉換(NAT)的功能,也具備封包內容修改、以及封包過濾等防火牆功能。利用運作於使用者空間的應用軟體,如iptable等,來控制Netfilter,系統管理者可以管理通過Linux作業系統的各種網路封包。1990年代,Netfilter在Linux 2.3.15版時進入Linux內核,正式應用於Linux 2.4版。 現今許多市面上許多的IP分享器或無線網路路由器(Wireless router),多是嵌入式Linux平台,並利用Netfilter的封包處理能力,提供NAT以及防火牆的功能。此外,Netfilter平台的模組化設計使得功能具可擴充性,以及Linux核心本身屬於開放的原始碼,能夠免費取得原始碼進行修改與擴充。Netfilter平台中制定了五個封包的掛載點(Hook),分別是PRE_ROUTING、INPUT、OUTPUT、FORWARD與POST_ROUTING。.

新!!: 钩子编程和Netfilter · 查看更多 »

Rootkit

Rootkit是指其主要功能為:隱藏其他程式行程的軟體,可能是一個或一個以上的軟體組合;廣義而言,Rootkit也可視為一項技術。在今天,Rootkit一词更多地是指被作为驱动程序,加载到操作系统内核中的恶意软件。因为其代码运行在特权模式之下,从而能造成意料之外的危险。最早Rootkit用於善意用途,但後來Rootkit也被駭客用在入侵和攻擊他人的電腦系統上,電腦病毒、間諜軟體等也常使用Rootkit來隱藏蹤跡,因此Rootkit已被大多數的防毒軟體歸類為具危害性的惡意軟體。Linux、Windows、Mac OS等作業系統都有機會成為Rootkit的受害目標。 在现代操作系统中,应用程序不能直接访问硬件,而是通过调用操作系统提供的接口来使用硬件,操作系统依赖内核空间来管理和调度这些应用。内核空间由四大部分组成,分别是:进程管理(负责分配Cpu时间)、文件访问(把设备调配成文件系统,并提供一个一致的接口供上层程序调用)、安全控制(负责强制规定各个进程的具体的权限和单独的内存范围,避免各进程之间发生冲突)和内存管理(负责进程运行时对内存资源的分配、使用、释放和回收)。内核是一种数据结构,Rootkit技术通过修改这些数据结构来隐藏其它程式的进程、文件、网络通讯和其它相关信息(比如注册表和可能因修改而产生的系统日志等)。例如,通过修改操作系统的EPROCESS链表结构可以达到隐藏进程的效果,挂钩服务调用表可以隐藏文件和目录,挂钩中断描述符表则可以监听键盘击键等等。Rootkit至今仍然是一个发展中的技术领域。.

新!!: 钩子编程和Rootkit · 查看更多 »

Windows API

Windows操作系统应用程序接口(Windows API),有非正式的简称法为WinAPI,是微软对于Windows操作系统中可用的核心应用程序编程接口的称法。它被设计为各种语言的程序调用,也是应用软件与Windows系统最直接的交互方式。大多数驱动程序需要对Windows系统更底层次访问接口,由所用版本的Windows的Native API来提供接口。 Windows有一个软件开发套件(SDK, software development kit)提供相应的文档和工具,以使程序员开发使用Windows API的软件和利用Windows技术。.

新!!: 钩子编程和Windows API · 查看更多 »

游戏外挂

遊戲外掛是指針對某一款遊戲而設計的、修改遊戲中部份程式的程式。 外掛這個名詞原本是指為增加程式的額外功能而附掛的追加部件,作为动词被用來形容“使用外部程序对游戏进行修改”這类行為,则是出現在網路遊戲時代之後,與原本就存在的外掛一詞意義有根本上的差異,事實上是一種誤用並且只存在遊戲玩家之間,所以並沒有受到所有人的認同。 而後隨著使用者的需求,出現了專門針對特定遊戲的外部程式,甚至包涵了影響遊戲公平性的功能,而理所當然的使用這些外部程式被遊戲公司認定為不當行為,連帶的使得很多人產生了外掛必定等於違法的誤解,甚至與遊戲公平性無關的程式或根本不是用於遊戲的其他程式原本意義上的外掛也受到牽連。.

新!!: 钩子编程和游戏外挂 · 查看更多 »

重定向到这里:

挂钩 (编程)钩子 (编程)钩子函数

传出传入
嘿!我们在Facebook上吧! »