execution trace viewer
1.0.0
執行跟踪查看器是用於查看,編輯和分析執行跟踪的應用程序。它最初是用於逆向工程混淆的代碼的,但可用於分析任何類型的執行跟踪。

git clone https://github.com/teemu-l/execution-trace-viewer
pip install pyqt5 yapsy qdarkstyle capstone
python tv.py支持以下文件格式:
.tvt-默認文件格式。從X64DBG跟踪格式開發。 3與X64DBG格式的差異:添加了評論,災難和書籤。
.trace32 / .trace64 -x64dbg文件格式。僅閱讀支持。加載X64DBG跟踪很慢,因為需要拆卸代碼。
JSON-可以從JSON文本文件中保存並加載痕跡。
TRACE文件夾包含一個示例跟踪。它是混淆的代碼的〜11K線(通過VMProtect3)。所有處理程序均已分解並添加到書籤表中。
執行跟踪查看器可以通過Python3插件擴展。插件是從插件菜單或從跟踪表上的右鍵單擊菜單啟動的。查看示例插件和core/api.py以獲取更多信息。
更多插件:
示例過濾器:
| 篩選 | 描述 |
|---|---|
| disasm = push | pop | 障礙包含單詞推或彈出(推送,pushfd,pop等) |
| reg_eax = 0x1337 | 顯示eax為0x1337的行 |
| reg_any = 0x1337 | 任何reg值是0x1337 |
| mem_value = 0x1337 | 讀取或寫入值0x1337到內存 |
| mem_read_value = 0x1337 | 從內存讀取值0x1337 |
| mem_addr = 0x4f20 | 從或寫入內存地址0x4F20 |
| mem_read_addr = 0x40400 | 從內存地址讀取0x40400 |
| mem_write_addr = 0x40400 | 寫入內存地址0x40400 |
| opcodes = C704 | 通過Opcodes過濾 |
| 行= 20-50 | 僅顯示20-50行 |
| REGEX = 0x40?00 | 案例敏感的正則搜索整行(包括評論) |
| REGEX =閱讀 | 顯示讀取內存 |
| iregex =垃圾|解密 | 逆時機,將帶有“垃圾”或“解密”的行被過濾掉 |
| 評論=解密 | 通過評論過濾 |
可以將多個過濾器連接在一起:
disasm=xor/reg_any=0x1337 ; show all xor instructions where atleast one register value is 0x1337
對於更複雜的過濾,您可以創建一個過濾器插件,並使用api.set_filtered_trace()保存結果列表。然後通過調用API.SHOW_FILTERED_TRACE()來顯示跟踪。
查找在跟踪中包含指定關鍵字/值的下一行或上一行。
查找以前的內存寫:
from core . filter_and_find import TraceField
current_row = 500
next_row = find (
trace = trace_data . trace ,
field = TraceField . MEM ,
keyword = 'WRITE' ,
start_row = current_row ,
direction = - 1
)跟踪字段:災難,regs,mem,mem_addr,mem_value,評論,任何
障礙字段支持多個關鍵字:“ XOR/SHL/SHR”。 MEM字段檢查MEM訪問中的所有三個字段(訪問,ADDR和值)。整數必須在十六進制中給出。
通過編輯prefs.py可以禁用黑暗主題:
USE_DARK_THEME = False 麻省理工學院
由Teemu Laurila開發。
接觸:
print ( '' . join ( map ( chr ,[ k ^ 86 for k in [ 34 , 51 , 51 , 59 , 35 , 58 , 55 , 22 , 38 , 36 , 57 , 34 , 57 , 56 , 59 , 55 , 63 , 58 , 120 , 53 , 57 , 59 ]])))