intel pin学习

intel pin学习

pin 工具的功能

1. 替换原有程序函数
2. 探测程序任意指令,在自己设定的插入位置插入自己的代码并执行
3. 记录程序调用,包括syscall(检测改变参数)
4. 记录程序线程活动情况
5. 监测进程树
6. 模拟api调用(这里可以思维宽广点。。。)
Pin相当于一个JIT("just in time“)编译器。
Pin大体上有三种插装代码模式(指令级,rtn级,bbl级),
Pin的三种插入(代码)模式:
1.Instruction level (Ins )
即在每一条原始程序指令前,后插入自己的代码,即调用这个函数
这个级别执行可想而知,会执行的很慢,很耗时间。开销比较大,(虽然检测精度高)
(因为在每天指令上加入代码,即使自己的代码只包含一行(ps: nop),代码就至少膨胀5倍以上)

  1. Function level(RTN)

Pin通过符号表信息来找到这些需要插入的位置,要使用这种模式的代码插入,首先得调用pin内置的初始化符号表函数,即PIN_InitSymbols()

  1. Basic block level(BBL)
    即基本调用块级别,插入模式,只在trace时候可用。
    下面为pin的执行过程:
  2. 启动自己(pin.exe),以debugger的模式,附加要分析程序的进程
  3. 注入pinvm.dll到宿主程序中
  4. 注入自己的工具代码(即pintool.dll)
  5. 激活主程序进程

获取分析结果
有了这些log日志记录,所以很容易处理批量已知恶意代码。对于未知的文件,则可以制定提取一些特征规则,然后去匹配运行后的记录文件与内存dump文件特征,则能较快筛选出恶意与非恶意文件,还有可以更进一步给出样本分类。进行数据竞争预测。
对于特殊的样本则可以先用此工具运行,找到感兴趣的api或位置,根据前面的api返回地址跟踪过去,则会很容易进行逆向分析过程。对于加壳或者混淆过的恶意代码分析能够提供参考分析与帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值