كيفية تحليل الملفات الثنائية في Linux

كيفية تحليل الملفات الثنائية في Linux

في هذه المقالة ، سنشرح كيفية تحليل الملفات الثنائية في Linux.

سنغطي 5 أوامر وأدوات بسيطة يمكن أن تساعدك على تحليل الملفات الثنائية بسهولة. يوفر Linux مجموعة غنية من الأدوات التي تجعل تحليل الثنائيات أمرًا سهلاً! مهما كان دورك الوظيفي ، إذا كنت تعمل على Linux ، فإن معرفة الأساسيات حول هذه الأدوات سيساعدك على فهم نظامك بشكل أفضل.

هيا بنا نبدأ.

1. ملف

سيساعدك الأمر file على تحديد نوع الملف الدقيق الذي تتعامل معه. ملف ، حدد ملفًا بتنسيق خاص يحتوي على اختبارات حساسة للموضع ؛ لن يتم إجراء الاختبارات الافتراضية الحساسة للموضع والاختبارات الحساسة للسياق.

يخبر الأمر فقط كيف يبدو الملف ، وليس ما هو (في الحالة التي ينظر فيها الملف إلى المحتوى). من السهل خداع البرنامج بوضع رقم سحري في ملف لا يتطابق محتواه معه. وبالتالي فإن الأمر لا يمكن استخدامه كأداة أمنية إلا في حالات محددة.

# file file.c
file.c: C program text

# file /bin/ls

bin/ls: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=937708964f0f7e3673465d7749d6cf6a2601dea2, stripped, too many notes (256)

# file /etc/passwd
/etc/passwd: ASCII text

2. ldd

ldd يطبع الكائنات المشتركة (المكتبات المشتركة) المطلوبة من قبل كل برنامج أو كائن مشترك محدد في سطر الأوامر. عندما يتم تطوير البرنامج ، نحاول ألا نعيد اختراع العجلة. هناك مجموعة من المهام الشائعة التي تتطلبها معظم البرامج ، مثل طباعة الإخراج أو القراءة من الإصدار القياسي أو فتح الملفات وما إلى ذلك.

يتم تلخيص كل هذه المهام الشائعة في مجموعة من الوظائف المشتركة التي يمكن للجميع استخدامها بدلاً من كتابة المتغيرات الخاصة بهم. يتم وضع هذه الوظائف المشتركة في مكتبة تسمى libc أو glibc.

# ldd /bin/rm
linux-vdso.so.1 (0x00007ffcd6d7d000)
libc.so.6 => /lib64/libc.so.6 (0x00007f13d841c000)
/lib64/ld-linux-x86-64.so.2 (0x00007f13d89f1000)

3. تفريغ سداسي

تفريغ سداسي - عرض محتويات الملف بالنظام السداسي العشري أو العشري أو الثماني أو التصاعدي. الأداة المساعدة hexdump هي مرشح يعرض الملفات المحددة ، أو الإدخال القياسي إذا لم يتم تحديد ملفات ، بتنسيق يحدده المستخدم.

يساعدك فتح ملفات غير معروفة في Hexdump على معرفة ما يحتويه الملف بالضبط. يمكنك أيضًا اختيار رؤية تمثيل ASCII للبيانات الموجودة في الملف باستخدام بعض خيارات سطر الأوامر. قد يساعدك هذا في إعطائك بعض الأدلة حول نوع الملف.

# hexdump -C /bin/ls | head
00000000 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 |.ELF…………|
00000010 03 00 3e 00 01 00 00 00 00 5e 00 00 00 00 00 00 |..>……^……|
00000020 40 00 00 00 00 00 00 00 70 82 02 00 00 00 00 00 |@…….p…….|
00000030 00 00 00 00 40 00 38 00 0a 00 40 00 1f 00 1e 00 |…[email protected]…@…..|
00000040 06 00 00 00 04 00 00 00 40 00 00 00 00 00 00 00 |……..@…….|
00000050 40 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 |@…….@…….|
00000060 30 02 00 00 00 00 00 00 30 02 00 00 00 00 00 00 |0…….0…….|
00000070 08 00 00 00 00 00 00 00 03 00 00 00 04 00 00 00 |…………….|
00000080 70 02 00 00 00 00 00 00 70 02 00 00 00 00 00 00 |p…….p…….|
00000090 70 02 00 00 00 00 00 00 1c 00 00 00 00 00 00 00 |p……………|

4 اقرأ نفسك

يعرض readelf معلومات حول واحد أو أكثر من ملفات كائن تنسيق ELF. تتحكم الخيارات في المعلومات المعينة التي سيتم عرضها. ELF (تنسيق الملف القابل للتنفيذ والربط) هو تنسيق الملف السائد للملفات القابلة للتنفيذ أو الثنائيات ، ليس فقط على Linux ولكن أيضًا على مجموعة متنوعة من أنظمة UNIX. يمكن أن يكون وجود مرجع لمواصفات ELF الفعلية في متناول اليد عند استخدام readelf مفيدًا جدًا.

# readelf -h /bin/ls
ELF Header:
Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00
Class: ELF64
Data: 2’s complement, little endian
Version: 1 (current)
OS/ABI: UNIX - System V
ABI Version: 0
Type: DYN (Shared object file)
Machine: Advanced Micro Devices X86-64
Version: 0x1
Entry point address: 0x67d0
Start of program headers: 64 (bytes into file)
Start of section headers: 140224 (bytes into file)
Flags: 0x0
Size of this header: 64 (bytes)
Size of program headers: 56 (bytes)
Number of program headers: 13
Size of section headers: 64 (bytes)
Number of section headers: 30
Section header string table index: 29

