FOREMOST(8) System Manager's Manual FOREMOST(8)

foremost - بازیابی فایل‌ها با استفاده از سرایندها (headers)، پسایندها (footers) و ساختارهای داده‌ای آن‌ها

foremost[-h][-V][-d][-vqwQT][-b<blocksize>][-o<dir>] [-t<type>][-s<num>][-i<file>]

بازیابی فایل‌ها از یک ایمیج دیسک بر اساس انواع فایل مشخص‌شده توسط کاربر با استفاده از سوییچ -t.

پشتیبانی از قالب‌های JFIF و Exif از جمله پیاده‌سازی‌های مورد استفاده در دوربین‌های دیجیتال امروزی.
پشتیبانی از قالب bmp ویندوز.
پشتیبانی از فایل‌های اجرایی با ساختار Windows PE؛ فایل‌های DLL و EXE را به همراه زمان کامپایل آن‌ها استخراج می‌کند.
پشتیبانی از اکثر فایل‌های MPEG (باید با 0x000001BA شروع شوند).
این گزینه فایل‌های AVI و RIFF را استخراج می‌کند چرا که هر دو از ساختار فایلی یکسانی (RIFF) استفاده می‌کنند. توجه داشته باشید که این کار سریع‌تر از اجرای جداگانه هر یک است.
توجه: ممکن است فایل‌های wma- را نیز استخراج کند، زیرا ساختار مشابهی دارند.
این گزینه هر فایلی را که از ساختار داده‌ای OLE استفاده می‌کند بازیابی می‌کند. این شامل PowerPoint، Word، Excel، Access و StarWriter می‌شود.
توجه: اجرای OLE کارآمدتر است چرا که نتیجه جامع‌تری دریافت می‌کنید. اگر می‌خواهید تمام فایل‌های دیگر OLE نادیده گرفته شوند، از این گزینه استفاده کنید.
توجه: این گزینه فایل‌های jar. را نیز استخراج می‌کند، زیرا قالب مشابهی دارند. اسناد Open Office صرفاً فایل‌های XML فشرده‌شده با zip هستند، بنابراین آن‌ها نیز استخراج می‌شوند. این شامل پرونده‌های SXW، SXC، SXI و ?SX برای فایل‌های نامشخص OpenOffice است. فایل‌های Office 2007 نیز مبتنی بر XML هستند (PPTX، DOCX، XLSX).
تشخیص کد منبع C؛ توجه داشته باشید که این روش ابتدایی است و ممکن است اسنادی غیر از کدهای C نیز تولید کند.
اجرای تمامی روش‌های استخراج از پیش تعریف‌شده. [در صورت عدم تعیین -t، این حالت پیش‌فرض است]

بازیابی فایل‌ها از یک ایمیج دیسک بر اساس سرایندها و پسایندهای مشخص‌شده توسط کاربر.

نمایش صفحه راهنما و خروج.
نمایش اطلاعات حق نشر و خروج.
فعال‌سازی تشخیص بلوک غیرمستقیم (indirect block)؛ این قابلیت برای سیستم‌فایل‌های یونیکس به خوبی عمل می‌کند.
ثبت برچسب زمانی روی دایرکتوری خروجی، تا در صورت اجرای چندباره نیازی به حذف دایرکتوری خروجی نداشته باشید.
فعال‌سازی حالت پرحرف (verbose). این کار باعث می‌شود اطلاعات بیشتری درباره وضعیت فعلی برنامه روی صفحه نمایش داده شود و بسیار توصیه می‌شود.
فعال‌سازی حالت سریع (quick mode). در حالت سریع، تنها ابتدای هر سکتور برای یافتن سرایندهای منطبق جستجو می‌شود؛ بدین معنا که سرایند تنها تا طول بلندترین سرایند جستجو می‌گردد. مابقی سکتور، که معمولاً حدود ۵۰۰ بایت است، نادیده گرفته می‌شود. این حالت اجرای foremost را به میزان قابل‌توجهی سریع‌تر می‌کند، اما ممکن است باعث شود فایل‌هایی را که درون فایل‌های دیگر جاسازی شده‌اند از دست بدهید. برای نمونه، با استفاده از حالت سریع قادر به یافتن تصاویر JPEG جاسازی‌شده در اسناد Microsoft Word نخواهید بود.

