
Windows लिंक फ़ाइल (शॉर्टकट) परीक्षक
विंडोज लिंक फ़ाइल जांच (यानी विंडोज शॉर्टकट) के लिए एक फोरेंसिक उपकरण
'lifer' एक विंडोज या *nix कमांड-लाइन टूल है जो हैरी पार्सनेज द्वारा लिखित श्वेतपत्र 'द मीनिंग ऑफ लिंक फाइल्स इन फोरेंसिक एग्जामिनेशन' से प्रेरित है और यहाँ उपलब्ध है। इसकी शुरुआत एक हल्के उपकरण के रूप में हुई थी जिसे मैंने लिंक फ़ाइलों से कुछ जानकारी निकालने के लिए लिखा था, ताकि कंप्यूटर फोरेंसिक विश्लेषक के रूप में काम करते समय मेरी जांच में सहायता मिल सके। अब मैं सेवानिवृत्त हो गया हूं लेकिन मैं इसकी उपयोगिता बढ़ाने और इसे प्रकाशित करने की योजना बना रहा हूं ताकि दूसरे लाभ उठा सकें।
निकाली गई जानकारी माइक्रोसॉफ्ट ओपन स्पेसिफिकेशन दस्तावेज़ 'MS-SHLLNK' के अनुसार है, जो ऑनलाइन यहाँ पाया जा सकता है। लेखन के समय, विनिर्देश संस्करण 4.0 के अधिकांश भाग लागू किए गए हैं। मुझे उम्मीद है कि भविष्य में अनओपन किए गए जंप सूची फ़ाइलों का पार्सिंग लागू करूंगा।
टेस्ट निर्देशिका में मिलने वाली फ़ाइलों और उनके उपयोग के विवरण '.\Test\Tests.txt' फ़ाइल में दिए गए हैं। नीचे एक संक्षिप्त रूपरेखा दी गई है...
एक बार टूल स्थापित करने के बाद, एक कमांड-लाइन शेल (जैसे bash या Powershell) खोलें और './lifer/src' निर्देशिका से टाइप करें:
lifer -s ./Test/Test1.lnk
इससे आउटपुट मिलना चाहिए:
LINK FILE -------------- .\Test\Test1.lnk
{**OPERATING SYSTEM (stat) DATA**}
Last Accessed: 2017-04-18 20:28:19 (UTC)
Last Modified: 2017-04-18 20:28:19 (UTC)
Last Changed: 2017-04-18 20:28:19 (UTC)
{**LINK FILE EMBEDDED DATA**}
{S_2.1 - ShellLinkHeader}
Attributes: 0x00000020 FILE_ATTRIBUTE_ARCHIVE
Creation Time: 2008-09-12 20:27:17 (UTC)
Access Time: 2008-09-12 20:27:17 (UTC)
Write Time: 2008-09-12 20:27:17 (UTC)
Target Size: 0 bytes
{S_2.3 - LinkInfo}
{S_2.3.1 - LinkInfo - VolumeID}
Drive Type: DRIVE_FIXED
Drive Serial No: 307A8A81
Volume Label: [EMPTY]
Local Base Path: C:\test\a.txt
{S_2.4 - StringData}
{S_2.4 - StringData - RELATIVE_PATH}
Relative Path: .\a.txt
{S_2.4 - StringData - WORKING_DIR}
Working Dir: C:\test
{S_2.5 - ExtraData}
{S_2.5.10 - ExtraData - TrackerDataBlock}
MachineID: chris-xps
Droid1: {94C77840-FA47-46C7-B356-5C2DC6B6D115}
Droid2: {7BCD46EC-7F22-11DD-9499-00137216874A}
UUID Sequence: 153
UUID Time: 2008-09-10 10:23:17 (UTC)
UUID Node (MAC): 00:13:72:16:87:4A
नोट: ऊपर '{OPERATING SYSTEM (stat) DATA}' शीर्षक वाले अनुभाग में अलग-अलग तिथियां होंगी क्योंकि ये आपके अपने सिस्टम पर उस लिंक फ़ाइल को स्थापित करने और एक्सेस करने की तिथियों पर निर्भर करेंगी। हालांकि एम्बेडेड डेटा समान रहेगा।
अधिक विस्तृत आउटपुट (अधिक सटीक टाइमस्टैम्प सहित) '-s' विकल्प को हटाकर प्राप्त किया जा सकता है।
एक लिंक फ़ाइल के बारे में सबसे अधिक विवरण '-i' विकल्प का उपयोग करके प्राप्त किया जा सकता है, जो किसी भी idlist ऑब्जेक्ट के बारे में ज्ञात विवरण भी प्रिंट करेगा। यह विकल्प '-s' विकल्प के साथ संगत नहीं है।
एक निर्देशिका (फ़ोल्डर) में सभी लिंक फ़ाइलों को केवल निर्देशिका का नाम देकर पार्स किया जा सकता है:
lifer ./src/Test/WinXP
(संक्षिप्तता के लिए आउटपुट नहीं दिखाया गया है)।
कई लिंक फ़ाइलों के लिए सबसे उपयोगी आउटपुट आउटपुट को टैब (या कॉमा) से अलग की गई सूची के रूप में एक फ़ाइल में भेजकर बनाया जा सकता है, जिसे बाद में आपके खाली समय में विश्लेषण के लिए स्प्रेडशीट में आयात किया जा सकता है। इसे इस प्रकार प्राप्त किया जा सकता है:
lifer -o tsv ./src/Test/WinXP > WinXP.tsv
या
lifer -so tsv ./src/Test/WinXP > WinXP.tsv
उस फ़ाइल के लिए जिसमें कुछ अनावश्यक और अरुचिकर डेटा हटा दिया गया है।
लिंक फ़ाइलों में स्ट्रिंग्स में कभी-कभी कॉमा हो सकते हैं। चूंकि इससे फ़ील्ड सेपरेटर के साथ विरोध होता है, इसलिए स्ट्रिंग्स के भीतर किसी भी कॉमा को अर्ध-विराम से बदल दिया गया है (अर्थात ',' को ';' से बदल दिया गया है)। यह केवल '-o csv' विकल्प के लिए सही है, न कि डिफ़ॉल्ट '-o txt' या '-o tsv' और '-o xml' विकल्पों के लिए।
रिलीज़ पेज पर जाएं और नवीनतम रिलीज़ से अपनी मशीन के लिए उपयुक्त निष्पादन योग्य फ़ाइल चुनें और डाउनलोड करें। निष्पादन योग्य को 'lifer' (या विंडोज के लिए 'lifer.exe') में नाम बदलें। सुनिश्चित करें कि इसमें निष्पादन योग्य फ़ाइल के रूप में चलने के लिए सही विशेषताएँ हैं और या तो इसे उस फ़ोल्डर में रखें जिसमें आप जांच करना चाहते हैं लिंक फ़ाइलें हैं या स्थान को अपने PATH वेरिएबल में जोड़ें और आप तैयार हैं।
सबसे पहले यह सुनिश्चित करें कि आपकी मशीन/डिवाइस पर git स्थापित है; एक कमांड-लाइन शेल में, अपनी इच्छित प्रोजेक्ट रूट निर्देशिका में बदलें और कमांड जारी करें:
git clone https://github.com/Paul-Tew/lifer.git
'lifer' नामक एक नई निर्देशिका बनाई जाएगी।
(यह मैक स्थापनाओं के लिए काम कर सकता है लेकिन मेरे पास निश्चित रूप से परीक्षण करने के लिए आवश्यक पैसे नहीं हैं...) क्योंकि यह टूल काफी बुनियादी है, निर्भरताएं न्यूनतम हैं, सुनिश्चित करें कि आपके पास 'gcc' कंपाइलर और संबंधित 'libc' विकास लाइब्रेरी स्थापित हैं, बस इतना ही। एक कमांड-लाइन टर्मिनल शुरू करें और ./lifer/src निर्देशिका पर जाएं। कमांड जारी करें:
gcc -Wall ./lifer.c ./liblife/liblife.c ./libbin2hex/libbin2hex.c -o lifer
यदि कोई चेतावनी या त्रुटि नहीं आई, तो अब आपके पास निर्देशिका में एक निष्पादन योग्य फ़ाइल 'lifer' होनी चाहिए, आप कमांड जारी करके इसकी जांच कर सकते हैं:
ls -la
यदि सब ठीक है तो आप माइक्रोसॉफ्ट दस्तावेज़ में निर्दिष्ट फ़ाइल पर परीक्षण करके जांच सकते हैं कि lifer काम करता है, जिसे मैंने आपके द्वारा क्लोन किए गए git रिपॉजिटरी के हिस्से के रूप में शामिल किया है और जो ./Test/ निर्देशिका में होनी चाहिए। आप कमांड जारी करके ऐसा कर सकते हैं:
./lifer ./Test/Test.lnk
और यह भी जांचें कि lifer एक निर्देशिका में स्थित ढेर सारी लिंक फ़ाइलों पर काम करता है, कमांड जारी करके:
./lifer ./Test/WinXP/
कमांड जारी करके टूल को OS पर स्थापित करें:
sudo install ./lifer /usr/bin/
यह आपको निर्देशिका उपसर्ग निर्दिष्ट किए बिना अपने सिस्टम पर कहीं भी lifer का उपयोग करने में सक्षम करेगा (उदाहरण के लिए ./lifer ./Test/Test.lnk के बजाय lifer ./Test/Test.lnk)