本文主要来自:http://doar-e.github.io/blog/2013/08/31/some-thoughts-about-code-coverage-measurement-with-pin/

问题

给定一个输入,运行一个二进制程序时,通过pin可以捕获到程序的一个执行流。

需求

我们想要知道这个执行流到底覆盖了整个code base的多少?

难点

你不知道完整的code base,怎么算呢?

解决方案

可以对两个输入inputA和inputB产生的执行流做对比,这样们可以知道两个输入谁拥有哪个好的Code Coverage.

pin实现

大致上,我们只需要keep track of all the basic blocks executed,保存这些basic block的地址和拥有的指令数目。
然后我们把指令过得basic block的信息,以json的格式保存下来。
之后,我们可以通过IDA打开一个二进制文件,然后通过IDA Python脚本,把执行过的basic block全部标记为已执行的颜色(比如黑色),这样我们就可以看到一个二进制程序的执行流了。

利用Pin实现CodeCoverage相关推荐

  1. 利用Pin分析程序的动态行为特征

    在程序设计和优化过程中,我们通常希望能有工具帮助我们分析热点代码.覆盖率.内存泄露等这些特性,对多线程程序还希望能分析并发性.竞争和死锁等等.但这些特征通常在静态编译时很难获取,而且往往只能在运行时才 ...

  2. 一款利用PIN管设计的可调衰减器

    PIN管有导通电阻低,截止电阻高,且极间电容小这些特点.所以一般可以把它用作SWITCH , 以及可调衰减器的设计: skyworks , 罗姆, nxp等厂商都有PIN管售卖. 现利用ADS自带的P ...

  3. 利用dynamoRIO实现codeCoverage

    通过dynamoRIO收集程序执行流信息 这些信息包括:offset from module base, size, num of instructions 此外由于我们可以看到一个basicbloc ...

  4. STM32F10x随笔(gcc+scons)

    by HYH | 2017 年 9 月 13 日 下午 10:22 一.开发板简介 开发板上除了必须的晶振和复位电路,只有一个接在PB12上的led(用于测试). 二.串口下载(stm32flash) ...

  5. linux 符号执行,[原创]符号执行Symcc与模糊测试AFL结合实践

    上个月末无聊的划水时间段内,在推上看到有人发了一篇关于如何结合去年新发布的符号执行Symcc与模糊测试引擎AFL,以提升Fuzz效率的视频贴.打开这个链接后才发现是个卖课的,emmm.... , 看价 ...

  6. Kali Linux渗透测试——无线渗透

    笔记内容参考安全牛课堂苑房弘老师的Kali Linux渗透测试教程,以及文章: https://blog.csdn.net/qq_38265137/article/details/80370554 h ...

  7. 如何修改电脑密码(在不知道密码的前提下)

    如何修改电脑密码(在不知道密码的前提下) 这一期我们主要讨论在Windows下电脑密码的破解,昨天遇到一个朋友的电脑PIN怎么输入都不对,这是我遇到的第二个例子了,因此写下这一篇笔记. 我们先来了解一 ...

  8. sus 逆向 writrup

    东南的平台又放了新题,这次决定都做一下试试,在这里记录解题过程,因为是平时练习,我会尽可能多的把思路和解法写全,鉴于东南平台的wp不是很多,也方便下一届萌新的自主练习.平台地址:http://sus. ...

  9. 测试测量(2)-继电器基础介绍

    继电器种类比较多,这里只介绍测试测量中常用到的几种继电器: 1 舌簧继电器(reed relays) 1.1 舌簧继电器原理 舌簧继电器的原理看起来非常简单,舌簧继电器的核心动作器件由两片铁磁材料的簧 ...

最新文章

  1. ajax实现动态及时刷新表格数据_如何爬取网页数据
  2. Centos下MongoDB的安装与配置
  3. Shell-通过shell启动Java类中的main方法 + 通过Shell启动jar包
  4. Warning:关于_CRT_SECURE_NO_WARNINGS
  5. 20200724:力扣197周周赛上
  6. Exynos4412 BSP平台搭建(详细图解)
  7. FreeRTOS 教程指南 学习笔记 第二章 内存管理
  8. 【8月】100个HC3i优秀医疗信息化资源推荐
  9. JavaScript:隐藏、显示div
  10. Springboot + Spring Security 实现前后端分离登录认证及权限控制
  11. JavaWeb-RequestResponse
  12. 全自动叠片过滤器内部滤芯讲解
  13. 阿里图标库icon字体使用详细步骤
  14. 云服务器打不开,为什么打不开云服务器失败怎么回事
  15. anaconda3安装注意事项以及pytorch环境配置
  16. Linux下载文件命令wget的一些用法
  17. matlab读取wav,播放wav,绘制语音波形图
  18. 一点资讯拆VIE回国;拼多多做跨境海淘;复宏汉霖首款生物类似药获批...
  19. matlab实现水塔水流量问题
  20. DEVC++密室逃脱V1.03

热门文章

  1. php5.5开发环境配置,windows下配置php5.5开发环境及开发扩展
  2. 如何查看电脑是几核几线程
  3. SpringMVC入门(一)之HelloWorld(IDEA版)
  4. 什么是依赖注入 php,什么是依赖注入?
  5. comsol积分函数_如何在 COMSOL 软件中合并解
  6. mybatis 依赖于jdbc_使用基础mybatis代替原始jdbc
  7. SpringBoot中常见注解
  8. Intouch和S7300连接 DAServer分组 SMC驱动备份
  9. 天津农学院计算机考研专业,2021年天津农学院计算机与信息工程学院考研专业目录_研究生考试范围 - 学途吧...
  10. pandas Series 判断每个元素是否包含某个子串