حالت سریع نباید هنگام بررسی سیستم‌فایل‌های NTFS استفاده شود. از آنجا که NTFS فایل‌های کوچک را درون جدول فایل اصلی (Master File Table یا MFT) ذخیره می‌کند، این فایل‌ها در حالت سریع نادیده گرفته خواهند شد.

فعال‌سازی حالت بی‌صدا (Quiet mode). بیشتر پیام‌های خطا پنهان و نادیده گرفته می‌شوند.
فعال‌سازی حالت فقط حسابرسی و ثبت گزارش (write audit only). هیچ فایلی استخراج نخواهد شد.
فعال‌سازی نوشتن تمام سرایندها؛ هیچ تشخیص خطایی از نظر فایل‌های آسیب‌دیده انجام نمی‌شود.
امکان تعیین اندازه بلوک مورد استفاده در foremost را فراهم می‌کند. این مقدار برای نام‌گذاری فایل‌ها و جستجوهای سریع کاربرد دارد. مقدار پیش‌فرض ۵۱۲ است. مثال: foremost -b 1024 image.dd
امکان تعیین اندازه تکه (chunk size) مورد استفاده در foremost را فراهم می‌کند. اگر حافظه رم (RAM) کافی برای بارگذاری ایمیج داشته باشید، این کار می‌تواند سرعت را بهبود بخشد. این قابلیت بررسی‌های میان تکه‌های بافر را کاهش می‌دهد؛ برای مثال اگر بیش از ۵۰۰ مگابایت حافظه رم دارید. مثال: foremost -k 500 image.dd
از فایل به عنوان فایل ورودی استفاده می‌شود. اگر هیچ فایل ورودی مشخص نشود یا فایل ورودی قابل خواندن نباشد، از ورودی استاندارد (stdin) استفاده می‌شود.
فایل‌های بازیابی‌شده در دایرکتوری مشخص‌شده نوشته می‌شوند.
تنظیم فایل پیکربندی مورد استفاده. اگر فایلی مشخص نشود، از فایل "foremost.conf" در دایرکتوری جاری استفاده می‌شود؛ اگر آن فایل نیز وجود نداشته باشد، از "/etc/foremost.conf" استفاده خواهد شد. ساختار فایل پیکربندی در فایل پیکربندی پیش‌فرض ارائه‌شده همراه این برنامه شرح داده شده است. برای اطلاعات بیشتر به بخش فایل پیکربندی (CONFIGURATION FILE) در ادامه مراجعه کنید.
نادیده گرفتن تعداد بلوک در فایل ورودی پیش از آغاز جستجو برای سرایندها. مثال: foremost -s 512 -t jpeg -i /dev/hda1

فایل پیکربندی برای کنترل این‌که foremost به دنبال چه انواعی از فایل‌ها بگردد استفاده می‌شود. یک نمونه فایل پیکربندی با نام foremost.conf همراه این توزیع ارائه شده است. برای هر نوع فایل، فایل پیکربندی پسوند فایل، حساس بودن یا نبودن سرایند و پسایند به حروف بزرگ و کوچک، حداکثر اندازه فایل، و سرایند و پسایند فایل را مشخص می‌کند. فیلد پسایند اختیاری است، اما سرایند، اندازه، حساسیت به حروف بزرگ و کوچک و پسوند اختیاری نیستند!

