From 40a141ec9baa5337a0e34ccae5fe594c9040c377 Mon Sep 17 00:00:00 2001 From: firmianay Date: Mon, 7 Aug 2017 23:01:04 +0800 Subject: [PATCH] add pin --- README.md | 3 + doc/2.2_gdb&peda.md | 5 +- doc/5.2_pin.md | 268 +++++++++++++++++++++++++++++++++++++++++++ doc/5.3_angr.md | 1 + pic/5.2_pin_arch.png | Bin 0 -> 57804 bytes 5 files changed, 275 insertions(+), 2 deletions(-) create mode 100644 doc/5.3_angr.md create mode 100644 pic/5.2_pin_arch.png diff --git a/README.md b/README.md index 060d806..2ec3680 100644 --- a/README.md +++ b/README.md @@ -43,12 +43,15 @@ - [五、高级篇](doc/5_advanced.md) - [5.1 Fuzz 测试](doc/5.1_fuzz.md) - [5.2 Pin 动态二进制插桩](doc/5.2_pin.md) + - [5.3 angr 二进制自动化分析](doc/5.3_angr.md) - [六、附录](doc/6_appendix.md) - [6.1 更多 Linux 工具](doc/6.1_Linuxtools.md) - [6.2 更多 Windows 工具](doc/6.2_wintools.md) - [6.3 博客、文章和书籍](doc/6.3_books&blogs.md) - [6.4 习题 write-up](doc/6.4_writeup.md) + - [6.5 Linux x86-64 系统调用表](http://blog.rchapman.org/posts/Linux_System_Call_Table_for_x86_64/) + 合作和贡献 --- diff --git a/doc/2.2_gdb&peda.md b/doc/2.2_gdb&peda.md index 84f7d8d..f978178 100644 --- a/doc/2.2_gdb&peda.md +++ b/doc/2.2_gdb&peda.md @@ -10,7 +10,7 @@ ## gdb 基本工作原理 gdb 通过系统调用 `ptrace` 来接管一个进程的执行。ptrace 系统调用提供了一种方法使得父进程可以观察和控制其它进程的执行,检查和改变其核心映像以及寄存器。它主要用来实现断点调试和系统调用跟踪。ptrace 系统调用的原型如下: -```c +``` #include long ptrace(enum __ptrace_request request, pid_t pid, void *addr, void *data); ``` @@ -18,7 +18,7 @@ long ptrace(enum __ptrace_request request, pid_t pid, void *addr, void *data); - **void *addr**:指示要监控的内存地址。 - **void *data**:存放读取出的或者要写入的数据。 - **enum __ptrace_request request**:决定了系统调用的功能,几个主要的选项: - - *PTRACE_TRACEME*:表示此进程将被父进程跟踪,任何信号(除了 SIGKILL)都会暂停子进程,接着阻塞于 `wait()` 等待的父进程被唤醒。子进程内部对 `exec()` 的调用将发出 `SIGTRAP` 信号,这可以让父进程在子进程新程序开始运行之前就完全控制它。 + - *PTRACE_TRACEME*:表示此进程将被父进程跟踪,任何信号(除了 `SIGKILL`)都会暂停子进程,接着阻塞于 `wait()` 等待的父进程被唤醒。子进程内部对 `exec()` 的调用将发出 `SIGTRAP` 信号,这可以让父进程在子进程新程序开始运行之前就完全控制它。 - *PTRACE_ATTACH*:attach 到一个指定的进程,使其成为当前进程跟踪的子进程,而子进程的行为等同于它进行了一次 PTRACE_TRACEME 操作。但需要注意的是,虽然当前进程成为被跟踪进程的父进程,但是子进程使用 `getppid()` 的到的仍将是其原始父进程的 pid。 - *PTRACE_CONT*:继续运行之前停止的子进程。可同时向子进程交付指定的信号。 @@ -40,4 +40,5 @@ long ptrace(enum __ptrace_request request, pid_t pid, void *addr, void *data); #### 断点的实现 断点的功能是通过内核信号实现的,在 x86 架构上,内核向某个地址打入断点,实际上就是往该地址写入断点指令 `INT 3`,即 `0xCC`。目标程序运行到这条指令之后会触发 `SIGTRAP` 信号,gdb 捕获这个信号,并根据目标程序当前停止的位置查询 gdb 维护的断点链表,若发现在该地址确实存在断点,则可判定为断点命中。 + ## gdb 基本操作 diff --git a/doc/5.2_pin.md b/doc/5.2_pin.md index 915a9e2..91c5662 100644 --- a/doc/5.2_pin.md +++ b/doc/5.2_pin.md @@ -1 +1,269 @@ # Pin 动态二进制插桩 + +- [插桩技术](#插桩技术) +- [Pin 简介](#Pin-简介) +- [Pin 的基本用法](#Pin-的基本用法) +- [Pintool 示例分析](#Pintool-示例分析) +- [Pintool 编写](#Pintool-编写) +- [Pin 在 CTF 中的应用](#Pin-在-CTF-中的应用) + + +## 插桩技术 +插桩技术是将额外的代码注入程序中以收集运行时的信息,可分为两种: + +源代码插桩(Source Code Instrumentation(SCI)):额外代码注入到程序源代码中。 + +示例: +```c +// 原始程序 +void sci() { + int num = 0; + for (int i=0; i<100; ++i) { + num += 1; + if (i == 50) { + break; + } + } + printf("%d", num); +} +``` +```c +// 插桩后的程序 +char inst[5]; +void sci() { + int num = 0; + inst[0] = 1; + for (int i=0; i<100; ++i) { + num += 1; + inst[1] = 1; + if (i == 50) { + inst[2] = 1; + break; + } + inst[3] = 1; + } + printf("%d", num); + inst[4] = 1; +} +``` + +二进制插桩(Binary Instrumentation(BI)):额外代码注入到二进制可执行文件中。 + - 静态二进制插桩:在程序执行前插入额外的代码和数据,生成一个永久改变的可执行文件。 + - 动态二进制插桩:在程序运行时实时地插入额外代码和数据,对可执行文件没有任何永久改变。 + +以上面的函数 `sci` 生成的汇编为例: + +原始汇编代码 +``` +sci: + pushl %ebp + movl %esp, %ebp + pushl %ebx + subl $20, %esp + call __x86.get_pc_thunk.ax + addl $_GLOBAL_OFFSET_TABLE_, %eax + movl $0, -16(%ebp) + movl $0, -12(%ebp) + jmp .L2 +``` +- 插入指令计数代码 + ``` + sci: + counter++; + pushl %ebp + counter++; + movl %esp, %ebp + counter++; + pushl %ebx + counter++; + subl $20, %esp + counter++; + call __x86.get_pc_thunk.ax + counter++; + addl $_GLOBAL_OFFSET_TABLE_, %eax + counter++; + movl $0, -16(%ebp) + counter++; + movl $0, -12(%ebp) + counter++; + jmp .L2 + ``` +- 插入指令跟踪代码 +``` +sci: + Print(ip) + pushl %ebp + Print(ip) + movl %esp, %ebp + Print(ip) + pushl %ebx + Print(ip) + subl $20, %esp + Print(ip) + call __x86.get_pc_thunk.ax + Print(ip) + addl $_GLOBAL_OFFSET_TABLE_, %eax + Print(ip) + movl $0, -16(%ebp) + Print(ip) + movl $0, -12(%ebp) + Print(ip) + jmp .L +``` + + +## Pin 简介 +Pin 是 Intel 公司研发的一个动态二进制插桩框架,可以在二进制程序运行过程中插入各种函数,以监控程序每一步的执行。 + +Pin 具有一下优点: +- 易用 + - 使用动态插桩,不需要源代码、不需要重新编译和链接。 +- 可扩展 + - 提供了丰富的 API,可以使用 C/C++ 编写插桩工具(被叫做 Pintools) +- 多平台 + - 支持 x86、x86-64、Itanium、Xscale + - Windows、Linux、OSX、Android +- 鲁棒性 + - 支持插桩现实世界中的应用:数据库、浏览器等 + - 支持插桩多线程应用 + - 支持信号量 +- 高效 + - 在指令代码层面实现编译优化 + + +## Pin 的基本结构和原理 +Pin 是一个闭源的框架,由 Pin 和 Pintool 组成。Pin 内部提供 API,用户使用 API 编写可以由 Pin 调用的动态链接库形式的插件,称为 Pintool。 + +![](../pic/5.2_pin_arch.png) + +由图可以看出,Pin 由进程级的虚拟机、代码缓存和提供给用户的插桩检测 API 组成。Pin 虚拟机包括 JIT(Just-In-Time) 编译器、模拟执行单元和代码调度三部分,其中核心部分为 JIT 编译器。当 Pin 将待插桩程序加载并获得控制权之后,在调度器的协调下,JIT 编译器负责对二进制文件中的指令进行插桩,动态编译后的代码即包含用户定义的插桩代码。编译后的代码保存在代码缓存中,经调度后交付运行。 + +程序运行时,Pin 会拦截可执行代码的第一条指令,并为后续指令序列生成新的代码,新代码的生成即按照用户定义的插桩规则在原始指令的前后加入用户代码,通过这些代码可以抛出运行时的各种信息。然后将控制权交给新生成的指令序列,并在虚拟机中运行。当程序进入到新的分支时,Pin 重新获得控制权并为新分支的指令序列生成新的代码。 + +通常 Pintool 中包含了两部分: +- 插桩代码(Instrumentation code) + - 在什么位置插入插桩代码 +- 分析代码(Analysis code) + - 在选定的位置要执行的代码 + +Pintool 采用向 Pin 注册插桩回调函数的方式,对每一个被插桩的代码段,Pin 调用相应的插桩回调函数,观察需要产生的代码,检查它的静态属性,并决定是否需要以及插入分析函数的位置。分析函数会得到插桩函数传入的寄存器状态、内存读写地址、指令对象、指令类型等参数。 + + +## Pin 的基本用法 +Pin 的三种插桩模式: +- Instruction level(Ins) + - 在每一条原始程序指令前(或后)插入自己的代码,即调用这个函数。 +- Function level(RTN) + - Pin 通过符号表信息来找到这些需要插入的位置,要使用这种模式的代码插入,首先得调用 pin 内置的初始化符号表函数,即 `PIN_InitSymbols()` +- Basic block level(BBL) + - 基本调用块级别的插入模式,只在 trace 的时候可用。 + +在 Pin 解压后的目录下,编译一个 Pintool,首先在 `source/tools/` 目录中创建文件夹 `MyPintools`,将 `mypintool.cpp` 复制到 `source/tools/MyPintools` 目录下,然后 `make`: +``` +$ cp mypintools.cpp source/tools/MyPintools +$ cd source/tools/MyPintools +``` +对于 32 位架构,使用 `TARGET=ia32`: +``` +$ make obj-ia32/mypintool.so TARGET=ia32 +``` +对于 64 位架构,使用 `TARGET=intel64`: +``` +$ make obj-intel64/mypintool.so TARGET=intel64 +``` + +启动并插桩一个应用程序: +``` +$ ../../../pin -t obj-intel64/mypintools.so -- application +``` +其中 `pin` 是插桩引擎,由 Pin 的开发者提供;`pintool.so` 是插桩工具,由用户自己编写并编译。 + +绑定并插桩一个正在运行的程序: +``` +$ ../../../pin -t obj-intel64/mypintools.so -pid 1234 +``` + + +## Pintool 示例分析 +Pin 提供了一些 Pintool 的示例,下面我们分析一下用户手册中介绍的指令计数工具 inscount。 +```c +#include +#include +#include "pin.H" + +ofstream OutFile; + +// The running count of instructions is kept here +// make it static to help the compiler optimize docount +static UINT64 icount = 0; + +// This function is called before every instruction is executed +VOID docount() { icount++; } + +// Pin calls this function every time a new instruction is encountered +VOID Instruction(INS ins, VOID *v) +{ + // Insert a call to docount before every instruction, no arguments are passed + INS_InsertCall(ins, IPOINT_BEFORE, (AFUNPTR)docount, IARG_END); +} + +KNOB KnobOutputFile(KNOB_MODE_WRITEONCE, "pintool", + "o", "inscount.out", "specify output file name"); + +// This function is called when the application exits +VOID Fini(INT32 code, VOID *v) +{ + // Write to a file since cout and cerr maybe closed by the application + OutFile.setf(ios::showbase); + OutFile << "Count " << icount << endl; + OutFile.close(); +} + +/* ===================================================================== */ +/* Print Help Message */ +/* ===================================================================== */ + +INT32 Usage() +{ + cerr << "This tool counts the number of dynamic instructions executed" << endl; + cerr << endl << KNOB_BASE::StringKnobSummary() << endl; + return -1; +} + +/* ===================================================================== */ +/* Main */ +/* ===================================================================== */ +/* argc, argv are the entire command line: pin -t -- ... */ +/* ===================================================================== */ + +int main(int argc, char * argv[]) +{ + // Initialize pin + if (PIN_Init(argc, argv)) return Usage(); + + OutFile.open(KnobOutputFile.Value().c_str()); + + // Register Instruction to be called to instrument instructions + INS_AddInstrumentFunction(Instruction, 0); + + // Register Fini to be called when the application exits + PIN_AddFiniFunction(Fini, 0); + + // Start the program, never returns + PIN_StartProgram(); + + return 0; +} +``` +执行流程如下: +- 在主函数 `main` 中: + - 初始化 `PIN_Init()`,注册指令粒度的回调函数 `INS_AddInstrumentFunction(Instruction, 0)`,被注册插桩函数名为 `Instruction` + - 注册完成函数(常用于最后输出结果) + - 启动 Pin 执行 +- 在每条指令之前(`IPOINT_BEFORE`)执行分析函数 `docount()`,功能是对全局变量递增计数。 +- 执行完成函数 `Fini()`,输出计数结果到文件。 + + +## Pintool 编写 + +## Pin 在 CTF 中的应用 diff --git a/doc/5.3_angr.md b/doc/5.3_angr.md new file mode 100644 index 0000000..06ee211 --- /dev/null +++ b/doc/5.3_angr.md @@ -0,0 +1 @@ +# angr 二进制自动化分析 diff --git a/pic/5.2_pin_arch.png b/pic/5.2_pin_arch.png new file mode 100644 index 0000000000000000000000000000000000000000..260ca05659fbaeb1cd9858a2175a3a56372c071a GIT binary patch literal 57804 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 literal 0 HcmV?d00001