本项目是对 Tenet Trace Explorer 的修改版本,进行了一些改进和适配。不想回复或者点赞的可直接进入项目阅读README,可以看到相同的内容项目地址:d2fK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6B7K9i4q4A6N6e0t1H3x3U0u0Q4x3V1k6f1k6h3&6W2N6q4)9J5k6p5W2p5b7e0W2Q4x3X3f1H3
使用单步执行可以有效对抗这些混淆。
分析算法时可便捷查看内存变化信息。
支持向上单步、向下单步以及时间回溯。
例如,我们可以明确知道 BLR X8 跳转到了 B.CS,并且知道 B.CS 进行了向左的分支跳转。
BLR X8
B.CS
有两个左右的小按钮,可以找涉及到这个寄存器的上一条汇编的位置
安装插件
加载 Trace 文件
开始追踪
请参考原版作者的博客文章:Tenet: A Trace Explorer for Reverse Engineers
Trace 文件的格式规范可以参考原版仓库中的 tracers 目录:a51K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6Y4j5h3q4K6k6h3c8W2L8r3g2F1i4K6u0r3N6r3g2F1k6i4c8Q4x3V1k6@1M7X3g2W2i4K6u0r3L8h3q4K6N6r3g2J5i4K6u0r3N6s2u0S2j5$3g2J5M7H3`.`.
tracers
注意: 本项目使用的 Trace 格式针对 ASLR 进行了定制修改。请参考 demo 文件夹中 log.txt 的第一行输出格式。其他部分与原版作者的格式保持一致。
demo
log.txt
import
idaapi, os;
print
(os.path.join(idaapi.get_user_idadir(),
"plugins"
))
for
(
int
i=0; i<10; i++){
printf
"%d\n"
, i);
// 假设当前选中此行
}
tenet
tenet_plugin.py
plugins
libRequestEncoder.so
File -> Load File -> Tenet Trace File
Position
1
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
值得怀疑 支持 x86指令吗