[WindowsIntelPT](https://github.com/intelpt/WindowsIntelPT)
[WinIPT](https://github.com/ionescu007/winipt)
[Intel® Debug Extensions for WinDbg* for Intel® Processor Trace](https://software.intel.com/en-us/intel-system-studio-2019-windbg-pt-user-guide-windows-introducing-the-intel-debug-extensions-for-windbg-for-intel-processor-trace)
000000000000001c psb
000000000000002c pad
000000000000002d pad
000000000000002e pad
...
00000000000003db tip.pge 3: 00007ffbb7d63470
00000000000003e2 pad
00000000000003e3 pad
seg000:00007FFBB7D63470 mov rcx, [rsp+20h]
seg000:00007FFBB7D63475 mov edx, [rsp+28h]
seg000:00007FFBB7D63479 mov r8d, [rsp+2Ch]
seg000:00007FFBB7D6347E mov rax, gs:60h
seg000:00007FFBB7D63487 mov r9, [rax+58h]
seg000:00007FFBB7D6348B mov rax, [r9+r8*8]
seg000:00007FFBB7D6348F call sub_7FFBB7D63310
seg000:00007FFBB7D63310 sub rsp, 48h
seg000:00007FFBB7D63314 mov [rsp+48h+var_28], rcx
seg000:00007FFBB7D63319 mov [rsp+48h+var_20], rdx
seg000:00007FFBB7D6331E mov [rsp+48h+var_18], r8
seg000:00007FFBB7D63323 mov [rsp+48h+var_10], r9
seg000:00007FFBB7D63328 mov rcx, rax
seg000:00007FFBB7D6332B mov rax, cs:7FFBB7E381E0h
seg000:00007FFBB7D63332 call rax
...
00000000000003ee tip 2: ????????b7d4fb70
00000000000003f3 pad
...
seg000:00007FFBB7D4FB70 mov rdx, cs:7FFBB7E38380h
seg000:00007FFBB7D4FB77 mov rax, rcx
seg000:00007FFBB7D4FB7A shr rax, 9
seg000:00007FFBB7D4FB7E mov rdx, [rdx+rax*8]
seg000:00007FFBB7D4FB82 mov rax, rcx
seg000:00007FFBB7D4FB85 shr rax, 3
seg000:00007FFBB7D4FB89 test cl, 0Fh
seg000:00007FFBB7D4FB8C jnz short loc_7FFBB7D4FB95
seg000:00007FFBB7D4FB8E bt rdx, rax
seg000:00007FFBB7D4FB92 jnb short loc_7FFBB7D4FBA0
seg000:00007FFBB7D4FB94 retn
00000000000003fe tnt.8 ..
seg000:00007FFBB7D4FB94 retn
00000000000003ff tip 2: ????????b7d63334
seg000:00007FFBB7D63334 mov rax, rcx
seg000:00007FFBB7D63337 mov rcx, [rsp+48h+var_28]
seg000:00007FFBB7D6333C mov rdx, [rsp+48h+var_20]
seg000:00007FFBB7D63341 mov r8, [rsp+48h+var_18]
seg000:00007FFBB7D63346 mov r9, [rsp+48h+var_10]
seg000:00007FFBB7D6334B add rsp, 48h
/-----------------------------------------
|=== Windows 10 RS5 1809 IPT Test Tool ===|
|=== Copyright (c) 2018 Alex Ionescu ===|
|=== http://github.com/ionescu007 ===|
|=== http://www.windows-internals.com ===|
-----------------------------------------/
[+] Found active trace with 1476395324 bytes so far
[+] Trace contains 11 thread headers
[+] Trace Entry 0 for TID 2520
Trace Size: 134217728 [Ring Buffer Offset: 4715184]
Timing Mode: MTC Packets [MTC Frequency: 3, ClockTsc Ratio: 83]
[+] Trace Entry 1 for TID 1CA8
Trace Size: 134217728 [Ring Buffer Offset: 95936]
Timing Mode: MTC Packets [MTC Frequency: 3, ClockTsc Ratio: 83]
[+] Trace Entry 2 for TID 8AC
Trace Size: 134217728 [Ring Buffer Offset: 63152]
Timing Mode: MTC Packets [MTC Frequency: 3, ClockTsc Ratio: 83]
[+] Trace Entry 3 for TID 1A88
Trace Size: 134217728 [Ring Buffer Offset: 4560]
Timing Mode: MTC Packets [MTC Frequency: 3, ClockTsc Ratio: 83]
[+] Trace Entry 4 for TID 1964
Trace Size: 134217728 [Ring Buffer Offset: 45184]
Timing Mode: MTC Packets [MTC Frequency: 3, ClockTsc Ratio: 83]
[+] Trace Entry 5 for TID 22D0
Trace Size: 134217728 [Ring Buffer Offset: 6768]
Timing Mode: MTC Packets [MTC Frequency: 3, ClockTsc Ratio: 83]
[+] Trace Entry 6 for TID 73C
Trace Size: 134217728 [Ring Buffer Offset: 32480]
Timing Mode: MTC Packets [MTC Frequency: 3, ClockTsc Ratio: 83]
[+] Trace Entry 7 for TID 1684
Trace Size: 134217728 [Ring Buffer Offset: 285264]
Timing Mode: MTC Packets [MTC Frequency: 3, ClockTsc Ratio: 83]
[+] Trace Entry 8 for TID 3C4
Trace Size: 134217728 [Ring Buffer Offset: 99056]
Timing Mode: MTC Packets [MTC Frequency: 3, ClockTsc Ratio: 83]
[+] Trace Entry 9 for TID 610
Trace Size: 134217728 [Ring Buffer Offset: 4812464]
Timing Mode: MTC Packets [MTC Frequency: 3, ClockTsc Ratio: 83]
[+] Trace Entry 10 for TID 1CD8
Trace Size: 134217728 [Ring Buffer Offset: 7424]
Timing Mode: MTC Packets [MTC Frequency: 3, ClockTsc Ratio: 83]
[+] Trace for PID 2736 written to EQNEDT32.pt
python %IPTANALYZER%pyipttooldecode_blocks.py -p PTEQNEDT32.pt -d ProcessMemoryEQNEDT32.dmp -c block.cache
0:011> lmvm EQNEDT32
Browse full module list
start end module name
00000000`00400000 00000000`0048e000 EQNEDT32 (deferred)
...
python %IPTANALYZER%pyipttooldump_blocks.py -p PTEQNEDT32.pt -d ProcessMemoryEQNEDT32.dmp -C 0 -c blocks.cache -s 0x00400000 -e 0x0048e000
...
> 00000000004117d3 () (sync_offset=2d236c, offset=2d26f4)
EQNEDT32!EqnFrameWinProc+0x2cf3:
00000000`004117d3 0fbf45c8 movsx eax,word ptr [rbp-38h]
> 000000000041181e () (sync_offset=2d236c, offset=2d26f4)
EQNEDT32!EqnFrameWinProc+0x2d3e:
00000000`0041181e 0fbf45fc movsx eax,word ptr [rbp-4]
> 0000000000411869 () (sync_offset=2d236c, offset=2d26f4)
EQNEDT32!EqnFrameWinProc+0x2d89:
00000000`00411869 33c0 xor eax,eax
> 000000000042fad6 () (sync_offset=2d236c, offset=2d26fc)
EQNEDT32!MFEnumFunc+0x12d9:
00000000`0042fad6 c3 ret
python %IPTANALYZER%pyipttooldump_instructions.py -p ..PTEQNEDT32.pt -d ..ProcessMemoryEQNEDT32.dmp -S 0x2d236c -E 0x2d307c
...
Instruction: EQNEDT32!EqnFrameWinProc+0x2d8b:
e900000000 jmp EQNEDT32!EqnFrameWinProc+0x2d90 (00000000`00411870)
Instruction: EQNEDT32!EqnFrameWinProc+0x2d90:
5f pop rdi
Instruction: EQNEDT32!EqnFrameWinProc+0x2d91:
5e pop rsi
Instruction: EQNEDT32!EqnFrameWinProc+0x2d92:
5b pop rbx
Instruction: EQNEDT32!EqnFrameWinProc+0x2d93:
c9 leave
Instruction: EQNEDT32!EqnFrameWinProc+0x2d94:
c3 ret
Instruction: EQNEDT32!MFEnumFunc+0x12d9:
c3 ret
Instruction: 00000000`0019ee9c bac342baff mov edx,0FFBA42C3h
Instruction: 00000000`0019eea1 f7d2 not edx
Instruction: 00000000`0019eea3 8b0a mov ecx,dword ptr [rdx]
Instruction: 00000000`0019eea5 8b29 mov ebp,dword ptr [rcx]
Instruction: 00000000`0019eea7 bb3a7057f4 mov ebx,0F457703Ah
Instruction: 00000000`0019eeac 81eb8a0811f4 sub ebx,0F411088Ah
Instruction: 00000000`0019eeb2 8b1b mov ebx,dword ptr [rbx]
Instruction: 00000000`0019eeb4 55 push rbp
Instruction: 00000000`0019eeb5 ffd3 call rbx
...
Instruction: EQNEDT32!EqnFrameWinProc+0x2d94:
00000000`00411874 c3 ret
Instruction: EQNEDT32!MFEnumFunc+0x12d9:
00000000`0042fad6 c3 ret
Instruction: 00000000`0019ee9c bac342baff mov edx,0FFBA42C3h
Instruction: 00000000`0019eea1 f7d2 not edx
Instruction: 00000000`0019eea3 8b0a mov ecx,dword ptr [rdx]
Instruction: 00000000`0019eea5 8b29 mov ebp,dword ptr [rcx]
Instruction: 00000000`0019eeb7 0567946d03 add eax,36D9467h
Instruction: 00000000`0019eebc 2d7e936d03 sub eax,36D937Eh
Instruction: 00000000`0019eec1 ffe0 jmp rax
Instruction: 00000000`00618111 9c pushfq
Instruction: 00000000`00618112 56 push rsi
Instruction: 00000000`00618113 57 push rdi
Instruction: 00000000`00618114 eb07 jmp 00000000`0061811d
Instruction: 00000000`0061811d 9c pushfq
Instruction: 00000000`0061811e 57 push rdi
Instruction: 00000000`0061811f 57 push rdi
Instruction: 00000000`00618120 81ef40460000 sub edi,4640h
Instruction: 00000000`00618126 81ef574b0000 sub edi,4B57h
Instruction: 00000000`0061812c 8dbfbc610000 lea edi,[rdi+61BCh]
Instruction: 00000000`00618132 81c73b080000 add edi,83Bh
Instruction: 00000000`00618138 5f pop rdi
Instruction: 00000000`00618139 5f pop rdi
参考及来源:
https://darungrim.com/research/2020-05-07-UsingIntelPTForVulnerabilityTriagingWithIPTAnalyzer.html
本文始发于微信公众号(网络安全应急技术国家工程实验室):使用Intel PT与IPTAnalyzer进行漏洞利用
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论