PIN插装~linux下无法识别程序内部定义例程解决方法
来源:互联网 发布:其怒乎的其是什么意思 编辑:程序博客网 时间:2024/06/04 18:36
经过几天的coding和阅读PIN相关API,发现,PIN的开发人员也意识到,在linux下由于没有符号表,PIN很难识别一些程序内部定义的例程,这些例程的名字通常为:sub_例程起始地址。因此,需要自己去解决这些未被识别的例程
方法一:
PIN提供了一个创建例程的API:RTN_CreateAt(ADDRINT addr,string name)。在PIN识别程序内部自定义例程失败的时候,用户可自己通过上述API来创建此例程,并告诉PIN该例程的起始地址 addr,以及例程的名字 name(”sub_addr“形式的字符串)。
但是如何判断PIN识别内部定义例程失败的情况呢?
通过IDA对许多程序.text段的例程进行了分析,一般来说,例程按地址增长顺序排列,并且,两个例程之间会有一个字节不详的对齐处理,但是不超过16字节。而纵观许多程序的例程,起始地址99%都是16字节对齐的(当然,也有个别几个例程个性张扬,起始地址不是16字节对齐)。方法二(最优):
自主遍历,不借助PIN的识别RTN的API。通过每一代码段的起始地址,去内存取15字节数据并判断有效指令的size。并计算下次读内存的地址addr+=size.如此不断读内存代码段指令数据一直到代码段的尾部。
0 0
- PIN插装~linux下无法识别程序内部定义例程解决方法
- Windows下使用二进制插装工具Pin
- Pin~动态插装原理
- pin 插装学习之一
- window2003 iis下 无法识别 MP4 解决方法
- 模板类中定义std::list::iterator iter在Linux下不识别的解决方法。
- 模板类中定义 std::list::iterator iter在Linux下不识别的解决方法。
- linux下无法识别u盘
- 如何解决Linux下USB无法识别
- linux下无法识别u盘
- Linux下动态监测设备拔插程序
- Ubuntu下adb无法识别android设备的解决方法
- ubuntu14.04下无法识别无线网卡驱动的解决方法
- trade文件夹下,新建的文件,git无法识别----解决方法
- display:inline-block在ie6,7下无法识别解决方法
- pin pintool功能介绍补充及在linux下调试程序
- Qt在Linux下无法debug解决方法
- linux下无法打开桌面的解决方法
- CodeForces - 482D Random Function and Tree(树形DP)
- ios 如何将图片保存至自定义分组
- zeroclipboard 粘贴板的应用示例, 兼容 Chrome、IE等多浏览器
- poj-2484
- Ubuntu 下配置OTL 链接MySQL
- PIN插装~linux下无法识别程序内部定义例程解决方法
- 《剑指Offer》之面试题旋转数组的最小数字
- 简单猜数游戏
- javascript运算符
- Java中的两个类:Desktop和SystemTray
- jira 6.0.3 破解 && 汉化(反编译实例讲解)
- iframe父窗体和子窗体的相互调用
- poj-2348
- python算法之二分查找