freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

如何使用TinyTracer跟踪API调用
Alpha_h4ck 2023-11-01 00:47:06 152560

关于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根目录的\source\tools路径下,然后在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 ./demo
Linux 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:\Windows\SysWOW64\kernel32.dll.IsProcessorFeaturePresent

3976d;called: C:\Windows\SysWOW64\kernel32.dll.LoadLibraryExW

3983c;called: C:\Windows\SysWOW64\kernel32.dll.GetProcAddress

3999d;called: C:\Windows\SysWOW64\KernelBase.dll.InitializeCriticalSectionEx

398ac;called: C:\Windows\SysWOW64\KernelBase.dll.FlsAlloc

3995d;called: C:\Windows\SysWOW64\KernelBase.dll.FlsSetValue

49275;called: C:\Windows\SysWOW64\kernel32.dll.LoadLibraryExW

4934b;called: C:\Windows\SysWOW64\kernel32.dll.GetProcAddress

...

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

项目地址

TinyTracer:【GitHub传送门

参考资料

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

# api跟踪 # API # API调用 # 系统调用 # API安全
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 Alpha_h4ck 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
Alpha_h4ck LV.10
好好学习,天天向上
  • 2359 文章数
  • 1021 关注者
Tetragon:一款基于eBPF的运行时环境安全监控工具
2025-01-21
DroneXtract:一款针对无人机的网络安全数字取证工具
2025-01-21
CNAPPgoat:一款针对云环境的安全实践靶场
2025-01-21
文章目录