Hoe binaire bestanden in Linux te analyseren

Hoe binaire bestanden in Linux te analyseren

In dit artikel leggen we uit hoe je binaire bestanden in Linux analyseert.

We behandelen 5 eenvoudige commando's en hulpmiddelen die u kunnen helpen om binaire bestanden gemakkelijk te analyseren. Linux biedt een uitgebreide set hulpmiddelen die het analyseren van binaire bestanden een fluitje van een cent maakt! Wat je functie ook is, als je met Linux werkt, zal het kennen van de basis van deze tools je helpen je systeem beter te begrijpen.

Laten we beginnen.

1. bestand

De bestandsopdracht helpt u het exacte bestandstype te identificeren waarmee u te maken hebt. bestand , specificeer een speciaal opgemaakt bestand dat positiegevoelige tests bevat; standaard positiegevoelige tests en contextgevoelige tests worden niet uitgevoerd.

De opdracht vertelt alleen hoe het bestand eruitziet, niet wat het is (in het geval dat het bestand naar de inhoud kijkt). Het is gemakkelijk om het programma voor de gek te houden door een magisch getal in een bestand te plaatsen waarvan de inhoud er niet mee overeenkomt. Het commando is dus niet bruikbaar als beveiligingshulpmiddel, behalve in specifieke situaties.

# 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 drukt de gedeelde objecten (gedeelde bibliotheken) af die vereist zijn voor elk programma of gedeeld object dat op de opdrachtregel is opgegeven. Bij het ontwikkelen van software proberen we het wiel niet opnieuw uit te vinden. Er zijn een aantal veelvoorkomende taken die de meeste softwareprogramma's nodig hebben, zoals het afdrukken van uitvoer of lezen van standaard in, of het openen van bestanden, enz.

Al deze gemeenschappelijke taken worden geabstraheerd in een reeks gemeenschappelijke functies die iedereen vervolgens kan gebruiken in plaats van zijn eigen varianten te schrijven. Deze algemene functies worden in een bibliotheek met de naam libc of glibc geplaatst.

# 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 - toon bestandsinhoud in hexadecimaal, decimaal, octaal of ascii. Het hulpprogramma hexdump is een filter dat de opgegeven bestanden, of standaardinvoer als er geen bestanden zijn opgegeven, in een door de gebruiker gespecificeerd formaat weergeeft.

Door onbekende bestanden in Hexdump te openen, kunt u zien wat het bestand precies bevat. U kunt er ook voor kiezen om de ASCII-weergave van de gegevens in het bestand te zien met behulp van enkele opdrachtregelopties. Dit kan je misschien wat aanwijzingen geven over wat voor soort bestand het is.

# 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 lees zelf

readelf geeft informatie weer over een of meer objectbestanden in ELF-indeling. De opties bepalen welke specifieke informatie moet worden weergegeven. ELF (Executable and Linkable File Format) is het dominante bestandsformaat voor uitvoerbare bestanden of binaire bestanden, niet alleen op Linux, maar ook op een verscheidenheid aan UNIX-systemen. Het kan erg handig zijn om een ​​referentie van de daadwerkelijke ELF-specificatie bij de hand te hebben bij het gebruik van 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 - toon informatie uit objectbestanden. objdump geeft informatie weer over een of meer objectbestanden. De opties bepalen welke specifieke informatie moet worden weergegeven. Deze informatie is vooral nuttig voor programmeurs die aan de compilatietools werken, in tegenstelling tot programmeurs die gewoon willen dat hun programma compileert en werkt. Deze compiler genereert machinetaalinstructies die gelijk zijn aan de broncode, die vervolgens door de CPU kunnen worden uitgevoerd om een ​​bepaalde taak uit te voeren.

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

In dit artikel hebben we gezien hoe binaire bestanden in Linux kunnen worden geanalyseerd.

Krijg een krachtige dual E5-serie dedicated server en goedkope KVM VPS.


Hoe maak je een groep aan in Linux

Hoe maak je een groep aan in Linux

Groepen worden gebruikt om gebruikers en hun privileges te organiseren, zoals het lezen van de schrijf- en uitvoeringsrechten. Om een ​​groud toe te voegen, is het commando groupadd.

3 manieren om het CPU-gebruik in Linux te controleren

3 manieren om het CPU-gebruik in Linux te controleren

Leg 3 manieren uit om het CPU-gebruik in Linux te controleren. CPU-gebruik verwijst naar het gebruik van verwerkingsbronnen of de hoeveelheid werk die door een CPU wordt verwerkt.

Hoe DenyHosts te installeren en configureren in CentOS 7

Hoe DenyHosts te installeren en configureren in CentOS 7

DenyHosts wordt veel gebruikt als alternatief voor Fail2ban. Als er te veel ongeldige SSH-inlogpogingen zijn geweest, gaat het ervan uit dat de brute-force-aanvallen of

Koppel een nieuwe schijf aan een Linux-server

Koppel een nieuwe schijf aan een Linux-server

We zullen leren hoe je een nieuwe schijf op een Linux-server kunt mounten. Voor deze demonstratie gebruiken we de CentOS 7-cloudserver. mount nu de partitie zoals hieronder getoond.

Eenvoudig te installeren Fail2ban op Ubuntu 20.04

Eenvoudig te installeren Fail2ban op Ubuntu 20.04

Leg goed uit hoe het eenvoudig is om Fail2ban op Ubuntu 20.04 te installeren. Fail2ban is geschreven in de programmeertaal Python en is gratis open source. Configuratie.

Hoe WireGuard VPN te installeren op Ubuntu 20.04

Hoe WireGuard VPN te installeren op Ubuntu 20.04

Leg goed uit hoe u WireGuard VPN installeert op Ubuntu 20.04. WireGuard is een uiterst eenvoudige, snelle en moderne VPN die gebruikmaakt van de modernste cryptografie

Hoe OpenSSL 1.1.1d in CentOS te installeren

Hoe OpenSSL 1.1.1d in CentOS te installeren

OpenSSL is een robuuste, commerciële toolkit met volledige functionaliteit voor de Transport Layer Security (TLS) & (SSL)-protocollen. Leer OpenSSL 1.1.1d installeren in CentOS

CSF installeren en configureren op CentOS 8

CSF installeren en configureren op CentOS 8

Hoe CSF op de CentOS 8-server te installeren en configureren. ConfigServer Security & Firewall is een (SPI) firewall, Login/Intrusion Detection en Security applicatie.

Configuratie van auditregel wordt niet weergegeven – Problemen oplossen?

Configuratie van auditregel wordt niet weergegeven – Problemen oplossen?

Configuratie auditregel niet weergegeven? Ontdek hoe onze ondersteuningstechnici het probleem oplossen en oplossen. Regelconfiguratiebestand /etc/audit/rules.d/audit.rules

CloudLinux Hoge belasting op server

CloudLinux Hoge belasting op server

In dit artikel zullen we leren hoe onze ondersteuningstechnici de hoge belasting van CloudLinux op de server oplossen. Zorg ervoor dat uw LVE-limieten correct zijn geconfigureerd.