Chrono Mock
भाषाहिन्दी

प्रश्न और उत्तर

संक्षिप्त उत्तर, उनके भी जो इस बारे में हैं कि यह टूल क्या नहीं करेगा।

क्या यह मेरे कंप्यूटर की घड़ी बदलता है?

नहीं, और कभी नहीं बदलेगा - यही इस टूल का पूरा मक़सद है। बदला हुआ समय एक प्रोसेस और उसके शुरू किए चाइल्ड प्रोसेस को दिखता है। आपका डोमेन लॉगऑन, आपके सर्टिफ़िकेट, Windows Update और हर दूसरा ऐप्लिकेशन पूरे समय असली तारीख़ देखते रहते हैं।

क्या मुझे एडमिनिस्ट्रेटर अधिकार चाहिए?

चलाने के लिए नहीं। zip को इंस्टॉलर नहीं चाहिए, वे रजिस्ट्री में कुछ नहीं लिखते, और ऐसे फ़ोल्डर से चलते हैं जिसे आप USB स्टिक पर रख सकते हैं। वैकल्पिक .msi को एडमिनिस्ट्रेटर अधिकार एक बार चाहिए, इंस्टॉल करने के लिए, क्योंकि वह इस कंप्यूटर के हर खाते के लिए इंस्टॉल होता है।

क्या यह मेरे ऐप्लिकेशन के साथ काम करेगा?

ईमानदार जवाब यह है कि इस तरह का कोई भी टूल यह पहले से वादा नहीं कर सकता - इसलिए यह टूल इसे नापता है। हर सत्र एक निर्णय (काम करता है, आंशिक रूप से काम करता है, काम नहीं करता) के साथ ख़त्म होता है, उन समय चैनलों की सूची के साथ जो ऐप्लिकेशन ने वास्तव में पढ़े और हर एक की कॉल-गिनती के साथ, और उन चैनलों की सूची के साथ जो कवर नहीं हुए।

ऐप्लिकेशन किसी ऐसे रास्ते से घड़ी पढ़ सकता है जिसे किसी ने रोका नहीं - किसी सर्वर से, किसी डेटाबेस से, किसी रनटाइम लेयर से। ऐसा होने पर आपको बताया जाता है, इस मान्यता में नहीं छोड़ा जाता कि परीक्षण पास हो गया।

क्या यह .NET, Java और Python ऐप्लिकेशन के साथ काम करता है?

आंशिक रूप से, और अंतर मायने रखते हैं। तीनों प्रयोगात्मक चिह्नित हैं: वे परीक्षण टारगेट पर चलते हैं, व्यापक रूप से परखे नहीं गए हैं, और इस अनुच्छेद की जगह बिल्ट-इन ऑडिट आपका सच का स्रोत है।

  • .NET - वॉल क्लॉक और सत्र का टाइम ज़ोन कवर हैं। Stopwatch असली हाई-रेज़ोल्यूशन काउंटर पर रहता है जब तक आप उसे स्केल करने का विकल्प न चुनें।
  • Java - वॉल क्लॉक, बीता हुआ समय और सत्र का टाइम ज़ोन कवर हैं। ज़ोन एक स्थिर ऑफ़सेट के रूप में आता है, जिसका नाम GMT+05:30 जैसा होता है।
  • Python - time.time और datetime कवर हैं। perf_counter, और Python 3.13 व उसके बाद के संस्करणों में monotonic, हाई-रेज़ोल्यूशन काउंटर पर रहते हैं जब तक आप विकल्प न चुनें।

क्या यह Electron और Chromium ऐप्लिकेशन के साथ काम करता है?

हाँ, एक अलग तंत्र से। उनकी घड़ी एक सैंडबॉक्स्ड रेंडरर में रहती है जहाँ इंजेक्शन नहीं पहुँचता, इसलिए ऐप्लिकेशन को एक डीबग पोर्ट और साफ़, अस्थायी प्रोफ़ाइल के साथ लॉन्च किया जाता है, और उसके अपने JavaScript समय API सत्र की घड़ी पर रखे जाते हैं - Web Worker के भीतर भी, जहाँ टाइमर अक्सर वास्तव में रहता है।

