एक दूषित TXT या INI फ़ाइल बनाएँ?


0

कभी-कभी हमें ग्राहकों से दूषित फ़ाइलों की रिपोर्ट मिलती है। ये दुर्लभ और अगले-से-असंभव हैं जिन्हें पुन: उत्पन्न करना असंभव है। जब हम दूरस्थ रूप से ग्राहकों की मशीन में प्रवेश करते हैं, तो हम पाते हैं कि फ़ाइल (आमतौर पर एक INI फ़ाइल) नहीं खोली जा सकती। न ही विश्लेषण के लिए फ़ाइल को स्थानीय रूप से कॉपी किया जा सकता है। सीमित उदाहरणों के आधार पर, इन दूषित फ़ाइलों का आकार "0kB" है और इसे केवल हटाया जा सकता है। जब ऐसा होता है, तो यह दर्जनों में से सिर्फ एक INI फ़ाइल को प्रभावित करता है। बाकी व्यवस्था ठीक है। एक बार दूषित फ़ाइल को दोबारा बनाने के बाद, सिस्टम पूरी तरह से ठीक हो जाता है।

हमें नहीं पता कि यह कैसे होता है और यह पुन: पेश करना चाहता है और उम्मीद है कि इस मुद्दे को हल करेगा। एक Windows समस्या हो सकती है, एक कोडिंग त्रुटि, यहां तक ​​कि एक हार्डवेयर समस्या जो अप्रत्याशित रूप से मशीन को पावर देने से संबंधित है। परीक्षण प्रयोजनों के लिए, मैंने यादृच्छिक कचरा के साथ एक TXT फ़ाइल बनाई है:

// Delphi code, but applies to any language
procedure TfrmDiagnostics.CreateCorruptFile();
var
    fpDump: TextFile;
    nChar: Integer;
begin
    RandSeed := (GetTickCount() mod 23);
    AssignFile(fpDump, 'C:\Corrupted.txt');
    for nChar:=1 to 100 do
        Write(fpDump, Chr(Random(250)));

    Flush(fpDump);
    CloseFile(fpDump);
end;

यह एक अच्छी तरह से मंगाई गई फ़ाइल उत्पन्न करता है, पहले कुछ बाइट्स थे: NREâA # »Bâ lilb… ilL ('- LD YL & d .... लेकिन फ़ाइल अभी भी नोटपैड ++ में खुलती है और कुछ अन्य ASCII संपादकों की मैंने कोशिश की।

क्या विंडोज़ में वास्तव में "भ्रष्ट" फ़ाइल बनाना संभव है, एक जिसे विंडोज़ ने खोलने से इंकार कर दिया है? इसमें संभवतः फ़ाइल-आवंटन तालिका के साथ फ़िडलिंग शामिल है, लेकिन मुझे संदेह है कि उपयोगकर्ताओं के पास FAT तक कोई भी पहुंच है (और यह वैसे भी करने के लिए एक सुरक्षित चीज़ की तरह आवाज़ नहीं करता है)।

जवाबों:


0

किसी फ़ाइल को खोला नहीं जा सकता इसका कारण यह नहीं है कि फ़ाइल दूषित है, बल्कि इसलिए कि फ़ाइल पर राइट-लॉक है।

इसका मतलब है कि जब फ़ाइल खुली थी, तब नेटवर्क कनेक्शन कट गया था और सर्वर लॉक को सक्रिय रख रहा था।

यदि आप Computer Managementसर्वर पर खोलते हैं , और ओपन फाइल्स को अनवाल्ड करते हैं, तो आपको लॉक को हटाने की क्षमता के साथ उन .ini फाइलों के संदर्भों को ढूंढना चाहिए, जिसके बाद आप फिर से फाइल के लिए कुछ भी कर सकते हैं।

ऐसी परिस्थिति को फिर से बनाने के लिए, एक फ़ाइल बनाएँ या एक मौजूदा फ़ाइल खोलें। फ़ाइल में लिखें। ऐसा करते समय, नेटवर्क से अपने पीसी को डिस्कनेक्ट करें और फिर से कनेक्ट करें। फ़ाइल दूषित हो जाएगी और आपको उसी तरह से नहीं खोला जा सकता जैसा आपने पहले अनुभव किया था।

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


2
यदि आप किसी फ़ाइल को दुर्गम या दूषित करने का प्रयास करते हैं, तो यह इंगित करने के लिए कि यह पागलपन की बहुत परिभाषा होने जा रही है। इसलिए यह बहुत आसान है (और यकीनन बेहतर है) अपवाद को संभालना है कि अधिसूचना के माध्यम से उपयोगकर्ता को .ini फ़ाइल को फिर से बनाया गया था। यदि आप अपनी कंपनी की एप्लिकेशन .ini फ़ाइल के बारे में बात नहीं कर रहे हैं, तो यह अधिक जटिल है, लेकिन हर संभव कारण को कवर करने के लिए असंभव भी हो सकता है। ini को संसाधित नहीं किया जा सकता है
रामहाउंड

क्या राइट लॉक भी फाइल को डिलीट होने से नहीं रोक पाएगा?
Twisty Impersonator

क्या स्थानीय रूप से फ़ाइल बनाने के कुछ हैक किए गए कोड (किसी भी भाषा) के साथ एक तरीका है (जो कि नेटवर्क से अधिक नहीं है) एक राइट लॉक के साथ फिर भी यह प्रयास करने और पुन: पेश करने के लिए सक्रिय है?
AlainD

@ टि्वस्टी: यह सही है। फ़ाइल को Windows द्वारा खोला नहीं जा सकता था लेकिन हटाया जा सकता है।
AlainD

1
@ रामहाउंड: निष्पक्ष टिप्पणी, मैं देखता हूं कि "इस फाइल की जांच" कोड को बदलने के लिए मैं क्या कर सकता हूं। इस तरह की समस्या के साथ समस्या यह है कि समस्या इतनी दुर्लभ है कि आप बग को कभी भी हल नहीं कर सकते हैं जब तक कि आप समस्या को पहले या बाद में पुन: उत्पन्न नहीं कर सकते हैं!
AlainD
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.