هر خطی که با علامت پوند/هش آغاز شود، به عنوان توضیح (کامنت) تلقی شده و نادیده گرفته می‌شود. بنابراین، برای نادیده‌گرفتن یک نوع فایل تنها کافی است یک علامت پوند (#) در ابتدای آن خط قرار دهید.

سرایندها و پسایندها پیش از استفاده رمزگشایی می‌شوند. برای تعیین یک مقدار در مبنای شانزده (هگزادسیمال) از \x[0-f][0-f] و برای مبنای هشت (اکتال) از \[1-9][1-9][1-9] استفاده کنید. فاصله‌ها را می‌توان با \s نشان داد. مثال: "\x4F\123\I\sCCI" به "OSI CCI" تبدیل می‌شود.

برای تطبیق با هر تک‌نویسه (کاراکتر عام یا wildcard) از ? استفاده کنید. اگر نیاز دارید خود نویسه ? را جستجو کنید، باید خط نویسه عام *و* تمامی تکرارهای نویسه عام قدیمی در فایل پیکربندی را تغییر دهید. آن مقادیر هگز و اکتال را فراموش نکنید! ? برابر با \x3f و \063 است.

مجموعه‌ای از سرایندهای نمونه در فایل README ارائه شده است.

foremost -s 100 -t jpg -i image.dd

foremost -av image.dd

foremost -t all -i image.dd

foremost -t gif,pdf -i image.dd

foremost -vd -t ole,jpeg -i image.dd

foremost image.dd

کد اصلی توسط مأمور ویژه Kris Kendall و مأمور ویژه Jesse Kornblum از دفتر تحقیقات ویژه نیروی هوایی ایالات متحده (United States Air Force Office of Special Investigations) نوشته شده است.

تغییرات و اصلاحات توسط Nick Mikus، پژوهشگر در مرکز مطالعات و تحقیقات امنیت سیستم‌های اطلاعاتی دانشکده تحصیلات تکمیلی نیروی دریایی (Naval Postgraduate School Center for Information Systems Security Studies and Research). اصلاحات Foremost بخشی از پایان‌نامه کارشناسی ارشد در NPS بود.

هنگام کامپایل foremost روی سیستم‌هایی با نسخه‌های glibc 2.1.x یا قدیمی‌تر، برخی هشدارهای کامپایلر (بی‌ضرر) در رابطه با اعلان ضمنی fseeko و ftello دریافت خواهید کرد. می‌توانید با خیال راحت این هشدارها را نادیده بگیرید.

از آنجا که Foremost می‌تواند برای به‌دست آوردن شواهد در پیگردهای کیفری و قضایی استفاده شود، ما تمامی گزارش‌های باگ را بسیار جدی می‌گیریم. هر باگی که یکپارچگی جرم‌شناسی دیجیتال (forensic integrity) این برنامه را به خطر بیندازد می‌تواند پیامدهای جدی به همراه داشته باشد. هنگام ارسال گزارش باگ، لطفاً شرحی از مشکل، نحوه مواجهه با آن و اطلاعات تماس خود را درج کنید.

ارسال گزارش باگ به:
namikus AT users d0t sf d0t net

این برنامه کاری از دولت ایالات متحده است. طبق 17 USC 105، حمایت از حق نشر برای آثار دولت ایالات متحده برقرار نیست.

این یک نرم‌افزار آزاد است؛ برای شرایط کپی‌برداری به کد منبع مراجعه کنید. هیچ تضمینی وجود ندارد؛ حتی برای قابلیت فروش یا مناسب بودن برای یک هدف خاص.

اطلاعات بیشتر در فایل README وجود دارد.

نرم‌افزار Foremost در ابتدا برای شبیه‌سازی عملکرد CarvThis طراحی شده بود؛ یک برنامه داس (DOS) که در سال ۱۹۹۹ توسط آزمایشگاه جرم‌شناسی رایانه‌ای وزارت دفاع (Defense Computer Forensics Lab) نوشته شده بود.

مه ۲۰۰۹ v1.5