एक सीमा जानने लायक है: Electron ऐप्लिकेशन की मुख्य प्रक्रिया Node में चलती है, जहाँ सत्र नहीं पहुँचता, इसलिए वह असली घड़ी पर रहती है, और रिपोर्ट यह बताती है। पेज और उनके worker सत्र का टाइम ज़ोन पढ़ते हैं।

Chromium और Electron मोड कैसे काम करता है - वह कहाँ तक पहुँचता है, कहाँ नहीं, और डीबग पोर्ट ही वह हिस्सा क्यों है जिसका ध्यान रखना है।

क्या मैं समय को असली समय से तेज़ चला सकता हूँ?

हाँ। एक पूर्ण-संख्या गुणक चुनें और ऐप्लिकेशन की घड़ी उसी गति से चलती है - x1440 एक दिन को एक मिनट बना देता है, इसलिए 30 दिन का ट्रायल लगभग आधे घंटे में ख़त्म हो जाता है। आप घड़ी को जमा भी सकते हैं, या सत्र के बीच आगे-पीछे छलाँग लगा सकते हैं।

काउंटडाउन और टाइमर एक अलग अक्ष पर हैं, और उन्हें तेज़ करना एक अलग स्विच है, क्योंकि उन्हें स्केल करना वह व्यवहार बदलता है जिस पर बहुत-से ऐप्लिकेशन निर्भर हैं।

क्या मैं तारीख़ बदले बिना केवल टाइम ज़ोन बदल सकता हूँ?

हाँ। सत्र का अपना स्थिर ऑफ़सेट होता है, जो उसी प्रोसेस को दिखता है जबकि सिस्टम ज़ोन ठीक वहीं रहता है जहाँ था। यह वह हिस्सा है जिसे ज़्यादातर टूल छोड़ देते हैं, और इसी से आप वह बग दोहरा पाते हैं जो केवल पाँच टाइम ज़ोन दूर वाले ग्राहक को दिखता है।

डेलाइट सेविंग टाइम का क्या?

सत्र का ज़ोन डेलाइट सेविंग के बिना एक स्थिर ऑफ़सेट है। पोलैंड पर सेट सत्र उसी ऑफ़सेट पर रहता है जो आपने चुना, चाहे उसकी घड़ी मार्च पढ़े या जुलाई, इसलिए असली बदलाव को पार करने वाला रन उस घंटे से भटक जाता है जो वह ज़ोन वास्तव में दिखाता।

इसलिए किसी ऐप्लिकेशन को डेलाइट सेविंग के बदलाव से गुज़ारना अभी वह चीज़ नहीं है जो यह टूल करता है, और तारीख़ कैलकुलेटर अंदाज़ा लगाने की जगह यही बताता है।

मेरा एंटीवायरस इसे क्यों चिह्नित करता है?

क्योंकि किसी दूसरी प्रोसेस में लाइब्रेरी इंजेक्ट करना Windows की एक वैध प्रलेखित तकनीक है जिसे मैलवेयर भी इस्तेमाल करता है। यह तकनीक से उपजा झूठा अलार्म है, उस किसी चीज़ से नहीं जो टूल आपकी मशीन के साथ करता है। इंजेक्ट की जाने वाली लाइब्रेरी chrono_hook.dll है, जो सार्वजनिक सोर्स से GPL-3.0 के तहत बनी है, और आप उसे ख़ुद दोबारा बना सकते हैं। Chromium और Electron मोड कुछ भी इंजेक्ट नहीं करता।

डाउनलोड पेज बताता है कि इसका क्या करना है।

क्या यह ट्रायल बढ़ाने या लाइसेंस को दरकिनार करने का तरीका है?

