
ATrace विंडोज पर बाइनरीज़ के निष्पादन को ट्रेस करने का एक उपकरण है।

EhTrace ("ATrace" उच्चारित) विंडोज़ के लिए एक उच्च-प्रदर्शन बाइनरी ट्रेसिंग और इंस्ट्रुमेंटेशन फ्रेमवर्क है। यह स्रोत कोड, बाइनरी संशोधन या पारंपरिक डिबगिंग की आवश्यकता के बिना विंडोज़ एक्जीक्यूटेबल्स का गहन रनटाइम विश्लेषण सक्षम करता है।
EhTrace विंडोज़ वेक्टर्ड एक्सेप्शन हैंडलिंग (VEH) और ब्लॉक-स्टेपिंग तकनीकों का लाभ उठाकर न्यूनतम ओवरहेड के साथ व्यापक निष्पादन ट्रेसिंग प्रदान करता है। पारंपरिक डिबगिंग या इंस्ट्रुमेंटेशन टूल के विपरीत, EhTrace पूरी तरह से इन-प्रोसेस संचालित होता है और लक्ष्य बाइनरी में किसी पैच की आवश्यकता नहीं होती है।
flowchart TB
subgraph Target["🎯 लक्ष्य प्रक्रिया"]
direction TB
APP[एप्लिकेशन कोड]
VEH[वेक्टर्ड एक्सेप्शन हैंडलर]
style APP fill:#e1f5ff,stroke:#01579b,stroke-width:3px,color:#000
style VEH fill:#fff3e0,stroke:#e65100,stroke-width:3px,color:#000
end
subgraph EhTrace["⚡ EhTrace इंजन"]
direction TB
BLOCK[ब्लॉक स्टेपर]
DISASM[कैप्स्टोन डिसअसेंबलर]
FIGHTERS[BlockFighters]
CTX[संदर्भ प्रबंधक]
style BLOCK fill:#f3e5f5,stroke:#4a148c,stroke-width:3px,color:#000
style DISASM fill:#e8f5e9,stroke:#1b5e20,stroke-width:3px,color:#000
style FIGHTERS fill:#ffebee,stroke:#b71c1c,stroke-width:3px,color:#000
style CTX fill:#e0f2f1,stroke:#004d40,stroke-width:3px,color:#000
end
subgraph Output["📊 विश्लेषण आउटपुट"]
direction TB
SHMEM[साझा मेमोरी लॉग]
GRAPHS[दृश्य ग्राफ़]
REPORTS[कवरेज रिपोर्ट]
style SHMEM fill:#fce4ec,stroke:#880e4f,stroke-width:3px,color:#000
style GRAPHS fill:#f1f8e9,stroke:#33691e,stroke-width:3px,color:#000
style REPORTS fill:#fff8e1,stroke:#f57f17,stroke-width:3px,color:#000
end
APP -->|एक्सेप्शन| VEH
VEH -->|सिंगल स्टेप| BLOCK
BLOCK -->|निर्देश| DISASM
DISASM -->|विश्लेषण| FIGHTERS
FIGHTERS -->|स्थिति| CTX
CTX -->|घटनाएँ| SHMEM
SHMEM -->|डेटा| GRAPHS
SHMEM -->|डेटा| REPORTS
style Target fill:#e3f2fd,stroke:#0d47a1,stroke-width:4px
style EhTrace fill:#f3e5f5,stroke:#6a1b9a,stroke-width:4px
style Output fill:#e8f5e9,stroke:#2e7d32,stroke-width:4pxEhTrace एक परिष्कृत पाइपलाइन के माध्यम से संचालित होता है:
फ्रेमवर्क विशेष संदर्भ संरचनाओं का उपयोग करके प्रति-थ्रेड निष्पादन स्थिति बनाए रखता है और अनुकूलन योग्य इंस्ट्रुमेंटेशन के लिए हुक प्रदान करता है।
graph LR
subgraph Traditional["🐌 पारंपरिक डिबगर"]
T1[सिंगल स्टेप]
T2[संदर्भ स्विच]
T3[कर्नेल मोड]
T4[~1M घटनाएँ/सेकंड]
style T1 fill:#ffcdd2,stroke:#c62828,stroke-width:2px,color:#000
style T2 fill:#ffcdd2,stroke:#c62828,stroke-width:2px,color:#000
style T3 fill:#ffcdd2,stroke:#c62828,stroke-width:2px,color:#000
style T4 fill:#ef5350,stroke:#b71c1c,stroke-width:3px,color:#fff
end
subgraph EhTrace["⚡ EhTrace"]
E1[ब्लॉक स्टेप]
E2[इन-प्रोसेस]
E3[यूज़र मोड]
E4[~43M घटनाएँ/सेकंड]
style E1 fill:#c8e6c9,stroke:#2e7d32,stroke-width:2px,color:#000
style E2 fill:#c8e6c9,stroke:#2e7d32,stroke-width:2px,color:#000
style E3 fill:#c8e6c9,stroke:#2e7d32,stroke-width:2px,color:#000
style E4 fill:#66bb6a,stroke:#1b5e20,stroke-width:3px,color:#fff
end
T1 --> T2 --> T3 --> T4
E1 --> E2 --> E3 --> E4
style Traditional fill:#ffebee,stroke:#d32f2f,stroke-width:3px
style EhTrace fill:#e8f5e9,stroke:#388e3c,stroke-width:3pxEhTrace कई अनुकूलनों के माध्यम से उच्च प्रदर्शन प्राप्त करता है:
📊 बेंचमार्क: 428,833,152 घटनाएँ (प्रत्येक 32 बाइट) 10 सेकंड में कैप्चर = ~43M घटनाएँ/सेकंड
CSW16 डेमो बिना प्रतीकों के notepad.exe ट्रेसिंग:

