বাইনারি ফাইলের অষ্টাল বা হেক্স ডাম্প কীভাবে ব্যাখ্যা করবেন?


14

বাইনারি ফাইলটিতে স্ট্রিং এবং কিছু নম্বর রয়েছে, যদি আমি করি od -c filenameবা strings filename, আমি স্ট্রিংগুলি সঠিকভাবে দেখতে পারি। তবে, সংখ্যা কী? তারা কিছু অদ্ভুত বিন্যাসে আছে।

করার পরে লেখাটি od -c filenameহ'ল:

0000000 036 \ 0 032 004 এসডি \ 0 \ 0 \ 0 \ 0 সিক 1
0000020 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ টি \ 0 ó 002 3 001
0000040 & 03 0 032 \ f ও 2 006 \ 0 \ 0 \ 0 ওসফাস 1
0000060 ó 002 3 001 \ \ r \ 0 \ 0 \ t \ 0 \ 0 @ 3
0000100 233 º 004 \ 0 é 003 \ 0 \ 0 & 03 0 032 \ f ও 2 7 \ 0
0000120 \ 0 \ 0 ওসফিউ 1 ó 002 3 001 é 235
0000140 \ 0 \ 0 035 003 \ 0 @ 3 × 233 º 004 \ 0 Ñ \ a \ 0 \ 0
0000160 ä \ 0 032 \ f O r E \ 0 \ 0 \ 0 ওস্ফাপ 1

এটিকে কীভাবে বুঝাবেন?

এমনকি আমি চেষ্টা করেছি hexdump -C filename

আউটপুটটি এরকম:

00000000 1e 00 1a 04 53 44 00 00 00 00 73 65 71 31 20 20 | .... এসডি .... seq1 |
00000010 20 20 00 00 00 00 00 00 00 00 09 00 f3 02 33 01 | .......... ó.3। |
00000020 26 00 1a 0c 4f 32 06 00 00 00 6f 73 66 75 73 31 | ও ... ও 2 .... ওসফুস 1 |
00000030 20 20 f3 02 33 01 ff 0 ডি 00 00 09 00 00 40 33 33 ডি 7 | ó.3.ÿ ...... @ 3 × |
00000040 9 বি বা 04 00 ই9 03 00 00 26 00 1 এ 0 সি 4 এফ 32 37 00 | .º..é ... এবং ... ও 27 |
00000050 00 00 6F 73 66 65 75 20 20 f3 02 33 01 ই9 9 ডি | ..সফিউ 1 ó.3.é. |
00000060 00 00 1 ডি 03 00 40 33 33 ডি 7 9 বি বা 04 00 ডি 1 07 00 00 | ..... @ 3 × .º..Ñ ... |
00000070 e4 00 1a 0c 4f 72 45 00 00 00 6F 73 66 61 70 31 | ä ... ওআর ... ওসফাপ 1 |

স্পষ্ট করার জন্য, একটি নিয়মিত ফাইল যা প্রধান ফাইলটি প্রদর্শিত হয় তার একটি বৈশিষ্ট্য ছিল কিছু অদ্ভুত বিন্যাস, সুতরাং আমরা কাঁচা / বাইনারি ফাইলটির দিকে তাকিয়ে আছি।

নিয়মিত ফাইলটিতে অষ্টাল ডাম্প করা, দেখার সমস্যাটি সমাধান করে।

সহ grep 'id=123' regular_file | head -1 | od -c, আমি সেখানে সংখ্যাটি দেখতে সক্ষম হয়েছি। আমি 1 আশা করছিলাম, এটি আমাদের কাছে 001 হিসাবে দেখিয়েছে।


4
এটির "ব্যাখ্যা" করতে, আপনাকে এটির কী ফর্ম্যাট সঞ্চিত রয়েছে তা জানতে হবে
কেভিন

আমাকে বলা হয়েছে যে সংখ্যাগুলি বাইনারি বিন্যাসে রয়েছে, বিশেষত বাইনারি পূর্ণসংখ্যা। এটি কি আমার প্রশ্নে সহায়তা করে?