नहीं, और यह इसके लिए बना भी नहीं है। Chrono Mock उस सॉफ़्टवेयर को परखने के लिए है जिसकी ज़िम्मेदारी आपकी है - आपके अपने लाइसेंस की समाप्ति, आपका अपना नवीनीकरण तर्क, आपकी अपनी माह-अंत की रिपोर्ट। यहाँ कोई उदाहरण, प्रीसेट या पेज कभी किसी और का ट्रायल बढ़ाना नहीं दिखाएगा।

लाइसेंस सुरक्षा वाला सॉफ़्टवेयर तो असल में वही मामला है जिसमें यह टूल सबसे ज़्यादा विफल होगा: छेड़छाड़-रोधी कोड अक्सर जानबूझकर चुने गए, रोकने में कठिन रास्तों से समय पढ़ता है, और घड़ी का पीछे घूमना वह स्थिति है जिसे पकड़ने के लिए ऐसा सॉफ़्टवेयर लिखा जाता है। उलटी दिशा की एक सुविधा योजना में है - एक मोड जो आपके अपने ऐप्लिकेशन पर समय के हेरफेर की एक शृंखला चलाए और बताए कि आपकी सुरक्षा ने उनमें से कौन-से पकड़े।

क्या मैं इसे कंटिन्यूअस इंटीग्रेशन में इस्तेमाल कर सकता हूँ?

हाँ। कमांड-लाइन बिल्ड लगभग 2.4 MB का एक अलग डाउनलोड है, जिसके लिए कोई रनटाइम इंस्टॉल नहीं करना पड़ता। हर कमांड --json बोलती है और ऐसे कोड के साथ बाहर निकलती है जिस पर पाइपलाइन शाखा ले सकती है, और सत्र अपने सबूत फ़ाइल में लिख सकता है।

यह RunAsDate से कैसे अलग है?

RunAsDate दीवार घड़ी के पाँच फ़ंक्शन रोकता है और यह अच्छी तरह करता है। यह टूल 44 समय चैनलों पर नज़र रखता है और उनमें से 30 को सत्र की घड़ी पर ले आता है, घड़ी तेज़ कर सकता है, प्रोसेस को उसका अपना टाइम ज़ोन देता है, चाइल्ड प्रोसेस के साथ चलता है, और बाद में बताता है कि कौन-से चैनल सचमुच कवर हुए। यह ओपन सोर्स भी है, जबकि RunAsDate बंद फ़्रीवेयर है। दूसरी ओर, RunAsDate पहले से चल रहे ऐप्लिकेशन से जुड़ सकता है, यह टूल नहीं।

पूरी तुलना यह भी बताती है कि RunAsDate कहाँ बेहतर चुनाव है।

क्या यह Windows के लिए libfaketime है?

भावना में, हाँ - मशीन की जगह एक प्रोग्राम के लिए समय बदलने का वही विचार। व्यवहार में यह एक अलग कार्यान्वयन है, क्योंकि libfaketime LD_PRELOAD पर निर्भर है, जो Windows पर मौजूद नहीं है। इसी के बारे में एक पूरा पेज है।

क्या यह मुफ़्त है, और क्या यह कहीं कुछ भेजता है?

GPL-3.0 के तहत मुफ़्त और ओपन सोर्स। कोई अकाउंट नहीं, कोई टेलीमेट्री नहीं, और यह इंटरनेट से बिल्कुल संपर्क नहीं करता - पूरा टूल नेटवर्क केबल निकाले हुए भी काम करता है।

विंडो में दो नियंत्रण हैं जो बाहर ले जाते हैं, इसलिए उन्हें ख़ुद खोजने के लिए छोड़ने की जगह नाम लेकर बताया जाना ठीक है: टाइटल बार में Donate और GitHub बटन। इनमें से किसी को दबाने पर एक पता आपके ब्राउज़र को दिया जाता है, और जुड़ता आपका ब्राउज़र है। दोनों में से किसी भी स्थिति में Chrono Mock कोई कनेक्शन नहीं खोलता, और आपके ऐप्लिकेशन के बारे में उसने जो कुछ मापा वह कहीं नहीं जाता।