PDA

View Full Version : مشکل در خواندن فایل باینری در پایتون



!!Unix!!
سه شنبه 01 آبان 1386, 23:17 عصر
سلام .
من یک فایل باینری دارم که می خوام اونو باز کنم ولی خروجی را نمی تونم بخونم . شکل زیر را ببینید متوجه می شید . چرا خروجی به این صورت نمایش داده شده ؟ این فایل حاوی یک سری کد هست آیا میشه با باز کردن باینری آنها را خوند ؟


http://i20.tinypic.com/5l81ok.png


ممنونم.

Inprise
چهارشنبه 02 آبان 1386, 19:13 عصر
میخوای باینری رو بخونی ؟ خوب تو الان داری باینری رو میخونی .

!!Unix!!
پنج شنبه 03 آبان 1386, 00:14 صبح
آهان . پس من اشتباه می کردم.
هیچ راهی برای خواندن محتویات یک فایل باینری وجود نداره . منظورم از خواندن نمایش محتویات هست . ( مثل یک فایل عادی ) مثلا کد های موجود در این فایل . البته منطقی به نظر میرسه که نباشه ولی خوب متاسفانه من زیاد در این مورد اطلاعاتی ندارم و ممنون میشم اطلاعاتی در این مورد در اختیارم بزارین.

Inprise
پنج شنبه 03 آبان 1386, 06:37 صبح
دنبال خواندن محتویات یک فایل "باینری" هستی ؟ خوب کاری که تو الان داری انجام میدی دقیقا خواندن محتویات یک فایل باینری است . این کاملا هم منطقی هست . خودت انجامش دادی . به این دو جوابی که بهت دادم کمی دقت کن .

!!Unix!!
پنج شنبه 03 آبان 1386, 18:21 عصر
شاید نداستن معنای دقیق فایل binary برا من مشکل ساز شده . من تعریف binary را از wiki خوندم :


Binary files are usually thought of as being a sequence of bytes (http://en.wikipedia.org/wiki/Byte), which means the binary digits (bits (http://en.wikipedia.org/wiki/Bit)) are grouped in eights
Binary files typically contain bytes that are intended to be interpreted as something other than text characters (http://en.wikipedia.org/wiki/Character_%28computing%29)

من میدونم فایل مورد نظر حاوی کد های پایتون هست .
ولی قسمتی که به درد من میخورد :


A hex editor (http://en.wikipedia.org/wiki/Hex_editor) or viewer (such as hex dump (http://en.wikipedia.org/wiki/Hex_dump)) may be used to view file data as a sequence of hexadecimal (or decimal, binary or ASCII character) values for corresponding bytes of a binary file.


شاید بهتره سوال را اینجوری مطرح کنم ؟ چه جوری بفهمم به صورت سری بایت های hexadecimal یا decimal یا ... باز شده ؟ آیا راهی برای تبدیل آنها به صورت plaintext هست ؟
ممنونم .

Bayazee
پنج شنبه 03 آبان 1386, 18:44 عصر
سلام
بستگی مستقیم داره به فایل باینریت و نجوه ذخیر شدن اطلاعات !! مممکنه متنی در یک فایل بصورت باینری ذخیره بشه که به ظاهر می شه خیلی راحت خوندش ! اما فرمتی خاص داره . این نوع فایل شما چی هست ؟ اگر فایل اجرایی باشه معمولا خیلی سخت هست که به سورس اصلی دسترسی داشت . تقریبا غیر ممکن هست . البته در مواردی مثلا فایل های بایت کد پایتون می شه کارایی کرد .

Inprise
پنج شنبه 03 آبان 1386, 18:57 عصر
باید در مورد Data Structure فایل باینری ات اطلاع داشته باشی . راههائی برای تحلیل باینری و نزدیک شدن به ساختارش وجود داره که پیچیدگی های مختلفی داره و راه عمومی ای نیست .

اگر بایت کد پایتون داری نمیتونی مستقیما به متن پایتون تبدیلش کنی و برای اینکار به یک Decompiler پایتون نیاز داری چون همونطور که حتما میدونی کدهای پایتون بعد از کامپایل به چیزی شبیه به IL تبدیل میشن .

!!Unix!!
پنج شنبه 03 آبان 1386, 23:41 عصر
متاسفانه فایل اجرای هست . برای برقراری ارتباط اتوماتیک linux station به فایروال netscreen و حالا یک سری کارهای مورد نیاز برای ایجاد پایگاه داده مورد نیاز برای ذخیر log ها و ... که به گفته برنامه نویس کد نویسی آن به پایتون هست. از دوستان ممنونم . ترجیح میدم بیشتر از این برای این کار وقت نگذارم