না, কম্পিউটারে থাকা সমস্ত কিছু বাইনারি, আপনার ফাইলের লেআউটটি জানতে হবে - প্রতিটি সংখ্যাটি কোথায়, প্রতিটি সংখ্যার অর্থ কী। আপনি এই ফাইলটি কোথায় পেলেন?
কেভিন

শুধু স্পষ্ট করে বলতে গেলে আমার কাছেও সাধারণ ফাইল রয়েছে। [seq = 132253932] [মেজর = এস] [মাইনর = ডি] [এসসিআর = seq1] [আইডি = 0] [রেফ = 0] [তারিখ = 20120307] সাধারণ ফাইলে যে কোনও একটি ট্যাগের মান ascii, সাধারণ ফাইলটি সাধারণত লগগুলি পড়ার জন্য ব্যবহৃত হয় তবে এটি নিশ্চিত করার জন্য এটির সঠিক মান ছিল তবে বিভিন্ন ফর্ম্যাটে আমরা এই বাইনারি ফাইলটির দিকে তাকাচ্ছি।

একটি "স্ট্যান্ডার্ড" হেক্স ডাম্পের ডান দিকটি সাধারণত সেই তথ্যটির ASCII প্রতিনিধিত্বকারী। আপনি যদি এই পাঠ্যটি দেখেন: not textসেই ASCII ভিউতে, এর অর্থ এই নয় যে ফাইলটি পড়া প্রোগ্রামটির কাছে এটি ASCII। যেমন। সংখ্যা 7957706749327538292 একটি 64-বিট অল্প endian স্বাক্ষরবিহীন পূর্ণসংখ্যা হিসাবে এনকোডেড। সৌন্দর্য হওয়া ASCII দৃশ্য এটি পছন্দ: not text
পিটার.ও

উত্তর:


4

সংখ্যা সংরক্ষণের প্রচুর উপায় রয়েছে - এএসসিআইআই (যার স্থানীয়ভাবে নির্দিষ্ট ভেরিয়েন্ট থাকতে পারে, যেমন ',' ব্যবহার করে ভগ্নাংশের অংশ পৃথক করতে বা কয়েক হাজার গ্রুপিং হিসাবে), বাইনারি পূর্ণসংখ্যার (বিটের সংখ্যা পরিবর্তন) / ফ্লোট / ডাবল (সবগুলি যা এন্ডিয়ান আর্কিটেকচারের ভিত্তিতে এবং ফাইল প্রস্তুতকারী সফ্টওয়্যারগুলির উপস্থাপনের আনুষ্ঠানিকতা নির্ধারণ করে), বিসিডি (সংকোচিত, প্যাকড, নির্দিষ্ট পয়েন্ট এবং অন্যান্য রূপগুলি), দ্বি-কুইনার কোডিং দশমিক ...

কোন মান নেই।


19

কম্পিউটার বিজ্ঞানের জন্য আমাকে প্রথম যে জিনিসগুলি মুখস্থ করতে হয়েছিল তার মধ্যে একটি ছিল ডেটা + ইন্টারপ্রিটেশন = দরকারী তথ্য । এর একটি অনুচ্ছেদে হ'ল যদি আপনি ডেটা বা ব্যাখ্যার অনুপস্থিত থাকেন তবে আপনার কিছুই নেই। ডেটা নিজেই আপনাকে এটি ব্যাখ্যা করতে পারে না কীভাবে এটি ব্যাখ্যা করতে হয়। (আপনার মেটাটাটা থাকতে পারে যা এটি আপনাকে জানায়, তবে তারপরে আপনাকে কীভাবে মেটাডেটা ব্যাখ্যা করতে হবে তা জানতে হবে)

পরিস্থিতিতে, আমি এটি চেষ্টা করার পরামর্শ দিচ্ছি:

file filename

যদি এটির মতো কিছু আসে:

filename: data

এবং ফর্ম্যাটটি কী, কোন প্রোগ্রাম থেকে, এর ব্যবহার কী, বা এর বিষয়বস্তু সম্পর্কে যে কোনও বিষয় রয়েছে তা সম্পর্কে আপনার একেবারেই ধারণা নেই filename, তবে আপনার সম্ভবত ত্যাগ করা উচিত।

