PDA

View Full Version : فایلهای پنهان شده تحت فایلهای دیگر در سیستم فایل NTFS



A B C D
سه شنبه 08 شهریور 1390, 02:23 صبح
گفتم این مطلب رو بذارم گرچه چیز خاصی نیست و شاید زیاد هم بدرد نخوره و بعضی ها و شاید خیلی ها حتما میدونن. ولی مسلمه که بعضیا هم نمیدونن و اگر ندونید خوب نیست و اگر تاحالا نمیدونستید حالا از دونستنش خوشحال میشید و باعث ایجاد کارمای مثبت برای بنده میشه و اینا!

خب داستان از این قراره که سیستم فایل NTFS یه ویژگی عجیبی داره که میگن بخاطر سازگاری با سیستم فایل سیستم عامل مکینتاش (http://en.wikipedia.org/wiki/Mac_OS) درنظر گرفته شده بوده.

این ویژگی اسمش Alternate data streams (ADS) (http://en.wikipedia.org/wiki/NTFS#Alternate_data_streams_.28ADS.29) هست.
ما کاری به شرح فنیش نداریم، و در اینجا فقط بررسی میکنیم که باهاش میشه چه کارهای جالبی انجام داد!!

بوسیلهء این ویژگی ما میتونیم یک یا چند فایل رو تحت نام یک فایل دیگه ذخیره کنیم (البته فقط روی درایوهایی که سیستم فایل اونا NTFS باشه) به صورتی که اون فایلها دیده نمیشن، حجمشون در فایل اصلی نشون داده نمیشه، و در سرچ ویندوز پیدا نمیشن (البته مسلما ابزارهای جداگانه ای برای پیدا کردن و بررسی و دستکاری این نوع دیتای پنهان وجود داره).

خب شروع میکنیم.
پنجرهء خط فرمان ویندوز رو باز کنید.
فرمان زیر را وارد کنید:

cd \
تا بریم به ریشهء درایو C
معمولا درایو C که توش ویندوز نصب میکنن NTFS هست، ولی بقیهء درایوها ممکنه FAT32 باشن.
ضمنا ما فرض میکنیم که ویندوز شما در درایو C و در دایرکتوری ای بنام WINDOWS نصب شده. و این تست هم روی ویندوز XP صورت گرفته. از وضعیت ویندوز 7 در این زمینه خبر ندارم!

خب حالا دو فایل به نامهای زیر در ریشهء درایو C ایجاد کنید:

1.txt
2.txt
داخل فایل 1.txt بنویسید 111 و سیو کنید و داخل فایل 2.txt رشتهء 222 رو ذخیره کنید.

حالا این فرمان رو اجرا کنید:

type 2.txt > 1.txt:hidden.txt
برای اونایی که به خط فرمان وارد نیستن بگم که فرمان type محتویات یک فایل رو چاپ میکنه و چون از علامت بزرگتر در انتهای فرمان استفاده کردیم، خروجی ما بجای پرینت شدن به فایلی که اسمش بعد از علامت بزرگتر اومده هدایت (به اصطلاح ریدایرکت - Redirect) میشه. البته در اینجا ما از خصیصهء ADS سیستم فایل NT استفاده کردیم و بنابراین خروجی ما تحت نام hidden.txt که وابسته به فایل اصلی 1.txt است ذخیره میشه.

خب حالا فایل 2.txt رو دلیت کنید تا مطمئن بشید وجود نداره. البته این کار لزومی نداره و فقط برای اطمینان از نتایج آزمایشه.

حالا این فرمان رو اجرا کنید:

start c:\1.txt:hidden.txt
با اجرای این فرمان مشاهده میکنید که فایلی با محتوای 222 در نوتپد ویندوز (یا text editor دیگری) باز میشه.

حالا بعنوان یه تست دیگه یه فایل اجرایی رو تحت 1.txt پنهان میکنیم:

type c:\WINDOWS\system32\calc.exe > c:\1.txt:hidden.exe
نکته: calc.exe فایل اجرایی برنامهء ماشین حساب ویندوزه.

حالا ماشین حساب ویندوز رو با این فرمان استارت میکنیم:

start c:\1.txt:hidden.exe

یعنی به این شکل میتونید یک برنامه رو هم تحت یک فایل دیگه پنهان کرده و هروقت خواستید بصورت مخفی اجرا کنید.

نکتهء مهمی که در تست ها فهمیدم اینه که موقعی که میخواید فایلی رو که تحت فایل هدف پنهان شده به این روش باز/اجرا کنید باید مسیر از ریشه بهش بدید (یعنی مسیر با بک اسلش از ریشهء درایو شروع بشه) و/یا درایو رو مشخص کنید.
بطور مثال:

start 1.txt:hidden.exe
کار نمیکنه.
اما هر یک از این 3 دستور دیگه کار میکنن:

start c:1.txt:hidden.exe
start c:\1.txt:hidden.exe
start \1.txt:hidden.exe

تذکر: وقتی فایل دارای دیتای پنهان رو به درایو غیر NTFS منتقل کنید، همهء فایلها/دیتای پنهان اون از بین میرن.

-------------------------------------------

ضمنا بعنوان یه نکتهء جالب فنی، نقل از توضیحات مقالهء ویکیپدیا، عرض کنم که:
آیا تاحالا از خودتون پرسیدید وقتی مثلا یه فایل exe رو که از اینترنت دانلود کردید میخواید اجرا کنید ویندوز از کجا میفهمه که اون فایل از اینترنت دانلود شده و قبل از اجرای اون به شما هشدار میده و تایید میخواد؟
این قبلا برای من کم و بیش سوال بود.
الان فهمیدم که این کار با استفاده از ذخیرهء دیتای پنهان خاصی با استفاده از همین ویژگی انجام میشه.
یعنی مرورگر شما اطلاعات خاص کوچکی رو با استفاده از این ویژگی تحت اون فایل برای علامتگذاریش ذخیره میکنه که ویندوز از روی اون اطلاعات میفهمه که اون فایل از اینترنت دانلود شده. البته این کار اولین بار توسط مرورگر IE انجام شده و بعدا مرورگرهایی مثل فایرفاکس هم ازش تبعیت کردن.

نکات مکمل:

از ویژگی ADS بعضی از بدافزارها (http://en.wikipedia.org/wiki/Malware) هم برای پنهان کردن کد خودشون استفاده کردن.

همچنین بعضی کاربردهای کم اهمیت تر و کمتر متداول که دیگه نیازی نمیبینم ذکر کنم و در متن انگلیسی میتونید بخونید.

امیدوارم از این مطلب خوشتون اومده باشه!

A B C D
سه شنبه 08 شهریور 1390, 09:28 صبح
همین الان با استفاده از توضیحات و برنامهء معرفی شده در این صفحه (http://technet.microsoft.com/en-us/sysinternals/bb897440.aspx) اطلاعات بیشتری بدست آوردم که جهت کامل بودن مطالب درج میکنم.

- شما میتونید دیتای پنهان خودتون رو علاوه بر فایلها، تحت نام دایرکتوری ها هم ذخیره کنید (در این زمینه فایل و دایرکتوری تفاوتی ندارن).

- اطلاعاتی که گفتم بعضی مرورگرها با اون فایلهای دانلود شده رو علامتگذاری میکنن تحت دیتای مخفی با نام Zone.Identifier ذخیره میشه.
فرضا من فایل test.exe رو دانلود میکنم و در یک درایو NTFS ذخیره میشه. حالا با این فرمان میتونم محتویات دیتای مخفی اون رو مشاهده کنم:

more < test.exe:Zone.Identifier
که چیزی که این دستور چاپ میکنه این خواهد بود:

[ZoneTransfer]
ZoneId=3