ইএলএফ ম্যাজিক কি?


26

আমি ইএলএফ যাদু সম্পর্কে আগে আলোচনা দেখেছি, সম্প্রতি এই সুরক্ষা স্ট্যাক এক্সচেঞ্জ প্রশ্নের মন্তব্যসমূহ । আমি এটি পূর্বে উল্লিখিত দেখেছি এবং এটি আমার নিজের বুট লগগুলিতে দেখেছি .. তবে এটি কী তা নিশ্চিত।

এলফের ম্যান পেজটি আমার মাথার উপরে কিছুটা কম, কারণ আমি সি বা নিম্ন স্তরের ভাষা করি না।

যে কেউ প্রতিদিন অপারেটিং সিস্টেম হিসাবে লিনাক্স ব্যবহার করে, ইএলএফ কী?



13
আরপিজি স্ট্যাকেক্সচেঞ্জের জন্য শিরোনামটি আরও উপযুক্ত।
চথুলহু

উত্তর:


37

আপনার উল্লেখ করা ম্যান পৃষ্ঠা থেকে:

elf - format of Executable and Linking Format (ELF) files

ELF লিনাক্স দ্বারা ব্যবহৃত এক্সিকিউটেবল ফাইলগুলির বাইনারি বিন্যাসটি সংজ্ঞায়িত করে। আপনি যখন কোনও এক্সিকিউটেবলকে অনুরোধ করবেন তখন ওএসের অবশ্যই জানতে হবে যে কীভাবে এক্সিকিউটেবলকে মেমরিতে যথাযথভাবে লোড করা যায়, ডায়নামিক লাইব্রেরি নির্ভরতা কীভাবে সমাধান করতে হয় এবং তারপরে এটি চালানো শুরু করতে লোড এক্সিকিউটেবলের মধ্যে কোথায় লাফিয়ে যায়। ইএলএফ ফর্ম্যাটটি এই তথ্য সরবরাহ করে। ELF ম্যাজিকটি ELF ফাইলগুলি সনাক্ত করতে ব্যবহৃত হয় এবং এটি কেবল কোনও ফাইলের প্রথম কয়েকটি বাইট হয়:

% od -c -N 16 /bin/ls
0000000 177   E   L   F 002 001 001  \0  \0  \0  \0  \0  \0  \0  \0  \0
0000020

অথবা

% readelf -h /bin/ls | grep Magic
  Magic:   7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 

এই 16 বাইটগুলি একটি ফাইলকে কার্যকর ELF হিসাবে কার্যকর হিসাবে সনাক্ত করে un অনেক ফাইল ফর্ম্যাটের "ম্যাজিক" বাইট থাকে যা একই কাজটি সম্পাদন করে - এক ধরণের ফাইল সনাক্ত করে ying


8
আসল যাদুটি প্রথম চারটি বাইট মাত্র। নিম্নলিখিত ক্ষেত্রগুলি এন্ডিয়ানেশন, সিপিইউ আর্কিটেকচার এবং অন্যান্য বিভিন্ন বিষয় বর্ণনা করে।
সাইমন রিখটার

@ সিমোনরিখটর যা শব্দার্থবিজ্ঞানের দিকে ফোটে। প্রথম 4 বাইটগুলি অনেকগুলি ফাইলের জেনেরিক সনাক্তকরণের জন্য যাদু, তবে প্রশ্নকর্তা "ELF যাদু" নির্দিষ্ট করেছিলেন, যা readelfস্বীকৃতিও 16 বাইট।
কেসি

2
আপনি কি সত্যিই প্রযুক্তিগত পেতে চান, প্রথম 16 বাইট "সনাক্তকরণ" হয় ( e_ident), যা প্রথম 4 বাইট (ম্যাজিক নম্বর হয় EI_MAG0মাধ্যমে EI_MAG3)
মাইকেল Mrozek

1
@ স্লেবেটম্যান আমার "ম্যাজিক" এর ব্যবহারটি ইএলএফ স্পেস থেকে এসেছে: "একটি ফাইলের প্রথম 4 বাইট একটি 'ম্যাজিক নম্বর' ধারণ করে, ফাইলটিকে ইএলএফ অবজেক্ট ফাইল হিসাবে চিহ্নিত করে"
মাইকেল মরোজেক

2
"নিঃসন্দেহে" একটি সামান্য বিটকে বাড়িয়ে তুলছে। ফাইলটি কোথা থেকে এসেছে তা আপনি যদি না জানেন তবে কিছুই ঠিক অনুমান করা যায়। অবশ্যই একটি ফাইল /binএটি অবশ্যই একটি ELF বাইনারি। কিছু এলোমেলো ফাইল আপনি ডাউনলোড করেছেন, যদিও ... কিছু বলার নেই।
সিএওও

11

"ম্যাজিক নাম্বার" হল ফাইলগুলির শুরুতে বাইটের (সাধারণত) ধ্রুব ক্রমকে দেওয়া নাম, সেই ফাইলগুলিকে একটি নির্দিষ্ট ফাইল ফর্ম্যাট হিসাবে চিহ্নিত করতে ব্যবহৃত হয়। তারা এক্সটেনশন ফাইল করার অনুরূপ উদ্দেশ্যে পরিবেশন করে।

দেখুন অপভাষা ফাইল এন্ট্রি আরও তথ্যের জন্য।

উদাহরণস্বরূপ, পিএনজি চিত্রগুলি সর্বদা একই আট বাইট দিয়ে শুরু হয়: 137 80 78 71 13 10 26 26 10

সুতরাং ইএলএফ ম্যাজিক নম্বরগুলি এলফ ফাইলগুলির শুরুতে বাইট হয় যা সেগুলি হিসাবে চিহ্নিত করে।

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