2009-09-14 9 views
8

मैं यह समझने की कोशिश कर रहा हूं कि माइक्रोसॉफ्ट सिंबल स्थानीय कैश निर्देशिका के लिए हैशिंग एल्गोरिदम का उपयोग क्या किया जाता है।माइक्रोसॉफ्ट सिंबल सर्वर/स्थानीय कैश हैश एल्गोरिदम

उदाहरण के लिए, स्थानीय कैश निम्नलिखित

 
    L:\Symbols 
     \browseui.dll 
     \44FBC679fe000 
      browsue.dll 
     \browseui.pdb 
     \44F402F62 
      browseui.pdb 
     \explorer.exe 
     \3EBF1F14f7000 
      explorer.exe 
     \explorer.pdb 
     \3EBF1F141 
      explorer.pdb 
     \msvcr71.pdb 
     \60D915C6AB6A4F3586E9096E2F8856482 
      msvcr71.pdb 

की तरह कुछ वहाँ एक फ़ाइल और इसकी डिबग डेटाबेस के बीच पत्राचार किसी प्रकार का हो रहा है हो सकता है। इसके अलावा, मैं यह नहीं समझ सकता कि इन (संभवतः) हेक्साडेसिमल स्ट्रिंग फ़ोल्डर्स के नाम कैसे उत्पन्न किए जा रहे हैं।

उनमें से कुछ 9 अंक हैं, कुछ 13 अंक हैं, और अन्य 33 अंक हैं। यह एक वास्तविक, लाइव-फ़ाइल (जो किसी कारण से प्रतीक कैश में संग्रहीत है) की तरह दिखता है, इसमें 13-अंक हैश है जबकि इसके (लगभग समान) डीबग डेटाबेस को 9-अंकों का हैश प्राप्त होता है। कुछ डीबग डेटाबेस 13-अंक हैश प्राप्त करते हैं; यह पता नहीं लगा सकता कि इन्हें विशेष बनाता है, हालांकि उनके पास एक लाइव लाइव फ़ाइल नहीं है।

मैं हैश एल्गोरिथ्म के हर तरह है कि मैं किसी भी तरह से (उनमें से 39) और कोई भी मैच के बारे में पता के साथ फ़ाइलों को hashing की कोशिश की है (सीधे ऊपर, उलट, वैकल्पिक endian'd, आदि)

कोई विचार?

अद्यतन मुझे लगता है कि मुझे अंत में यह मिला। Symbol Storage Format से:

सिमस्टोर फ़ाइल सिस्टम को डेटाबेस के रूप में उपयोग करता है। यह निर्देशिकाओं का एक बड़ा पेड़ बनाता है, निर्देशिका नामों के साथ प्रतीक फ़ाइल समय टिकट, हस्ताक्षर, आयु, और अन्य डेटा के आधार पर।

संपादित डैंग, दुर्भाग्य से यह केवल कहा गया है कि निर्देशिका का नाम विभिन्न पहलुओं (नहीं काफी एक हैश मुझे लगता है) से ली गई है, लेकिन वास्तव में यह नहीं कह कैसे करता है। खोज जारी है ... :-(

उत्तर

4

This page प्रतीक के लिए आईडी की गणना के बारे में जानकारी के रूप में निष्पादनयोग्य/DLLs के साथ-साथ फ़ाइलें है।

असल में, निष्पादनयोग्य और DLLs के लिए, आप पीई हैडर से टाइमस्टैम्प और फ़ाइल आकार निकालने जैसा कि पेज ग्रिफ से जुड़ा हुआ है। पीडीबी फाइलों के लिए, आपको विंडोज डीबगिंग टूल्स से डीबीएच कमांड की आवश्यकता होगी। बस पीडीबी फाइल को डीबीएच में लोड करें और पीडीबीएसआईजी/पीडीबीएसआईजी 70 और पीडीबीएज प्राप्त करने के लिए INFO कमांड का उपयोग करें।। बम! यह है।


मैंने कुछ कारणों से मेरे सिस्टम 32 फ़ोल्डर में पीडीबी फाइलों के लिए उचित फ़ोल्डर्स बनाए हैं, और अंततः उन्हें स्थानीय प्रतीक स्टोर में ले जाया गया है।

+0

"फ़ाइल को संशोधित" समय स्टाम्प और "SizeOfImage" की हेक्स स्ट्रिंग श्रृंखलाबद्ध अब और काम नहीं करता है के द्वारा बनाई गई है। क्या आपके पास कहीं भी कॉपी नहीं है? – nothrow

+2

यहां तक ​​कि वेबैक मशीन में भी वह पृष्ठ नहीं है। लेकिन यूआरएल से निर्णय लेते हुए, मुझे लगता है कि यह इस धागे की एक प्रति है: ["पीडीबी और EXE पुनर्वितरण"] (https://groups.google.com/forum/#!searchin/microsoft.public.vc.debugger/ resyncing/microsoft.public.vc.debugger/xLVvCBIU6fI/0ErZ6YlXJDEJ), जो थ्रेड का उल्लेख करता है ["मिनीडंप और स्रोत अनुक्रमण"] (https://groups.google.com/forum/#!msg/microsoft.public.windbg/UYKSHJRTSFg/3inc6qfs-esJ) –

2

इस पृष्ठ पर देख का प्रयास करें: Symbol Server Callback Function

+0

ठीक है कि निश्चित रूप से मदद करता है। वे आईडी ऐसा प्रतीत होते हैं जो तारों से बने होते हैं, हालांकि मुझे अभी भी यह पता लगाना होगा कि उन आईडी की गणना कैसे करें। – Synetech

संबंधित मुद्दे