Cum se analizează fișiere binare în Linux

Cum se analizează fișiere binare în Linux

În acest articol, vom explica cum se analizează fișiere binare în Linux.

Vom acoperi 5 comenzi simple și instrumente care vă pot ajuta să analizați cu ușurință fișierele binare. Linux oferă un set bogat de instrumente care face ca analiza binarelor să fie o briză! Oricare ar fi rolul dvs. de serviciu, dacă lucrați la Linux, cunoașterea elementelor de bază despre aceste instrumente vă va ajuta să vă înțelegeți mai bine sistemul.

Să începem.

1. dosar

Comanda fișier vă va ajuta să identificați tipul exact de fișier cu care aveți de-a face. fișier , specificați un fișier special formatat care conține teste sensibile la poziție; testele implicite sensibile la poziție și testele sensibile la context nu vor fi efectuate.

Comanda spune doar cum arată fișierul, nu ce este (în cazul în care fișierul privește conținutul). Este ușor să păcălești programul introducând un număr magic într-un fișier al cărui conținut nu se potrivește cu acesta. Astfel, comanda nu poate fi utilizată ca un instrument de securitate, altul decât în ​​situații specifice.

# 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 tipărește obiectele partajate (biblioteci partajate) cerute de fiecare program sau obiect partajat specificat pe linia de comandă. Când se dezvoltă software, încercăm să nu reinventăm roata. Există un set de sarcini comune pe care majoritatea programelor software le necesită, cum ar fi imprimarea ieșirii sau citirea din standard în sau deschiderea fișierelor etc.

Toate aceste sarcini comune sunt extrase într-un set de funcții comune pe care toată lumea le poate folosi în loc să scrie propriile variante. Aceste funcții comune sunt plasate într-o bibliotecă numită libc sau 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 - afișează conținutul fișierului în hexazecimal, zecimal, octal sau ascii. Utilitarul hexdump este un filtru care afișează fișierele specificate sau intrarea standard dacă nu sunt specificate fișiere, într-un format specificat de utilizator.

Deschiderea fișierelor necunoscute în Hexdump vă ajută să vedeți ce conține exact fișierul. De asemenea, puteți alege să vedeți reprezentarea ASCII a datelor prezente în fișier folosind câteva opțiuni din linia de comandă. Acest lucru vă poate ajuta să vă oferiți câteva indicii despre ce fel de fișier este.

# 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

readelf afișează informații despre unul sau mai multe fișiere de obiecte în format ELF. Opțiunile controlează ce informații particulare trebuie afișate. ELF (Executable and Linkable File Format) este formatul de fișier dominant pentru executabil sau binar, nu doar pe Linux, ci și o varietate de sisteme UNIX. Să aveți la îndemână o referință a specificației ELF reale atunci când utilizați readelf poate fi foarte util.

# 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. obiectdump

objdump - afișează informații din fișierele obiect. objdump afișează informații despre unul sau mai multe fișiere obiect. Opțiunile controlează ce informații particulare trebuie afișate. Aceste informații sunt utile mai ales programatorilor care lucrează la instrumentele de compilare, spre deosebire de programatorii care doresc doar ca programul lor să fie compilat și funcționat. Acest compilator generează instrucțiuni de limbaj mașină echivalente codului sursă, care pot fi apoi executate de CPU pentru a efectua o sarcină dată.

# 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__>

În acest articol, am văzut cum să analizăm fișiere binare în Linux.

Obțineți un server dedicat din seria E5 de înaltă performanță și VPS KVM ieftin.


Cum se creează un grup în Linux

Cum se creează un grup în Linux

Grupurile sunt utilizate pentru a organiza utilizatorii și privilegiile lor, cum ar fi citirea scrisului și executarea permisiunii. Pentru a adăuga un groud, comanda este groupadd.

3 moduri de a verifica utilizarea procesorului în Linux

3 moduri de a verifica utilizarea procesorului în Linux

Explicați bine 3 moduri de a verifica utilizarea procesorului în Linux. Utilizarea procesorului se referă la o utilizare a resurselor de procesare sau la cantitatea de muncă gestionată de un procesor.

Cum se instalează și se configurează DenyHosts în CentOS 7

Cum se instalează și se configurează DenyHosts în CentOS 7

DenyHosts este utilizat pe scară largă ca alternativă la Fail2ban. Dacă au existat prea multe încercări de conectare SSH nevalide, se presupune că atacurile sale cu forță brută sau

Montați un disc nou pe un server Linux

Montați un disc nou pe un server Linux

Vom învăța cum să montăm un disc nou pe un server Linux. Pentru această demonstrație, folosim CentOS 7 cloud server. acum montați partiția așa cum se arată mai jos.

Ușor de instalat Fail2ban pe Ubuntu 20.04

Ușor de instalat Fail2ban pe Ubuntu 20.04

Explicați bine cum este ușor să instalați Fail2ban pe Ubuntu 20.04. Fail2ban este scris în limbaj de programare Python și este open source, gratuit. Configurare.

Cum se instalează WireGuard VPN pe Ubuntu 20.04

Cum se instalează WireGuard VPN pe Ubuntu 20.04

Explicați cum să instalați WireGuard VPN pe Ubuntu 20.04. WireGuard este un VPN extrem de simplu, rapid și modern care utilizează criptografie de ultimă generație

Cum se instalează OpenSSL 1.1.1d în CentOS

Cum se instalează OpenSSL 1.1.1d în CentOS

OpenSSL este un set de instrumente robust, de calitate comercială, cu funcții complete pentru protocoalele Transport Layer Security (TLS) și (SSL). Aflați cum să instalați OpenSSL 1.1.1d în CentOS

Cum se instalează și se configurează CSF pe CentOS 8

Cum se instalează și se configurează CSF pe CentOS 8

Cum se instalează și se configurează CSF pe serverul CentOS 8. ConfigServer Security & Firewall este un firewall (SPI), aplicație de conectare / detectare intruziuni și securitate.

Configurarea regulii de audit nu este reflectată - Cum se depanează

Configurarea regulii de audit nu este reflectată - Cum se depanează

Configurarea regulii de audit nu este reflectată? Aflați cum soluționează și soluționează problema inginerii noștri de asistență. Fișierul de configurare a regulii /etc/audit/rules.d/audit.rules

CloudLinux High Load pe server

CloudLinux High Load pe server

În acest articol vom afla cum inginerii noștri de asistență repară CloudLinux încărcarea mare pe server. Vă rugăm să vă asigurați că limitele dvs. LVE sunt configurate corect.