简单的活着

906meeting

Posted on By Mista Cai

groupMeeting

总结

  • winIPT获取16进制数据包,fastcode解析成对应PT包。
mode.tsx
mode.exec lma=1 cs.d=0
fup	3: 776f6009
tsc	17652298932079
tma	ctc=57622 fc=102
mtc	35
tip	3: 776f1742
tip	1: 776f1936
tnt8 NNN
tip.pgd	0: 0
mtc	36
mtc	37
mtc	38
mtc	39
mtc	40
tip.pge	1: 1cbc
tip	1: 199a
tnt8 NN
mode.exec lma=0 cs.d=1
...
  • 结合IDA

Windows IntelPT

目标

追踪记录用户态下,shamoon执行的控制流信息。

驱动加载后,使用winIPT追踪。

WinIPT

  • libipt这是该库的Win32 API版本,它允许访问IPT驱动程序/服务IOCTL,它使用Windows公开的新工具启用每个内核和每个进程的跟踪。 该库使用Win32语义和符号,其功能是重新实现在Dbghelp.dllDbgcore.dllTTDRecordCPU.dllFaultrep.dllNtdll.dll中找到的一些函数。
  • libiptnt这是与上面相同的库的本机NT API版本,它仅使用Ntdll.dll函数,使其适用于Native/non-Win32应用程序。 该库使用NT样式的语义和通知,其功能几乎与上面列出的库公开的功能相同。
  • ipttool充当上面引用的libipt静态库的示例,并提供了一个简单的CLI实用程序,用于启动,停止和查询给定进程的跟踪。 它目前不支持内核跟踪,也不进行解码 - 请使用Intel PT库。

ipttool --start pid size flags

ipttool --trace pid output.flie

PsList

pslist -d -e notepad -nobanner

  • -d 显示线程;
  • -e 准确匹配进程名;
  • -nobanner 从请求中删除标题页面(即PsList版本信息)。

fastcode

解析成

tsc ...
tma ctc=62315 fc=80
mtc ...
mtc ...

pxted