如何使用TinyTracer跟踪API调用

admin 2023年12月4日22:33:53评论5 views字数 2476阅读8分15秒阅读模式
如何使用TinyTracer跟踪API调用


如何使用TinyTracer跟踪API调用


 关于TinyTracer 


TinyTracer是一款功能强大的API调用跟踪工具,在该工具的帮助下,广大研究人员能够轻松实现API的调用跟踪。


 功能介绍 


1、支持跟踪API调用,其中包括参数和选择的目标函数;

2、选择的指令,包括RDTSCCPUIDINT

3、内联系统调用,包括参数和选择的syscall;

4、支持在被跟踪模块的各个部分之间切换(可以帮助找到封装模块的OEP);

5、支持基于RDTSC绕过反跟踪机制;


 工具要求 


Intel PIN

Visual Studio(Windows)

g++、make(Linux)

 工具下载 


广大研究人员可以使用下列命令将该项目源码克隆至本地:

git clone https://github.com/hasherezade/tiny_tracer.git

(向右滑动,查看更多


 工具构建 


Windows


在Windows平台上,我们需要使用Visual Studio( >= 2012)来编译和构建工具代码,当前版本的TinyTracer已在Intel Pin 3.28上进行过测试。


接下来,将克隆下来的代码拷贝到Pin根目录的sourcetools路径下,然后在Visual Studio中导入项目,并进行代码构建即可。


Linux


在Linux平台下,我们可以直接运行tiny_runner.sh脚本来完成工具的构建:

ln -s $HOME/pin/source/tools/tiny_tracer/install32_64/tiny_runner.sh ~/bin/tiny_runner.sh

(向右滑动,查看更多

ln -s $HOME/pin/source/tools/tiny_tracer/install32_64/ $HOME/Desktop/install32_64

(向右滑动,查看更多


 注意事项 


1、为了保证工具能够正常运行,内核调试功能必须被禁用;

2、在项目的install32_64目录中,提供了用于检测内核调试功能是否已禁用的脚本,该脚本可能会被Windows Defender检测为恶意软件;

3、请在Windows 8+环境使用该工具;


 工具使用 


下面给出的是一个跟踪调用的演示样例:

~/Desktop/pin_tests$ tiny_runner.sh ./demoLinux runner for Tiny Tracer
Usage: <target_app> [target_module*]
*-optional; default: target app's main module
Traced App: ./demo
Traced Module Name: demo
The app is 64 bit.
Watch 5 functions
Watch 0 syscalls
===============================================
This application is instrumented by TinyTracer v.2.2
Tracing module: demo
See file ./demo.tag for analysis results
===============================================
Hello World!

(向右滑动,查看更多


以.tag格式生成一份跟踪报告,之后可将其加载到其他分析工具中进行进一步分析:

RVA;traced event

生成结果如下:

345c2;section: .text
58069;called: C:WindowsSysWOW64kernel32.dll.IsProcessorFeaturePresent
3976d;called: C:WindowsSysWOW64kernel32.dll.LoadLibraryExW
3983c;called: C:WindowsSysWOW64kernel32.dll.GetProcAddress
3999d;called: C:WindowsSysWOW64KernelBase.dll.InitializeCriticalSectionEx
398ac;called: C:WindowsSysWOW64KernelBase.dll.FlsAlloc
3995d;called: C:WindowsSysWOW64KernelBase.dll.FlsSetValue
49275;called: C:WindowsSysWOW64kernel32.dll.LoadLibraryExW
4934b;called: C:WindowsSysWOW64kernel32.dll.GetProcAddress
...

(向右滑动,查看更多)


我们也可以通过修改install32_64目录中的TinyTracer.ini和parameters.txt来启用或禁用某些功能。


 项目地址 


TinyTracerhttps://github.com/hasherezade/tiny_tracer


FreeBuf粉丝交流群招新啦!
在这里,拓宽网安边界
甲方安全建设干货;
乙方最新技术理念;
全球最新的网络安全资讯;
群内不定期开启各种抽奖活动;
FreeBuf盲盒、大象公仔......
扫码添加小蜜蜂微信回复“加群”,申请加入群聊

如何使用TinyTracer跟踪API调用
如何使用TinyTracer跟踪API调用
如何使用TinyTracer跟踪API调用

https://c9x.me/x86/html/file_module_x86_id_278.html

https://c9x.me/x86/html/file_module_x86_id_45.html

https://c9x.me/x86/html/file_module_x86_id_142.html

https://visualstudio.microsoft.com/downloads/

https://software.intel.com/en-us/articles/pin-a-binary-instrumentation-tool-downloads

如何使用TinyTracer跟踪API调用
如何使用TinyTracer跟踪API调用如何使用TinyTracer跟踪API调用
如何使用TinyTracer跟踪API调用
如何使用TinyTracer跟踪API调用

原文始发于微信公众号(FreeBuf):如何使用TinyTracer跟踪API调用

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年12月4日22:33:53
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   如何使用TinyTracer跟踪API调用http://cn-sec.com/archives/2267940.html

发表评论

匿名网友 填写信息