ΠΡΠ΅Π΄ΠΈ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π΄Π½ΠΈ ΡΠ΅ΡΠΈΡ Π΄Π° Π½Π°ΠΏΡΠ°Π²Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΡΡΠ²ΠΎ Π½Π° ΡΡΡΠΌΡΠ΅ΡΠ° Π½Π° ΠΌΠΎΡ ΡΡΡΠ΅Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° binwalk.
ΠΡΠΏΠΈΡ
ΡΠΈ
ΠΡΠ΅ΠΊΠΈ ΠΏΡΡ, ΠΊΠΎΠ³Π°ΡΠΎ ΠΊΡΠΏΡ Π½ΠΎΠ² ΡΡΡΠ΅Ρ, ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΌ
Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ ΠΈΠ·ΡΠ΅Π³Π»ΠΈΡ
OpenWRT, Π°Π· ΡΡΡΠΎ
ΠΠ°ΠΊΠ²ΠΎ Π΅ binwalk?
Π‘ΡΠ·Π΄Π°Π΄Π΅Π½ ΠΏΡΠ΅Π· 2010 Π³. ΠΎΡ ΠΡΠ΅ΠΉΠ³ Π₯Π΅ΡΠ½ΡΡ, binwalk ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠΊΠ°Π½ΠΈΡΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π° ΡΡΡΠΌΡΠ΅ΡΠ° ΠΈ Π΄Π° Π½Π°ΠΌΠΈΡΠ° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, Π΄Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠ° ΠΈ ΠΈΠ·Π²Π»ΠΈΡΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π° ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌ ΠΊΠΎΠ΄, ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ°Π½ΠΈ Π°ΡΡ ΠΈΠ²ΠΈ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ Π·Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ ΠΈ ΡΠ΄ΡΠ°, ΡΠ°ΠΉΠ»ΠΎΠ²ΠΈ ΡΠΎΡΠΌΠ°ΡΠΈ ΠΊΠ°ΡΠΎ JPEG ΠΈ PDF ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΈ.
ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ binwalk Π·Π° ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΡΡΠ²ΠΎ Π½Π° ΡΡΡΠΌΡΠ΅ΡΠ°, Π·Π° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ. Π’ΡΡΡΠ΅ΡΠ΅ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ Π² Π±ΠΈΠ½Π°ΡΠ½ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΠΈΠ·Π²Π»ΠΈΡΠ°ΠΉΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ ΡΡΡΡΠ΅ΡΠ΅ Π·Π°Π΄Π½ΠΈ Π²ΡΠ°ΡΠΈΡΠΊΠΈ ΠΈΠ»ΠΈ ΡΠΈΡΡΠΎΠ²ΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈ. ΠΠΎΠΆΠ΅ ΡΡΡΠΎ Π΄Π° ΡΠ΅ Π½Π°ΠΌΠ΅ΡΠΈ opcodes
Π·Π° ΠΊΡΠΏ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈ.
ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ°Π·ΠΎΠΏΠ°ΠΊΠΎΠ²Π°ΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°, Π·Π° Π΄Π° ΡΡΡΡΠΈΡΠ΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Ρ ΠΏΠ°ΡΠΎΠ»Π° (passwd, shadow ΠΈ Ρ.Π½.) ΠΈ Π΄Π° ΡΠ΅ ΠΎΠΏΠΈΡΠ°ΡΠ΅ Π΄Π° ΡΠ°Π·Π±ΠΈΠ΅ΡΠ΅ Ρ Π΅ΡΠΎΠ²Π΅ΡΠ΅ Π½Π° ΠΏΠ°ΡΠΎΠ»Π°ΡΠ°. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·Π²ΡΡΡΠΈΡΠ΅ Π΄Π²ΠΎΠΈΡΠ΅Π½ Π°Π½Π°Π»ΠΈΠ· ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²Π° ΠΈΠ»ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ ΡΠ°ΠΉΠ»Π°. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·Π²ΡΡΡΠΈΡΠ΅ Π°Π½Π°Π»ΠΈΠ· Π½Π° Π΅Π½ΡΡΠΎΠΏΠΈΡΡΠ° Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅, Π·Π° Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅ ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ°Π½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈΠ»ΠΈ ΠΊΠΎΠ΄ΠΈΡΠ°Π½ΠΈ ΠΊΠ»ΡΡΠΎΠ²Π΅ Π·Π° ΡΠΈΡΡΠΎΠ²Π°Π½Π΅. ΠΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π°, Π±Π΅Π· Π΄Π° ΡΠ΅ Π½Π°Π»Π°Π³Π° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡ ΠΊΠΎΠ΄.
ΠΠ°ΡΠΎ ΡΡΠ»ΠΎ Π²ΡΠΈΡΠΊΠΎ, ΠΎΡ ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ Π½ΡΠΆΠ΄Π°Π΅ΡΠ΅, Π΅ ΡΠ°ΠΌ π
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ binwalk?
ΠΡΠ½ΠΎΠ²Π½Π°ΡΠ° Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ° Π½Π° binwalk Π΅ Π½Π΅Π³ΠΎΠ²ΠΎΡΠΎ ΡΠΊΠ°Π½ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ. Binwalk ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠΊΠ°Π½ΠΈΡΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΡΡΠΌΡΠ΅ΡΠ° Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π²Π³ΡΠ°Π΄Π΅Π½ΠΈ ΡΠΈΠΏΠΎΠ²Π΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ.
ΠΠ½Π°Π΅ΡΠ΅ Π»ΠΈ ΠΏΠΎΠΌΠΎΡΠ½Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄Π΅Π½ ΡΠ΅Π΄ file
?
file /bin/bash
/bin/bash: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/l, for GNU/Linux 3.2.0, BuildID[sha1]=12f73d7a8e226c663034529c8dd20efec22dde54, stripped
ΠΡΠ±ΠΎΡ file
ΠΏΡΠ΅Π³Π»Π΅ΠΆΠ΄Π° Π·Π°Π³Π»Π°Π²ΠΊΠ°ΡΠ° Π½Π° ΡΠ°ΠΉΠ»Π° ΠΈ ΡΡΡΡΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠ° (ΠΌΠ°Π³ΠΈΡΠ΅ΡΠΊΠΎ ΡΠΈΡΠ»ΠΎ), Π·Π° Π΄Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈ ΡΠΈΠΏΠ° Π½Π° ΡΠ°ΠΉΠ»Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π°ΠΊΠΎ ΡΠ°ΠΉΠ»ΡΡ Π·Π°ΠΏΠΎΡΠ²Π° Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎΡΡΡΠ° ΠΎΡ Π±Π°ΠΉΡΠΎΠ²Π΅ 0x89 0x50 0x4E 0x47 0x0D 0x0A 0x1A 0x0A
, ΡΡ Π·Π½Π°Π΅, ΡΠ΅ ΡΠΎΠ²Π° Π΅ PNG ΡΠ°ΠΉΠ». ΠΠ°
Binwalk ΡΠ°Π±ΠΎΡΠΈ ΠΏΠΎ ΡΡΡΠΈΡ Π½Π°ΡΠΈΠ½. ΠΠΎ Π²ΠΌΠ΅ΡΡΠΎ Π΄Π° ΡΡΡΡΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ ΡΠ°ΠΌΠΎ Π² Π½Π°ΡΠ°Π»ΠΎΡΠΎ Π½Π° ΡΠ°ΠΉΠ»Π°, binwalk ΡΠ΅ ΡΠΊΠ°Π½ΠΈΡΠ° ΡΠ΅Π»ΠΈΡ ΡΠ°ΠΉΠ». Π Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅, binwalk ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π²Π»ΠΈΡΠ° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, Π½Π°ΠΌΠ΅ΡΠ΅Π½ΠΈ Π² ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ.
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ file
ΠΈ binwalk
ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° libmagic
Π·Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ. ΠΠΎ binwalk
ΠΎΡΠ²Π΅Π½ ΡΠΎΠ²Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΠΏΠΈΡΡΠΊ Ρ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΌΠ°Π³ΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ Π·Π° ΡΡΡΡΠ΅Π½Π΅ Π½Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ°Π½ΠΈ/ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ°Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, Π·Π°Π³Π»Π°Π²ΠΊΠΈ Π½Π° ΡΡΡΠΌΡΠ΅ΡΠ°, Linux ΡΠ΄ΡΠ°, Π·Π°ΡΠ΅ΠΆΠ΄Π°ΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ, ΡΠ°ΠΉΠ»ΠΎΠ²ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ ΠΈ Ρ.Π½.
ΠΠ΅ΠΊΠ° ΡΠ΅ Π·Π°Π±Π°Π²Π»ΡΠ²Π°ΠΌΠ΅?
ΠΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ Π½Π° binwalk
Binwalk ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Linux, OSX, FreeBSD ΠΈ Windows.
ΠΠ° Π΄Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅ Π½Π°ΠΉ-Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° binwalk, ΠΌΠΎΠΆΠ΅ΡΠ΅
Binwalk ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΎΠΏΡΠΈΠΈ:
$ binwalk
Binwalk v2.2.0
Craig Heffner, ReFirmLabs
https://github.com/ReFirmLabs/binwalk
Usage: binwalk [OPTIONS] [FILE1] [FILE2] [FILE3] ...
Signature Scan Options:
-B, --signature Scan target file(s) for common file signatures
-R, --raw=<str> Scan target file(s) for the specified sequence of bytes
-A, --opcodes Scan target file(s) for common executable opcode signatures
-m, --magic=<file> Specify a custom magic file to use
-b, --dumb Disable smart signature keywords
-I, --invalid Show results marked as invalid
-x, --exclude=<str> Exclude results that match <str>
-y, --include=<str> Only show results that match <str>
Extraction Options:
-e, --extract Automatically extract known file types
-D, --dd=<type:ext:cmd> Extract <type> signatures, give the files an extension of <ext>, and execute <cmd>
-M, --matryoshka Recursively scan extracted files
-d, --depth=<int> Limit matryoshka recursion depth (default: 8 levels deep)
-C, --directory=<str> Extract files/folders to a custom directory (default: current working directory)
-j, --size=<int> Limit the size of each extracted file
-n, --count=<int> Limit the number of extracted files
-r, --rm Delete carved files after extraction
-z, --carve Carve data from files, but don't execute extraction utilities
-V, --subdirs Extract into sub-directories named by the offset
Entropy Options:
-E, --entropy Calculate file entropy
-F, --fast Use faster, but less detailed, entropy analysis
-J, --save Save plot as a PNG
-Q, --nlegend Omit the legend from the entropy plot graph
-N, --nplot Do not generate an entropy plot graph
-H, --high=<float> Set the rising edge entropy trigger threshold (default: 0.95)
-L, --low=<float> Set the falling edge entropy trigger threshold (default: 0.85)
Binary Diffing Options:
-W, --hexdump Perform a hexdump / diff of a file or files
-G, --green Only show lines containing bytes that are the same among all files
-i, --red Only show lines containing bytes that are different among all files
-U, --blue Only show lines containing bytes that are different among some files
-u, --similar Only display lines that are the same between all files
-w, --terse Diff all files, but only display a hex dump of the first file
Raw Compression Options:
-X, --deflate Scan for raw deflate compression streams
-Z, --lzma Scan for raw LZMA compression streams
-P, --partial Perform a superficial, but faster, scan
-S, --stop Stop after the first result
General Options:
-l, --length=<int> Number of bytes to scan
-o, --offset=<int> Start scan at this file offset
-O, --base=<int> Add a base address to all printed offsets
-K, --block=<int> Set file block size
-g, --swap=<int> Reverse every n bytes before scanning
-f, --log=<file> Log results to file
-c, --csv Log results to file in CSV format
-t, --term Format output to fit the terminal window
-q, --quiet Suppress output to stdout
-v, --verbose Enable verbose output
-h, --help Show help output
-a, --finclude=<str> Only scan files whose names match this regex
-p, --fexclude=<str> Do not scan files whose names match this regex
-s, --status=<int> Enable the status server on the specified port
Π‘ΠΊΠ°Π½ΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ
ΠΠ΅ΠΊΠ° Π·Π°ΠΏΠΎΡΠ½Π΅ΠΌ Ρ ΡΡΡΡΠ΅Π½Π΅ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ Π² ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ (ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ ΡΠ°ΠΉΡΠ°
Π‘ΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° binwalk Ρ ΠΎΠΏΡΠΈΡΡΠ° --signature:
$ binwalk --signature --term archer-c7.bin
DECIMAL HEXADECIMAL DESCRIPTION
------------------------------------------------------------------------------------------
21876 0x5574 U-Boot version string, "U-Boot 1.1.4-g4480d5f9-dirty (May
20 2019 - 18:45:16)"
21940 0x55B4 CRC32 polynomial table, big endian
23232 0x5AC0 uImage header, header size: 64 bytes, header CRC:
0x386C2BD5, created: 2019-05-20 10:45:17, image size:
41162 bytes, Data Address: 0x80010000, Entry Point:
0x80010000, data CRC: 0xC9CD1E38, OS: Linux, CPU: MIPS,
image type: Firmware Image, compression type: lzma, image
name: "u-boot image"
23296 0x5B00 LZMA compressed data, properties: 0x5D, dictionary size:
8388608 bytes, uncompressed size: 97476 bytes
64968 0xFDC8 XML document, version: "1.0"
78448 0x13270 uImage header, header size: 64 bytes, header CRC:
0x78A267FF, created: 2019-07-26 07:46:14, image size:
1088500 bytes, Data Address: 0x80060000, Entry Point:
0x80060000, data CRC: 0xBB9D4F94, OS: Linux, CPU: MIPS,
image type: Multi-File Image, compression type: lzma,
image name: "MIPS OpenWrt Linux-3.3.8"
78520 0x132B8 LZMA compressed data, properties: 0x6D, dictionary size:
8388608 bytes, uncompressed size: 3164228 bytes
1167013 0x11CEA5 Squashfs filesystem, little endian, version 4.0,
compression:xz, size: 14388306 bytes, 2541 inodes,
blocksize: 65536 bytes, created: 2019-07-26 07:51:38
15555328 0xED5B00 gzip compressed data, from Unix, last modified: 2019-07-26
07:51:41
Π‘Π΅Π³Π° ΠΈΠΌΠ°ΠΌΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΡΠΎΠ²Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅.
ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ 0x5AC0
ΠΈ ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ°Π½ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π±ΡΡΡΠ»ΠΎΡΠ΄ΡΡΠ° Π² 0x5B00
). ΠΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° Π·Π°Π³Π»Π°Π²ΠΊΠ°ΡΠ° uImage ΠΏΡΠΈ 0x13270 Π·Π½Π°Π΅ΠΌ, ΡΠ΅ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ° Π΅ MIPS, Π° ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux Π΅ Π²Π΅ΡΡΠΈΡ 3.3.8. Π Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, Π½Π°ΠΌΠ΅ΡΠ΅Π½ΠΎ Π² 0x11CEA5
, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ ΡΠΎΠ²Π° rootfs
Π΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π° ΡΠΈΡΡΠ΅ΠΌΠ° squashfs
.
ΠΠ΅ΠΊΠ° ΡΠ΅Π³Π° ΠΈΠ·Π²Π»Π΅ΡΠ΅ΠΌ Π±ΡΡΡΠ»ΠΎΡΠ΄ΡΡΠ° (U-Boot) Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° dd
:
$ dd if=archer-c7.bin of=u-boot.bin.lzma bs=1 skip=23296 count=41162
41162+0 records in
41162+0 records out
41162 bytes (41 kB, 40 KiB) copied, 0,0939608 s, 438 kB/s
Π’ΡΠΉ ΠΊΠ°ΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π΅ ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ°Π½ΠΎ Ρ LZMA, ΡΡΡΠ±Π²Π° Π΄Π° Π³ΠΎ Π΄Π΅ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ°ΠΌΠ΅:
$ unlzma u-boot.bin.lzma
ΠΠ΅ΡΠ΅ ΠΈΠΌΠ°ΠΌΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° U-Boot:
$ ls -l u-boot.bin
-rw-rw-r-- 1 sprado sprado 97476 Fev 5 08:48 u-boot.bin
ΠΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΠΊΠ°ΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅ ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π·Π° bootargs
?
$ strings u-boot.bin | grep bootargs
bootargs
bootargs=console=ttyS0,115200 board=AP152 rootfstype=squashfs init=/etc/preinit mtdparts=spi0.0:128k(factory-uboot),192k(u-boot),64k(ART),1536k(uImage),14464k@0x1e0000(rootfs) mem=128M
ΠΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° Π½Π° ΡΡΠ΅Π΄Π°ΡΠ° Π½Π° U-Boot bootargs
ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Π·Π° ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ ΠΊΡΠΌ ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux. Π ΠΎΡ Π³ΠΎΡΠ½ΠΎΡΠΎ ΠΈΠΌΠ°ΠΌΠ΅ ΠΏΠΎ-Π΄ΠΎΠ±ΡΠΎ ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π·Π° ΡΠ»Π°Ρ ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΡΠΎ.
ΠΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΠΊΠ°ΠΆΠ΅ΡΠ΅ Π·Π° ΠΈΠ·Π²Π»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux?
$ dd if=archer-c7.bin of=uImage bs=1 skip=78448 count=1088572
1088572+0 records in
1088572+0 records out
1088572 bytes (1,1 MB, 1,0 MiB) copied, 1,68628 s, 646 kB/s
ΠΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌ Π΄Π°Π»ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π΅ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΎ ΡΡΠΏΠ΅ΡΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° file
:
$ file uImage
uImage: u-boot legacy uImage, MIPS OpenWrt Linux-3.3.8, Linux/MIPS, Multi-File Image (lzma), 1088500 bytes, Fri Jul 26 07:46:14 2019, Load Address: 0x80060000, Entry Point: 0x80060000, Header CRC: 0x78A267FF, Data CRC: 0xBB9D4F94
Π€Π°ΠΉΠ»ΠΎΠ²ΠΈΡΡ ΡΠΎΡΠΌΠ°Ρ uImage Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux Ρ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π΅Π½ Ρ Π΅Π΄ΡΡ. ΠΠ΅ΠΊΠ° ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π΅ΠΌ ΡΠ°Π·ΠΈ Π·Π°Π³Π»Π°Π²ΠΊΠ°, Π·Π° Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΠΌ ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»Π½ΠΎΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux:
$ dd if=uImage of=Image.lzma bs=1 skip=72
1088500+0 records in
1088500+0 records out
1088500 bytes (1,1 MB, 1,0 MiB) copied, 1,65603 s, 657 kB/s
ΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π΅ ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ°Π½ΠΎ, ΡΠ°ΠΊΠ° ΡΠ΅ Π½Π΅ΠΊΠ° Π³ΠΎ ΡΠ°Π·ΠΎΠΏΠ°ΠΊΠΎΠ²Π°ΠΌΠ΅:
$ unlzma Image.lzma
ΠΠ΅ΡΠ΅ ΠΈΠΌΠ°ΠΌΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux:
$ ls -la Image
-rw-rw-r-- 1 sprado sprado 3164228 Fev 5 10:51 Image
ΠΠ°ΠΊΠ²ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ Ρ ΠΎΠ±ΡΠ°Π·Π° Π½Π° ΡΠ΄ΡΠΎΡΠΎ? ΠΠΎΠΆΠ΅ΠΌ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π° ΡΡΡΡΠΈΠΌ Π² Π½ΠΈΠ·ΠΎΠ²Π΅ΡΠ΅ Π² ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΈ Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈΠΌ Π²Π΅ΡΡΠΈΡΡΠ° Π½Π° ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux ΠΈ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ Π·Π° ΡΡΠ΅Π΄Π°ΡΠ°, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΠ΄ΡΠΎΡΠΎ:
$ strings Image | grep "Linux version"
Linux version 3.3.8 (leo@leo-MS-7529) (gcc version 4.6.3 20120201 (prerelease) (Linaro GCC 4.6-2012.02) ) #1 Mon May 20 18:53:02 CST 2019
ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ ΡΡΡΠΌΡΠ΅ΡΡΡ Π±Π΅ΡΠ΅ ΠΏΡΡΠ½Π°Ρ ΠΌΠΈΠ½Π°Π»Π°ΡΠ° Π³ΠΎΠ΄ΠΈΠ½Π° (2019), ΠΊΠΎΠ³Π°ΡΠΎ ΠΏΠΈΡΠ° ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ, ΡΠΎΠΉ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΡΠ°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux (3.3.8), ΠΈΠ·Π΄Π°Π΄Π΅Π½ΠΎ ΠΏΡΠ΅Π· 2012 Π³., ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ΠΎ Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° GCC (4.6) ΡΡΡΠΎ ΠΎΡ 2012 Π³.!
ΠΡΠ΅ ΠΎΡΠ΅ Π»ΠΈ ΡΠ΅ Π΄ΠΎΠ²Π΅ΡΡΠ²Π°ΡΠ΅ Π½Π° Π²Π°ΡΠΈΡΠ΅ ΡΡΡΠ΅ΡΠΈ Π² ΠΎΡΠΈΡΠ° ΠΈ Ρ Π΄ΠΎΠΌΠ°?
Π‘ ΠΎΠΏΡΠΈΡ --opcodes
ΠΌΠΎΠΆΠ΅ΠΌ ΡΡΡΠΎ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ binwalk, Π·Π° Π΄Π° ΡΡΡΡΠΈΠΌ ΠΌΠ°ΡΠΈΠ½Π½ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΈ Π΄Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠΌΠ΅ ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ½Π°ΡΠ° Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ° Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ:
$ binwalk --opcodes Image
DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
2400 0x960 MIPS instructions, function epilogue
2572 0xA0C MIPS instructions, function epilogue
2828 0xB0C MIPS instructions, function epilogue
ΠΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΠΊΠ°ΠΆΠ΅ΡΠ΅ Π·Π° ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΡΠ°ΠΉΠ»ΠΎΠ²Π° ΡΠΈΡΡΠ΅ΠΌΠ°? ΠΠΌΠ΅ΡΡΠΎ Π΄Π° ΠΈΠ·Π²Π»ΠΈΡΠ°ΠΌΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΡΡΡΠ½ΠΎ, Π½Π΅ΠΊΠ° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΎΠΏΡΠΈΡΡΠ° binwalk --extract
:
$ binwalk --extract --quiet archer-c7.bin
Π¦ΡΠ»Π°ΡΠ° ΠΎΡΠ½ΠΎΠ²Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π° ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ΅ Π±ΡΠ΄Π΅ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½Π° Π² ΠΏΠΎΠ΄Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ:
$ cd _archer-c7.bin.extracted/squashfs-root/
$ ls
bin dev etc lib mnt overlay proc rom root sbin sys tmp usr var www
$ cat etc/banner
MM NM MMMMMMM M M
$MMMMM MMMMM MMMMMMMMMMM MMM MMM
MMMMMMMM MM MMMMM. MMMMM:MMMMMM: MMMM MMMMM
MMMM= MMMMMM MMM MMMM MMMMM MMMM MMMMMM MMMM MMMMM'
MMMM= MMMMM MMMM MM MMMMM MMMM MMMM MMMMNMMMMM
MMMM= MMMM MMMMM MMMMM MMMM MMMM MMMMMMMM
MMMM= MMMM MMMMMM MMMMM MMMM MMMM MMMMMMMMM
MMMM= MMMM MMMMM, NMMMMMMMM MMMM MMMM MMMMMMMMMMM
MMMM= MMMM MMMMMM MMMMMMMM MMMM MMMM MMMM MMMMMM
MMMM= MMMM MM MMMM MMMM MMMM MMMM MMMM MMMM
MMMM$ ,MMMMM MMMMM MMMM MMM MMMM MMMMM MMMM MMMM
MMMMMMM: MMMMMMM M MMMMMMMMMMMM MMMMMMM MMMMMMM
MMMMMM MMMMN M MMMMMMMMM MMMM MMMM
MMMM M MMMMMMM M M
M
---------------------------------------------------------------
For those about to rock... (%C, %R)
---------------------------------------------------------------
Π‘Π΅Π³Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΡΠ°Π²ΠΈΠΌ ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅ΡΠ°.
ΠΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΡΡΡΠΈΠΌ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, Ρ
Π΅ΡΠΎΠ²Π΅ Π½Π° ΠΏΠ°ΡΠΎΠ»ΠΈ, ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΡΠΊΠΈ ΠΊΠ»ΡΡΠΎΠ²Π΅ ΠΈ ΡΠΈΡΡΠΎΠ²ΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈ. ΠΠΎΠΆΠ΅ΠΌ Π΄Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ Π΄Π²ΠΎΠΈΡΠ½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π·Π°
Π‘
$ ls
bin dev etc lib mnt overlay proc rom root sbin sys tmp usr var www
$ cp /usr/bin/qemu-mips-static .
$ sudo chroot . ./qemu-mips-static bin/busybox
BusyBox v1.19.4 (2019-05-20 18:13:49 CST) multi-call binary.
Copyright (C) 1998-2011 Erik Andersen, Rob Landley, Denys Vlasenko
and others. Licensed under GPLv2.
See source distribution for full notice.
Usage: busybox [function] [arguments]...
or: busybox --list[-full]
or: function [arguments]...
BusyBox is a multi-call binary that combines many common Unix
utilities into a single executable. Most people will create a
link to busybox for each function they wish to use and BusyBox
will act like whatever it was invoked as.
Currently defined functions:
[, [[, addgroup, adduser, arping, ash, awk, basename, cat, chgrp, chmod, chown, chroot, clear, cmp, cp, crond, crontab, cut, date, dd, delgroup, deluser, dirname, dmesg, echo, egrep, env, expr, false,
fgrep, find, free, fsync, grep, gunzip, gzip, halt, head, hexdump, hostid, id, ifconfig, init, insmod, kill, killall, klogd, ln, lock, logger, ls, lsmod, mac_addr, md5sum, mkdir, mkfifo, mknod, mktemp,
mount, mv, nice, passwd, pgrep, pidof, ping, ping6, pivot_root, poweroff, printf, ps, pwd, readlink, reboot, reset, rm, rmdir, rmmod, route, sed, seq, sh, sleep, sort, start-stop-daemon, strings,
switch_root, sync, sysctl, tail, tar, tee, telnet, test, tftp, time, top, touch, tr, traceroute, true, udhcpc, umount, uname, uniq, uptime, vconfig, vi, watchdog, wc, wget, which, xargs, yes, zcat
Π‘ΡΡΠ°Ρ ΠΎΡΠ΅Π½! ΠΠΎ ΠΈΠΌΠ°ΠΉΡΠ΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄, ΡΠ΅ Π²Π΅ΡΡΠΈΡΡΠ° Π½Π° BusyBox Π΅ 1.19.4. Π’ΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° BusyBoxΠΈΠ·Π΄Π°Π΄Π΅Π½ ΠΏΡΠ΅Π· Π°ΠΏΡΠΈΠ» 2012 Π³.
Π’Π°ΠΊΠ° ΡΠ΅ TP-Link ΠΏΡΡΠΊΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΡΡΡΠΌΡΠ΅ΡΠ° ΠΏΡΠ΅Π· 2019 Π³., ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΡΠΎΡΡΡΠ΅Ρ (GCC ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Π»Π½Π° Π²Π΅ΡΠΈΠ³Π°, ΡΠ΄ΡΠΎ, BusyBox ΠΈ Ρ.Π½.) ΠΎΡ 2012 Π³.!
Π‘Π΅Π³Π° ΡΠ°Π·Π±ΠΈΡΠ°ΡΠ΅ Π»ΠΈ Π·Π°ΡΠΎ Π²ΠΈΠ½Π°Π³ΠΈ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΌ OpenWRT Π½Π° ΠΌΠΎΠΈΡΠ΅ ΡΡΡΠ΅ΡΠΈ?
Π’ΠΎΠ²Π° Π½Π΅ Π΅ Π²ΡΠΈΡΠΊΠΎ
Binwalk ΠΌΠΎΠΆΠ΅ ΡΡΡΠΎ Π΄Π° ΠΈΠ·Π²ΡΡΡΠ²Π° Π΅Π½ΡΡΠΎΠΏΠΈΠ΅Π½ Π°Π½Π°Π»ΠΈΠ·, Π΄Π° ΠΎΡΠΏΠ΅ΡΠ°ΡΠ²Π° Π½Π΅ΠΎΠ±ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈ Π΅Π½ΡΡΠΎΠΏΠΈΠΉΠ½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ Π΄Π° Π³Π΅Π½Π΅ΡΠΈΡΠ° Π΅Π½ΡΡΠΎΠΏΠΈΠΉΠ½ΠΈ Π³ΡΠ°ΡΠΈΠΊΠΈ. ΠΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΡΠ΅ Π½Π°Π±Π»ΡΠ΄Π°Π²Π° ΠΏΠΎΠ²Π΅ΡΠ΅ Π΅Π½ΡΡΠΎΠΏΠΈΡ, ΠΊΠΎΠ³Π°ΡΠΎ Π±Π°ΠΉΡΠΎΠ²Π΅ΡΠ΅ Π² ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΡΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ. Π’ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΡΡΠ΄ΡΡΠΆΠ° ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½, ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ°Π½ ΠΈΠ»ΠΈ ΠΎΠ±ΡΡΡΡΠΈΡΠ°Π½ ΡΠ°ΠΉΠ». Hardcore ΠΊΠ»ΡΡ Π·Π° ΡΠΈΡΡΠΎΠ²Π°Π½Π΅? ΠΠ°ΡΠΎ Π½Π΅.
ΠΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡΠ° --raw
Π·Π° ΡΡΡΡΠ΅Π½Π΅ Π½Π° ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎΡΡ ΠΎΡ Π½Π΅ΠΎΠ±ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈ Π±Π°ΠΉΡΠΎΠ²Π΅ Π² ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ --hexdump
Π·Π° ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ΅ΡΡΠ½Π°Π΄Π΅ΡΠ΅ΡΠΈΡΠ΅Π½ Π΄ΡΠΌΠΏ, ΠΊΠΎΠΉΡΠΎ ΡΡΠ°Π²Π½ΡΠ²Π° Π΄Π²Π° ΠΈΠ»ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ Π²Ρ
ΠΎΠ΄Π½ΠΈ ΡΠ°ΠΉΠ»Π°.
--magic
, ΠΈΠ»ΠΈ ΠΊΠ°ΡΠΎ Π³ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ ΠΊΡΠΌ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡΠ° $ HOME / .config / binwalk / magic
.
ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° binwalk Π½Π°
ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ binwalk
Π’Π°ΠΌ
import binwalk
binwalk.scan()
Π‘ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° API Π½Π° Python ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠΎ Π΄Π° ΡΡΠ·Π΄Π°Π²Π°ΡΠ΅
Π‘ΡΡΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°
Π’Π°ΠΊΠ° ΡΠ΅ Π·Π°ΡΠΎ Π½Π΅ ΠΈΠ·ΡΠ΅Π³Π»ΠΈΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΡΡΠΌΡΠ΅ΡΠ° ΠΎΡ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ ΠΈ Π½Π΅ ΠΎΠΏΠΈΡΠ°ΡΠ΅ binwalk? ΠΠ±Π΅ΡΠ°Π²Π°ΠΌ, ΡΠ΅ ΡΠ΅ ΡΠ΅ Π·Π°Π±Π°Π²Π»ΡΠ²Π°ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ π
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com