使用pintools采集函数信息

pintool是intel推出的一个动态插桩工具。

pin tool常用的有RTN接口(routine,我的理解就是程序上下文,比如汇编子程序,c/cpp函数之类),INS接口(指令级接口),Image(二进制文件镜像,lib或者exe)

我采用RTN模式捕获函数信息。

PIN初始化流程如下:

在rtnfunc中插入在上下调用前和调用后的回调函数:

btw:**IARG_FUNCARG_CALLSITE_VALUE, **这段比较诡异,同样的代码还存在于回调函数中,

这样的代码实际上是不可执行的:),使用“**”,“&&”以及"$$"符号包括的代码被我用于作为生成代码的模板。

这是因为实际定义的函数参数个数是不一致的,这导致回调函数的参数会有不同,为了避免重复的编码这块可以使用codegen生成。

脚本如下:

执行nm指令获取符号表,并解析出函数定义。分析函数参数个数:

之后依据函数参数个数生成pin tools代码:

最后生成的代码如下:

嗯,看起来是对的,不过缩进比较丑,如果是python就悲剧了:)

执行下,结果如下:

时间: 2024-07-30 03:15:00

使用pintools采集函数信息的相关文章

QT creator中使用opencv采集摄像头信息

之前在QT creator上成功编译了opencv,由于课题需要,需要采集摄像头的信息.故搜集了网上的一些资料,依葫芦画瓢的照着做了一下,终于简单的成功采集了信息. 打开QTcreator,新建一个widget工程. 在界面上放两个label 分别用来显示摄像头采集到的数据和照的照片. 在widget.h中的源代码如下: #ifndef WIDGET_H #define WIDGET_H #include <QWidget> #include <QImage> #include &

curl数据采集系列之单页面采集函数get_html

在做数据采集时经常要使用到curl+正则的方式采集需要的数据 根据自己的工作经验 把自己写的一些常用自定义函数 拿到博客园来分享 如果有写得不恰当的地方 请多多指教 这是一个系列 没办法在一两天写完 所以一篇一篇的发布 大致大纲: 1.curl数据采集系列之单页面采集函数get_html 2.curl数据采集系列之多页面并行采集函数get_htmls 3.curl数据采集系列之正则处理函数get _matches 4.curl数据采集系列之代码分离 5.curl数据采集系列之并行逻辑控制函数we

灌入大量数据后手工采集统计信息的重要性

1. 创建测试表TBL_STAT,及索引,但不插入记录 SQL> create table TBL_STAT as select * from dba_objects where 1<>1; Table created. SQL> create index idx_tbl_stat on tbl_stat (object_id); Index created. SQL> select count(*) from tbl_stat; COUNT(*) ---------- 0

采集58信息的一些总结

一个朋友问我能不能把他做个小程序.抓取58上面包含"维修"的数据,比如公司名称,电话号码等等 打开58,收索"维修" 单击 房屋维修,进入一个列表页面, 随便单击一个,进入详细页面 需要请求58服务器3次.然后匹配html元素获取自己需要的信息,数据匹配自然少不了正则表达式,用过的都知道, 对于我来说,写正则表达式是非常头疼的事情,所以可以选择第三方库:比如HtmlAgilityPack,Jumony等等,我这里选择的是Jumony 博客园有对Jumony入门的文章

Python函数信息

Python函数func的信息可以通过func.func_*和func.func_code来获取 一.先看看它们的应用吧: 1.获取原函数名称: 1 >>> def yes():pass 2 3 >>> a=yes 4 >>> a.func_name 5 'yes' 6 >>> 2.获取函数的flags[后面有用,先说这个] [python docs]:The following flag bits are defined for c

4、Python将采集的信息保存

一.引言 前面小编已和各位童鞋分享了如何爬去历史天气网站的城市信息,下面将和大家分享如何将采集到的信息保存下来. 1.将采集到的信息保存在csv文件中 2.将采集到的信息保存在sql server 2014 中 二.将采集到的信息保存在csv文件中 在工程下新建一个area文件夹,由于代码简单,小编就直接贴出来了: 1 # coding = utf-8 2 3 import urllib 4 import urllib.request 5 from bs4 import BeautifulSou

rolling_curl curl批量采集函数留份

摘自:http://www.searchtb.com/2012/06/rolling-curl-best-practices.html 1 function rolling_curl($urls, $delay=0) { 2 $queue = curl_multi_init(); 3 $map = array(); 4 5 foreach ($urls as $url) { 6 $ch = curl_init(); 7 8 curl_setopt($ch, CURLOPT_URL, $url);

未来即使你不说话AI也能采集脑部信息看穿你

未来大家的生活势必会越来越智能化,无人驾驶汽车.懂你的机器人等等,都是AI带给人类的.想过吗?有一天AI 能读懂你脑子里在想的事.听起来是不是有点夸张?这种技术在未来真的有可能存在吗? AI可以直接从人的大脑中采集图像.在机器学习以前往往被用于研究脑部扫描(MRI或磁共振成像),并可以在涉及简单的二进制图像,如黑白字母或简单的地理形状时,生成一个人所思所想的可视化图像.如今,给定某人在查看图片的fMRI扫描,算法可以从扫描中重建原始图片.虽然研究者能够根据一个人正在观察的场景来复制一个图像.这些

PHP常用采集函数总结

获取所有链接内容和地址 function getAllURL($code){ preg_match_all('/<as+href=["|']?([^>"']+)["|']?s*[^>]*>([^>]+)</a>/i',$code,$arr); return array('name'=>$arr[2],'url'=>$arr[1]); }   获取所有的图片地址 function getImgSrc($code){ $reg