Skip to content
forked from coolsmurfs/-pin-

基于pin的动态指令级别的插桩,通过对控制流跳转的分析,从而实现对控制流劫持类漏洞攻击的检测。

Notifications You must be signed in to change notification settings

neoblackxt/-pin-

 
 

Repository files navigation

-pin-

基于pin的动态指令级别的插桩,通过对控制流跳转的分析,从而实现对控制流劫持类漏洞攻击的检测。 在控制流劫持类漏洞中,一般是通过控制程序的跳转流程来实现对控制流的劫持。在X86的系统中,控制流指令主要有3类,分别是call 指令、ret指令和jmp指令。而这其中有一些是直接跳转,如跳转到 某个固定的地址,因此是无法实现程序控制流的劫持,因此在分析时不需要进行分析。pin是intel出的一个动态插桩工具,支持指令插桩、基本快插桩、镜像级插桩和函数级的插桩。 可以实现对指令、函数、基本快以及镜像的分析。在实现分析时利用了对指令的插桩和镜像级插桩。指令插桩则是分析三类影响程序控制流的指令,镜像插桩则是记录程序加载的模块信息 、模块地址并且对特定的模块中的相关函数进行插桩。通过插桩分析,对控制流指令,通过检测跳转地址来判定是否是合法的。而ret指令则是通过建立模拟堆栈的形式来和正常的 返回跳转进行比较而判断是否存在缓冲区溢出劫持。对一些利用SEH等方式来进行利用的漏洞,则是通过插桩kernel32.dll模块中的在处理异常时实现对SEH链表完整性的检测来实现。

About

基于pin的动态指令级别的插桩,通过对控制流跳转的分析,从而实现对控制流劫持类漏洞攻击的检测。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 77.7%
  • XSLT 13.8%
  • CSS 3.5%
  • Makefile 2.8%
  • C 2.2%