অক্টাল ডাম্প আউটপুট

od(অষ্টাল ডাম্প) একটি হাইব্রিড পাঠ্য এবং অষ্টাল ডাম্প উত্পাদন করে। অ সংখ্যার যেমন পারেন মুদ্রণযোগ্য অক্ষর o, s, f, যেমন ইত্যাদি বা অ- মুদ্রণযোগ্য অক্ষর \0(হওয়া ASCII 0, NUL), অথবা \a(হওয়া ASCII 7, BEL), বা সংখ্যা বেস 8, মানক সি প্রেফিক্স সহ 0(যেমন 032= 26 মধ্যে দশমিক)। আপনার ফাইলটি 8-বিট বাইটের স্ট্রিম হিসাবে ব্যাখ্যা করা হয়েছে ।

হেক্স ডাম্প আউটপুট

hexdumpcolumnতিহ্যবাহী হেক্স ডাম্প উত্পাদন করে, যার একটি কলাম হেক্সাডেসিমালে ৮-বিট বাইট তালিকাভুক্ত করে, অন্যটি দেখায় যে এএসসিআইআই অক্ষরগুলি এই বাইটগুলি যথাযথভাবে মিলে যায়, যদি কোনও (যদি বাইট মানটি একটি প্রিন্টযোগ্য এএসসিআইআই অক্ষর হয় না, বা কোনও এএসসিআইআই অক্ষর নয়) , .যে অবস্থানে প্রদর্শিত হয়)। আবার আপনার ফাইলটি 8-বিট বাইটের স্ট্রিম হিসাবে ব্যাখ্যা করা হয়েছে ।

পূর্ণসংখ্যার

যদি আপনার ফাইলটিতে 100% বাইনারি পূর্ণসংখ্যা থাকে (যেমন একটি শিরোনামহীন, অভিন্ন, কোনও ধরণের পূর্ণসংখ্যার উপস্থাপনার এক-মাত্রিক অ্যারে) থাকে, তবে আপনাকে নিজের কাছে এই সমস্ত প্রশ্নের উত্তর দিতে হবে:

  • এগুলি কি 'যথাযথ' বাইনারি, বা বাইনারি-কোডড দশমিক (বিসিডি) ? (সম্ভবত বাইনারি)
  • তারা বিট কত প্রশস্ত?
  • যদি তাদের প্রস্থ 8 এর একাধিক না হয়, তারা কি এসএমএস বার্তা বা বেস 64 এর মতো বিট-প্যাকড, বা বাইট-সারিবদ্ধ?
  • যদি তাদের প্রস্থ 8 বিট বা তার বেশি হয় তবে বাইট অর্ডারটি কী? এটি কি বিগ এন্ডিয়ান, লিটল এন্ডিয়ান বা অন্য যে কোনও একটি, বিরল প্রকার?
  • পূর্ণসংখ্যাগুলি স্বাক্ষরিত, না স্বাক্ষরিত ?
  • যদি তারা স্বাক্ষরিত হয়, তবে তারা কি দুটিটির পরিপূরক (সম্ভবত বেশি) বা কোনওটির পরিপূরক , বা বিরল এবং অদ্ভুত কিছুতে উপস্থাপিত হয় ?

সম্ভবত এখন আরও ভুলে যাচ্ছি।

এবং এটি কেবলমাত্র কম্পিউটারের একটি সাধারণ, আধুনিক স্থাপত্য থেকে আগত সংখ্যার একক মাত্রিক ইউনিফর্ম অ্যারে। যদি আপনার ডেটাতে কোনও ধরণের জটিলতা থাকে তবে জিনিসগুলি এত লোমশ হয়ে উঠছে যে কেবলমাত্র ফর্ম্যাটটি অনুমান করার চেয়ে লটারি জিতানো দ্রুত হয়ে উঠবে। আর তুমি আছে , (একটি শিক্ষিত অনুমান, কিন্তু একটি অনুমান) অনুমান করা যদি না আপনি বিন্যাস জানি।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.