विंडोज़ को यह बताने का एकमात्र तरीका है कि एक प्रोग्राम को ऊपर उठाने की जरूरत है और यह मैनिफेस्ट फ़ाइल के माध्यम से है। मैनिफेस्ट फ़ाइलों को या तो एक असेंबली (exe/dll) के भीतर एम्बेड किया जा सकता है या <YOUR_APP>.exe.manifest
नामक एक अलग फ़ाइल में रह सकता है। यह वास्तव में एकमात्र तरीका है और शायद एकमात्र तरीका है जिसे आप सुरक्षित रूप से जांच सकते हैं। आधिकारिक तौर पर।
विंडोज़ में एक विशाल डेटाबेस भी है जो एप्लिकेशन अनुकूलता के लिए उपयोग किया जाता है। यदि माइक्रोसॉफ्ट ने एक ऐप का परीक्षण किया है और पाया है कि ओएस अपग्रेड होने पर यह टूट जाता है तो वे कभी-कभी ऐप को हैक करने के लिए डेटाबेस में एक प्रविष्टि बनाता है। कभी-कभी वे वर्तमान ओएस संस्करण के बारे में झूठ बोलते हैं, कभी-कभी वे स्वचालित रूप से व्यवस्थापक के रूप में चलाते हैं, कभी-कभी वे अन्य चीजों का समूह भी करते हैं। आप Application Compatibility Toolkit का उपयोग कर डेटाबेस देख सकते हैं। मुझे नहीं पता कि कोड के माध्यम से डेटाबेस से पूछताछ करने का आधिकारिक तरीका है या नहीं। This blog post ब्लॉगर द्वारा बनाए गए टूल के बारे में बात करता है लेकिन स्पष्ट रूप से कभी रिलीज़ नहीं होता है।
अंतिम स्वचालित उन्नयन तंत्र एल्गोरिदम है जो यह निर्धारित करने का प्रयास करता है कि वह ऐप इंस्टॉलर है या नहीं। According to MSDN इन विशेषताओं जाँच कर रहे हैं: विक्रेता, कंपनी का नाम, उत्पाद नाम:
- फ़ाइल का नाम जैसे कीवर्ड "स्थापित करते हैं," "सेटअप," "अद्यतन," आदि निम्नलिखित संशोधन संसाधन क्षेत्रों में
- कीवर्ड शामिल , फ़ाइल विवरण, मूल फ़ाइल नाम, आंतरिक नाम, और निर्यात नाम।
- निष्पादन योग्य में एम्बेडेड साइड-बाय-साइड मैनिफेस्ट में कीवर्ड।
- एक्जिक्यूटिव में जुड़े विशिष्ट स्ट्रिंगटेबल प्रविष्टियों में कीवर्ड।
- निष्पादन योग्य में आरसी डेटा में मुख्य विशेषताएं।
- निष्पादन योग्य के भीतर बाइट्स के लक्षित अनुक्रम।
बाइट्स के कीवर्ड और अनुक्रम विभिन्न इंस्टॉलर तकनीकों से देखी गई सामान्य विशेषताओं से प्राप्त किए गए थे।
आखिरकार, एक ऐप सामान्य उपयोगकर्ता के रूप में चलाया जा सकता है लेकिन spawn a child process that requires elevated privileges। मुझे नहीं पता कि वास्तव में एप को कम करने के लिए वास्तव में इसका पता लगाने का कोई तरीका नहीं है या नहीं।
स्रोत
2011-10-08 14:25:11
Pleas "सी #" के साथ अपने शीर्षक को उपसर्ग नहीं करते हैं। [इसलिए], हम यही टैग का उपयोग करते हैं। –
ठीक है, आपके सुधार के लिए धन्यवाद। मैं इसे और प्रश्नों पर ध्यान में रखूंगा;) – mmiccc