5. objdump

objdump - عرض المعلومات من ملفات الكائن. يعرض objdump معلومات حول ملف كائن واحد أو أكثر. تتحكم الخيارات في المعلومات المعينة التي سيتم عرضها. هذه المعلومات مفيدة في الغالب للمبرمجين الذين يعملون على أدوات التجميع ، على عكس المبرمجين الذين يريدون فقط أن يقوم برنامجهم بالتجميع والعمل. ينشئ هذا المترجم تعليمات لغة الآلة المكافئة لشفرة المصدر ، والتي يمكن بعد ذلك تنفيذها بواسطة وحدة المعالجة المركزية لأداء مهمة معينة.

# objdump -d /bin/ls | head

/bin/ls: file format elf64-x86-64

Disassembly of section .init:

0000000000004000 <.init>:
4000: f3 0f 1e fa endbr64
4004: 48 83 ec 08 sub $0x8,%rsp
4008: 48 8b 05 c9 ef 01 00 mov 0x1efc9(%rip),%rax # 22fd8 <__gmon_start__>

في هذه المقالة ، رأينا كيفية تحليل الملفات الثنائية في Linux.

احصل على خادم مخصص مزدوج عالي الأداء من سلسلة E5 و KVM VPS رخيص.


كيفية إنشاء مجموعة في Linux

كيفية إنشاء مجموعة في Linux

تُستخدم المجموعات لتنظيم المستخدمين وامتيازاتهم مثل قراءة إذن الكتابة والتنفيذ. لإضافة groud ، يكون الأمر هو groupadd.

3 طرق للتحقق من استخدام وحدة المعالجة المركزية في Linux

3 طرق للتحقق من استخدام وحدة المعالجة المركزية في Linux

اشرح جيدًا 3 طرق للتحقق من استخدام وحدة المعالجة المركزية في Linux. يشير استخدام وحدة المعالجة المركزية إلى استخدام موارد المعالجة ، أو مقدار العمل الذي تقوم به وحدة المعالجة المركزية.

كيفية تثبيت DenyHosts وتكوينه في CentOS 7

كيفية تثبيت DenyHosts وتكوينه في CentOS 7

يستخدم DenyHosts على نطاق واسع كبديل لـ Fail2ban. إذا كان هناك عدد كبير جدًا من محاولات تسجيل الدخول إلى SSH غير الصالحة ، فإنها تفترض أن هجمات القوة الغاشمة أو

قم بتركيب قرص جديد على خادم Linux

قم بتركيب قرص جديد على خادم Linux

سوف نتعلم كيفية تركيب قرص جديد على خادم Linux. في هذا العرض التوضيحي ، نستخدم خادم السحاب CentOS 7. الآن قم بتثبيت القسم كما هو موضح أدناه.

من السهل تثبيت Fail2ban على Ubuntu 20.04

من السهل تثبيت Fail2ban على Ubuntu 20.04

اشرح جيدًا كيف أنه من السهل تثبيت Fail2ban على Ubuntu 20.04. تمت كتابة Fail2ban بلغة برمجة Python وهو مفتوح المصدر ومجاني. إعدادات.

كيفية تثبيت WireGuard VPN على Ubuntu 20.04

كيفية تثبيت WireGuard VPN على Ubuntu 20.04

اشرح جيدًا كيفية تثبيت WireGuard VPN على Ubuntu 20.04. WireGuard عبارة عن شبكة افتراضية خاصة بسيطة للغاية وسريعة وحديثة تستخدم أحدث تقنيات التشفير

كيفية تثبيت OpenSSL 1.1.1d في CentOS

كيفية تثبيت OpenSSL 1.1.1d في CentOS

OpenSSL عبارة عن مجموعة أدوات قوية من الدرجة التجارية وكاملة الميزات لبروتوكولات أمان طبقة النقل (TLS) و (SSL). تعلم كيفية تثبيت OpenSSL 1.1.1d في CentOS

كيفية تثبيت وتكوين CSF على CentOS 8

كيفية تثبيت وتكوين CSF على CentOS 8

كيفية تثبيت وتهيئة CSF على خادم CentOS 8. إن ConfigServer Security & Firewall عبارة عن جدار حماية (SPI) ، وتطبيق كشف تسجيل الدخول / التطفل والأمان.

لم ينعكس تكوين قاعدة التدقيق - كيفية استكشاف الأخطاء وإصلاحها

لم ينعكس تكوين قاعدة التدقيق - كيفية استكشاف الأخطاء وإصلاحها

تكوين قاعدة التدقيق لا ينعكس؟ تعرف على كيفية قيام مهندسي الدعم لدينا باستكشاف المشكلة وحلها. ملف تكوين القاعدة /etc/audit/rules.d/audit.rules

تحميل CloudLinux عالي على الخادم

تحميل CloudLinux عالي على الخادم

في هذه المقالة سوف نتعرف على كيفية قيام مهندسي الدعم لدينا بإصلاح الحمل العالي لـ CloudLinux على الخادم. يرجى التأكد من تكوين حدود LVE بشكل صحيح.