180205 逆向-PinTools的Trace级别理解和练习

1625-5 王子昂 总结《2018年2月5日》 【连续第493天总结】
A. PinTools的Trace练习
B.
又查询了一下,大概明白Trace是路径,即从每个入口函数结束/call子函数算作一个Trace

再次查了一下API,虽然确实跟Img->Sec->Rtn->Ins不属于同一个路径,但是有Trace_Rtn这个API可以取得当前Trace所在的Rtn,进而通过Rtn_Name或者导到Img通过IMG_IsMainExecutable来判断是否位于用户模块中

因此这样就也能完成通过Bbl基本块来指令计数的程序了

可惜通过Rtn_Name来判断是否为.text的方法却会使得程序记录所有模块的指令,暂不清楚为什么判断失误,之后再尝试吧

值得一提的是,通过脚本进行测验,发现:
- 多线程(5)、Trace级别:145秒
- 多线程(5)、Ins级别:141秒
- 单线程、Trace级别:201秒
- 单线程、Ins级别:192秒
(单个字符爆破到成功为止需要的时间,共11+26+2次运行,平均单次运行需要3-5秒,似乎跟CPU占有率也有关,基本可以确认瓶颈确实在CPU上)
Trace级别超过Ins级别的原因应该是Trace的程序还没有修复记录unnamedImageEntryPoint的Rtn的BUG,导致相同指令计数次数过多,影响效率

可以看出来多线程还是要比单线程快1/3时间的,虽然其实效率仍然让人不太满意

C. 明日计划
Frida/其他框架的Hook

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值