कैप्स्टोन डिसअसेंबली के साथ बेसिक ब्लॉक ग्राफ़:

कोड कवरेज विज़ुअलाइज़ेशन:

graph TD
subgraph Core["🎯 मुख्य घटक"]
EH[EhTrace.dll<br/>मुख्य इंस्ट्रुमेंटेशन]
AC[Acleanout<br/>लॉग डम्पर]
AG[Agasm<br/>ग्राफ़ जनरेटर]
style EH fill:#e1bee7,stroke:#6a1b9a,stroke-width:3px,color:#000
style AC fill:#c5cae9,stroke:#3949ab,stroke-width:3px,color:#000
style AG fill:#b2dfdb,stroke:#00695c,stroke-width:3px,color:#000
end
subgraph Tools["🔧 सहायक उपकरण"]
AL[Aload<br/>DLL इंजेक्टर]
AP[Aprep<br/>परीक्षण EXE]
AS[Astrace<br/>स्टैक ट्रेसर]
style AL fill:#ffe0b2,stroke:#e65100,stroke-width:3px,color:#000
style AP fill:#f8bbd0,stroke:#c2185b,stroke-width:3px,color:#000
style AS fill:#d1c4e9,stroke:#512da8,stroke-width:3px,color:#000
end
subgraph Fuzzing["🐛 फज़िंग एकीकरण"]
AWA[AWinAFL<br/>AFL इंस्ट्रुमेंटेशन]
style AWA fill:#ffccbc,stroke:#d84315,stroke-width:3px,color:#000
end
subgraph Viz["📊 विज़ुअलाइज़ेशन"]
WPF[WPFx<br/>ग्राफ़ व्यूअर]
DIA[Dia2Sharp<br/>प्रतीक समाधानकर्ता]
ASF[AStackFolding<br/>फ्लेम ग्राफ़]
style WPF fill:#c8e6c9,stroke:#2e7d32,stroke-width:3px,color:#000
style DIA fill:#fff9c4,stroke:#f9a825,stroke-width:3px,color:#000
style ASF fill:#ffecb3,stroke:#ff8f00,stroke-width:3px,color:#000
end
EH -->|लॉग| AC
AC -->|डेटा| AG
AG -->|ग्राफ़| WPF
AL -->|इंजेक्ट| EH
DIA -->|प्रतीक| AG
ASF -->|प्रोसेस| AC
AWA -->|वैरिएंट| EH
style Core fill:#f3e5f5,stroke:#7b1fa2,stroke-width:4px
style Tools fill:#fff3e0,stroke:#ef6c00,stroke-width:4px
style Fuzzing fill:#fbe9e7,stroke:#bf360c,stroke-width:4px
style Viz fill:#e8f5e9,stroke:#388e3c,stroke-width:4pxEhTrace इकोसिस्टम कई एकीकृत परियोजनाओं से मिलकर बना है:
EhTrace.sln खोलेंविस्तृत निर्माण निर्देशों के लिए, BUILDING.md देखें
# EhTrace बनाएँ
msbuild EhTrace.sln /p:Configuration=Release /p:Platform=x64
# लक्ष्य में इंजेक्ट करें
Aload.exe target.exe EhTrace.dll
# ट्रेस डेटा एकत्र करें
Acleanout.exe > trace.log
# Agasm के साथ विश्लेषण करें
Agasm.exe trace.log output.graph
व्यापक उपयोग दस्तावेज़ीकरण के लिए, USAGE.md देखें
EhTrace BlockFighters फ्रेमवर्क के माध्यम से रनटाइम कॉन्फ़िगरेशन का समर्थन करता है। अपने निर्माण में फाइटर कॉन्फ़िगरेशन को संशोधित करके ट्रेसिंग व्यवहार कॉन्फ़िगर करें।
उपलब्ध फाइटर्स:
EhTrace/
├── EhTrace/ # मुख्य इंस्ट्रुमेंटेशन DLL
├── prep/ # सहायक उपकरण और उपयोगिताएँ
├── vis/ # विज़ुअलाइज़ेशन घटक
├── support/ # निर्भरताएँ और संसाधन
├── doc/ # दस्तावेज़ीकरण
└── afl-fuzz/ # AFL फज़िंग एकीकरण
EhTrace.cpp: मुख्य VEH हैंडलर और मुख्य तर्कBlockFighters.cpp: फाइटर फ्रेमवर्क कार्यान्वयनConfig.cpp: कॉन्फ़िगरेशन और प्रतीक प्रबंधनGlobLog.cpp: साझा मेमोरी लॉगिंगKeyEscrow.cpp: क्रिप्टोग्राफ़िक कुंजी अवरोधनRoP-Defender.cpp: ROP पहचान तर्कयह परियोजना GNU Affero General Public License v3.0 के अंतर्गत लाइसेंस प्राप्त है - विवरण के लिए LICENSE फ़ाइल देखें।
कॉपीराइट (C) 2014-2016 शेन मैकाले
योगदान का स्वागत है! कृपया सुनिश्चित करें कि आपका कोड मौजूदा शैली का पालन करता है और उचित परीक्षण शामिल करता है।
शेन मैकाले ([email protected])
अधिक तकनीकी विवरणों के लिए, देखें: