در شروع محتوای اکثر فایل های باینری،(شایدم همشون) چند بایت به عنوان هدر هستن که اطلاعاتی در مورد محتوای فایل دارن.معمولا ۲ بایت(یا شایدم گاهی ۳) بایت اول این هدر که همون ۲ بایت اول فایل میشه نقش sign یا علامت رو ایفا میکنن که نوع فایل رو مشخص میکنه. مثلا MZ برای فایل های اجراییی EXE ، DLL و ... یا BM برای Bitmap Image یا PK برای Zip و ... که البته کاراکترشون هم قرار نیست همیشه مفهوم دار باشه و مهم کد اسکیشونه.(میتونی فایل های مختلف رو با یک Hex Editor باز کنی و ببینی)
با این روش میشه نوع خیلی از فایل های باینری رو شناسایی کرد.برای فرمت هایی مثل Text اسکی هم فکر کنم چک کردن کاراکتر ها (مثلا کد اسکیشون بین ۳۲ تا ۱۲۸ باشه) روش معمول باشه.گرچه اگه فایل متنی یونیکد باشه اون هم sign مربوط به خودش رو داره...