ΠΡΠ΅ Π½Π΅ΠΊΠΎΠ»ΠΈΠΊΠΎ Π΄Π°Π½Π° ΠΎΠ΄Π»ΡΡΠΈΠΎ ΡΠ°ΠΌ Π΄Π° ΠΈΠ·Π²ΡΡΠΈΠΌ ΠΎΠ±ΡΠ½ΡΡΠΈ ΠΈΠ½ΠΆΠ΅ΡΠ΅ΡΠΈΠ½Π³ ΡΠΈΡΠΌΠ²Π΅ΡΠ° ΡΠ²ΠΎΠ³ ΡΡΡΠ΅ΡΠ° ΠΊΠΎΡΠΈΡΡΠ΅ΡΠΈ Π±ΠΈΠ½Π²Π°Π»ΠΊ.
ΠΡΠΏΠΈΠΎ ΡΠ°ΠΌ ΡΠ΅Π±Π΅
Π‘Π²Π°ΠΊΠΈ ΠΏΡΡ ΠΊΠ°Π΄Π° ΠΊΡΠΏΠΈΠΌ Π½ΠΎΠ²ΠΈ ΡΡΡΠ΅Ρ, ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΌ
ΠΠΎΡΡΠΎ ΡΠ°ΠΌ ΠΏΡΠ΅ΡΠ·Π΅ΠΎ ΠΠΏΠ΅Π½ΠΠ Π’, ΡΠ°ΠΊΠΎΡΠ΅ ΡΠ°ΠΌ
Π¨ΡΠ° ΡΠ΅ Π±ΠΈΠ½Π²Π°Π»ΠΊ?
ΠΡΠ΅ΠΈΡΠ°ΠΎ 2010. ΠΡΠ΅ΡΠ³ Π₯Π΅ΡΠ½Π΅Ρ, Π±ΠΈΠ½Π²Π°Π»ΠΊ ΠΌΠΎΠΆΠ΅ ΡΠΊΠ΅Π½ΠΈΡΠ°ΡΠΈ ΡΠ»ΠΈΠΊΠ΅ ΡΠΈΡΠΌΠ²Π΅ΡΠ° ΠΈ ΠΏΡΠΎΠ½Π°ΡΠΈ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ΅, ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠΎΠ²Π°ΡΠΈ ΠΈ ΠΈΠ·Π΄Π²ΠΎΡΠΈΡΠΈ ΡΠ»ΠΈΠΊΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°, ΠΈΠ·Π²ΡΡΠ½ΠΈ ΠΊΠΎΠ΄, ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΎΠ²Π°Π½Π΅ Π°ΡΡ ΠΈΠ²Π΅, ΠΏΠΎΠΊΡΠ΅ΡΠ°ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅ ΠΈ ΠΊΠ΅ΡΠ½Π΅Π»Π΅, ΡΠΎΡΠΌΠ°ΡΠ΅ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° ΠΊΠ°ΠΎ ΡΡΠΎ ΡΡ ΠΠΠΠ ΠΈ ΠΠΠ€ ΠΈ ΡΠΎΡ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΎΠ³Π°.
ΠΠΎΠΆΠ΅ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈΡΠΈ Π±ΠΈΠ½Π²Π°Π»ΠΊ Π·Π° ΠΎΠ±ΡΠ½ΡΡΠΈ ΠΈΠ½ΠΆΠ΅ΡΠ΅ΡΠΈΠ½Π³ ΡΠΈΡΠΌΠ²Π΅ΡΠ° Π΄Π° Π±ΠΈΡΡΠ΅ ΡΠ°Π·ΡΠΌΠ΅Π»ΠΈ ΠΊΠ°ΠΊΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ΅. ΠΡΠ΅ΡΡΠ°ΠΆΠΈΡΠ΅ ΡΠ°ΡΠΈΠ²ΠΎΡΡΠΈ Ρ Π±ΠΈΠ½Π°ΡΠ½ΠΈΠΌ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°ΠΌΠ°, ΠΈΠ·Π²ΡΡΠΈΡΠ΅ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ΅ ΠΈ ΠΏΠΎΡΡΠ°ΠΆΠΈΡΠ΅ Π±Π°ΡΠΊΠ΄ΠΎΠΎΡ ΠΈΠ»ΠΈ Π΄ΠΈΠ³ΠΈΡΠ°Π»Π½Π΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ΅. Π’Π°ΠΊΠΎΡΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠ½Π°ΡΠΈ opcodes
Π·Π° Π³ΠΎΠΌΠΈΠ»Ρ ΡΠ°Π·Π»ΠΈΡΠΈΡΠΈΡ
Π¦ΠΠ£-Π°.
ΠΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·Π΄Π²ΠΎΡΠΈΡΠΈ ΡΠ»ΠΈΠΊΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° Π΄Π° Π±ΠΈΡΡΠ΅ ΠΏΠΎΡΡΠ°ΠΆΠΈΠ»ΠΈ ΠΎΠ΄ΡΠ΅ΡΠ΅Π½Π΅ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ΅ Π»ΠΎΠ·ΠΈΠ½ΠΊΠΈ (ΠΏΠ°ΡΡΠ²Π΄, ΡΡ Π°Π΄ΠΎΠ², ΠΈΡΠ΄.) ΠΈ ΠΏΠΎΠΊΡΡΠ°Π»ΠΈ Π΄Π° ΡΠ°Π·Π±ΠΈΡΠ΅ΡΠ΅ Ρ Π΅ΡΠΎΠ²Π΅ Π»ΠΎΠ·ΠΈΠ½ΠΊΠΈ. ΠΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·Π²ΡΡΠΈΡΠΈ Π±ΠΈΠ½Π°ΡΠ½ΠΎ ΡΠ°ΡΡΠ»Π°ΡΠΈΠ²Π°ΡΠ΅ ΠΈΠ·ΠΌΠ΅ΡΡ Π΄Π²Π΅ ΠΈΠ»ΠΈ Π²ΠΈΡΠ΅ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·Π²ΡΡΠΈΡΠ΅ Π΅Π½ΡΡΠΎΠΏΠΈΡΡΠΊΡ Π°Π½Π°Π»ΠΈΠ·Ρ ΠΏΠΎΠ΄Π°ΡΠ°ΠΊΠ° Π΄Π° Π±ΠΈΡΡΠ΅ ΠΏΠΎΡΡΠ°ΠΆΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΏΡΠΈΠΌΠΎΠ²Π°Π½Π΅ ΠΏΠΎΠ΄Π°ΡΠΊΠ΅ ΠΈΠ»ΠΈ ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ ΠΊΡΡΡΠ΅Π²Π΅ Π·Π° ΡΠΈΡΡΠΎΠ²Π°ΡΠ΅. Π‘Π²Π΅ ΠΎΠ²ΠΎ Π±Π΅Π· ΠΏΠΎΡΡΠ΅Π±Π΅ Π·Π° ΠΏΡΠΈΡΡΡΠΏΠΎΠΌ ΠΈΠ·Π²ΠΎΡΠ½ΠΎΠΌ ΠΊΠΎΠ΄Ρ.
ΠΠ΅Π½Π΅ΡΠ°Π»Π½ΠΎ, ΡΠ²Π΅ ΡΡΠΎ Π²Π°ΠΌ ΡΡΠ΅Π±Π° ΡΠ΅ ΡΡ :)
ΠΠ°ΠΊΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ΅ Π±ΠΈΠ½Π²Π°Π»ΠΊ?
ΠΠ»Π°Π²Π½Π° ΠΊΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ° Π±ΠΈΠ½Π²Π°Π»ΠΊ-Π° ΡΠ΅ ΡΠ΅Π³ΠΎΠ²ΠΎ ΡΠΊΠ΅Π½ΠΈΡΠ°ΡΠ΅ ΠΏΠΎΡΠΏΠΈΡΠ°. ΠΠΈΠ½Π²Π°Π»ΠΊ ΠΌΠΎΠΆΠ΅ ΡΠΊΠ΅Π½ΠΈΡΠ°ΡΠΈ ΡΠ»ΠΈΠΊΡ ΡΠΈΡΠΌΠ²Π΅ΡΠ° Π΄Π° Π±ΠΈ ΡΡΠ°ΠΆΠΈΠΎ ΡΠ°Π·Π»ΠΈΡΠΈΡΠ΅ ΡΠ³ΡΠ°ΡΠ΅Π½Π΅ ΡΠΈΠΏΠΎΠ²Π΅ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ΅ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°.
ΠΠ° Π»ΠΈ Π·Π½Π°ΡΠ΅ ΡΡΠ»ΡΠΆΠ½ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π½Π΅ Π»ΠΈΠ½ΠΈΡΠ΅ 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
, Π·Π½Π° Π΄Π° ΡΠ΅ ΡΠΎ ΠΠΠ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°. Π½Π°
ΠΠΈΠ½Π²Π°Π»ΠΊ ΡΠ°Π΄ΠΈ Π½Π° ΠΈΡΡΠΈ Π½Π°ΡΠΈΠ½. ΠΠ»ΠΈ ΡΠΌΠ΅ΡΡΠΎ Π΄Π° ΡΡΠ°ΠΆΠΈ ΠΏΠΎΡΠΏΠΈΡΠ΅ ΡΠ°ΠΌΠΎ Π½Π° ΠΏΠΎΡΠ΅ΡΠΊΡ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ΅, Π±ΠΈΠ½Π²Π°Π»ΠΊ ΡΠ΅ ΡΠΊΠ΅Π½ΠΈΡΠ°ΡΠΈ ΡΠ΅Π»Ρ Π΄Π°ΡΠΎΡΠ΅ΠΊΡ. ΠΠΎΡΠ΅Π΄ ΡΠΎΠ³Π°, Π±ΠΈΠ½Π²Π°Π»ΠΊ ΠΌΠΎΠΆΠ΅ ΠΈΠ·Π΄Π²ΠΎΡΠΈΡΠΈ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ΅ ΠΊΠΎΡΠ΅ ΡΠ΅ Π½Π°Π»Π°Π·Π΅ Π½Π° ΡΠ»ΠΈΡΠΈ.
ΠΠ»Π°Ρ file
ΠΈ binwalk
ΠΊΠΎΡΠΈΡΡΠΈΡΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ libmagic
Π·Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΡ ΠΏΠΎΡΠΏΠΈΡΠ° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°. ΠΠ»ΠΈ 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 --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
). ΠΠ° ΠΎΡΠ½ΠΎΠ²Ρ Π·Π°Π³Π»Π°Π²ΡΠ° ΡΠΠΌΠ°Π³Π΅ Π½Π° 0ΠΊ13270, Π·Π½Π°ΠΌΠΎ Π΄Π° ΡΠ΅ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ° ΠΠΠΠ‘ ΠΈ Π΄Π° ΡΠ΅ ΠΠΈΠ½ΡΠΊ ΠΊΠ΅ΡΠ½Π΅Π» Π²Π΅ΡΠ·ΠΈΡΠ° 3.3.8. Π Π½Π° ΠΎΡΠ½ΠΎΠ²Ρ ΡΠ»ΠΈΠΊΠ΅ ΠΏΡΠΎΠ½Π°ΡΠ΅Π½Π΅ Π½Π° Π°Π΄ΡΠ΅ΡΠΈ 0x11CEA5
, ΡΠΎ ΠΌΠΎΠΆΠ΅ΠΌΠΎ Π²ΠΈΠ΄Π΅ΡΠΈ rootfs
ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° squashfs
.
Π₯Π°ΡΠ΄Π΅ Π΄Π° ΡΠ°Π΄Π° ΠΈΠ·Π΄Π²ΠΎΡΠΈΠΌΠΎ ΠΏΠΎΠΊΡΠ΅ΡΠ°Ρ (Π£-ΠΠΎΠΎΡ) ΠΊΠΎΡΠΈΡΡΠ΅ΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ 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
ΠΠΎΡΡΠΎ ΡΠ΅ ΡΠ»ΠΈΠΊΠ° ΠΊΠΎΠΌΠΏΡΠΈΠΌΠΎΠ²Π°Π½Π° ΠΏΠΎΠΌΠΎΡΡ ΠΠΠΠ, ΠΌΠΎΡΠ°ΠΌΠΎ Π΄Π° ΡΠ΅ Π΄Π΅ΠΊΠΎΠΌΠΏΡΠ΅ΡΡΡΠ΅ΠΌΠΎ:
$ unlzma u-boot.bin.lzma
Π‘Π°Π΄Π° ΠΈΠΌΠ°ΠΌΠΎ Π£-ΠΠΎΠΎΡ ΡΠ»ΠΈΠΊΡ:
$ 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
ΠΡΠΎΠΌΠ΅Π½ΡΠΈΠ²Π° ΠΎΠΊΡΡΠΆΠ΅ΡΠ° Π£-ΠΠΎΠΎΡ bootargs
ΠΊΠΎΡΠΈΡΡΠΈ ΡΠ΅ Π·Π° ΠΏΡΠΎΡΠ»Π΅ΡΠΈΠ²Π°ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΠ°ΡΠ° ΠΠΈΠ½ΡΠΊ ΠΊΠ΅ΡΠ½Π΅Π»Ρ. Π ΠΈΠ· Π³ΠΎΡΠ΅ Π½Π°Π²Π΅Π΄Π΅Π½ΠΎΠ³, Π±ΠΎΡΠ΅ ΡΠ°Π·ΡΠΌΠ΅ΠΌΠΎ ΡΠ»Π΅Ρ ΠΌΠ΅ΠΌΠΎΡΠΈΡΡ ΡΡΠ΅ΡΠ°ΡΠ°.
Π¨ΡΠ° ΠΊΠ°ΠΆΠ΅ΡΠ΅ Π½Π° Π΅ΠΊΡΡΡΠ°ΠΊΡΠΈΡΡ ΡΠ»ΠΈΠΊΠ΅ ΡΠ΅Π·Π³ΡΠ° ΠΠΈΠ½ΡΠΊΠ°?
$ 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
Π€ΠΎΡΠΌΠ°Ρ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ΅ ΡΠΠΌΠ°Π³Π΅ ΡΠ΅ Ρ ΠΎΡΠ½ΠΎΠ²ΠΈ ΡΠ»ΠΈΠΊΠ° ΠΠΈΠ½ΡΠΊ ΠΊΠ΅ΡΠ½Π΅Π»Π° ΡΠ° Π΄ΠΎΠ΄Π°ΡΠ½ΠΈΠΌ Π·Π°Π³Π»Π°Π²ΡΠ΅ΠΌ. Π£ΠΊΠ»ΠΎΠ½ΠΈΠΌΠΎ ΠΎΠ²ΠΎ Π·Π°Π³Π»Π°Π²ΡΠ΅ Π΄Π° Π΄ΠΎΠ±ΠΈΡΠ΅ΠΌΠΎ ΠΊΠΎΠ½Π°ΡΠ½Ρ ΡΠ»ΠΈΠΊΡ ΡΠ΅Π·Π³ΡΠ° ΠΠΈΠ½ΡΠΊΠ°:
$ 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
Π‘Π°Π΄Π° ΠΈΠΌΠ°ΠΌΠΎ ΡΠ»ΠΈΠΊΡ ΡΠ΅Π·Π³ΡΠ° ΠΠΈΠ½ΡΠΊΠ°:
$ ls -la Image
-rw-rw-r-- 1 sprado sprado 3164228 Fev 5 10:51 Image
Π¨ΡΠ° ΠΌΠΎΠΆΠ΅ΠΌΠΎ Π΄Π° ΡΡΠ°Π΄ΠΈΠΌΠΎ ΡΠ° ΡΠ»ΠΈΠΊΠΎΠΌ ΠΊΠ΅ΡΠ½Π΅Π»Π°? ΠΠΎΠ³Π»ΠΈ Π±ΠΈΡΠΌΠΎ, Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π° ΠΈΠ·Π²ΡΡΠΈΠΌΠΎ ΠΏΡΠ΅ΡΡΠ°Π³Ρ ΡΡΡΠΈΠ½Π³ΠΎΠ²Π° Π½Π° ΡΠ»ΠΈΡΠΈ ΠΈ ΠΏΡΠΎΠ½Π°ΡΠ΅ΠΌΠΎ Π²Π΅ΡΠ·ΠΈΡΡ ΠΠΈΠ½ΡΠΊ ΠΊΠ΅ΡΠ½Π΅Π»Π° ΠΈ ΡΠ°Π·Π½Π°ΠΌΠΎ Π²ΠΈΡΠ΅ ΠΎ ΠΎΠΊΡΡΠΆΠ΅ΡΡ ΠΊΠΎΡΠ΅ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π·Π° ΠΏΡΠ°Π²ΡΠ΅ΡΠ΅ ΠΊΠ΅ΡΠ½Π΅Π»Π°:
$ 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), Π΄ΠΎΠΊ ΠΏΠΈΡΠ΅ΠΌ ΠΎΠ²Π°Ρ ΡΠ»Π°Π½Π°ΠΊ, ΠΊΠΎΡΠΈΡΡΠΈ ΡΡΠ°ΡΡ Π²Π΅ΡΠ·ΠΈΡΡ ΠΠΈΠ½ΡΠΊ ΠΊΠ΅ΡΠ½Π΅Π»Π° (3.3.8) ΠΎΠ±ΡΠ°Π²ΡΠ΅Π½Ρ 2012. Π³ΠΎΠ΄ΠΈΠ½Π΅, ΠΊΠΎΠΌΠΏΠ°ΡΠ»ΠΈΡΠ°Π½Ρ ΡΠ° Π²Π΅ΠΎΠΌΠ° ΡΡΠ°ΡΠΎΠΌ Π²Π΅ΡΠ·ΠΈΡΠΎΠΌ ΠΠ¦Π¦-Π° (4.6) ΡΠ°ΠΊΠΎΡΠ΅ ΠΎΠ΄ 2012. !
(ΠΏΡΠΈΠ±Π»ΠΈΠΆΠ½ΠΎ ΠΏΡΠ΅Π². Π΄Π° Π»ΠΈ ΡΠΎΡ ΡΠ²Π΅ΠΊ Π²Π΅ΡΡΡΠ΅ΡΠ΅ ΡΠ²ΠΎΡΠΈΠΌ ΡΡΡΠ΅ΡΠΈΠΌΠ° Ρ ΠΊΠ°Π½ΡΠ΅Π»Π°ΡΠΈΡΠΈ ΠΈ ΠΊΠΎΠ΄ ΠΊΡΡΠ΅?)
Π‘Π° ΠΎΠΏΡΠΈΡΠΎΠΌ --opcodes
ΡΠ°ΠΊΠΎΡΠ΅ ΠΌΠΎΠΆΠ΅ΠΌΠΎ Π΄Π° ΠΊΠΎΡΠΈΡΡΠΈΠΌΠΎ Π±ΠΈΠ½Π²Π°Π»ΠΊ Π΄Π° ΠΏΠΎΡΡΠ°ΠΆΠΈΠΌΠΎ ΡΠΏΡΡΡΡΠ²Π° ΠΌΠ°ΡΠΈΠ½Π΅ ΠΈ ΠΎΠ΄ΡΠ΅Π΄ΠΈΠΌΠΎ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ° ΡΠ»ΠΈΠΊΠ΅:
$ 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
ΠΠ΅Π»ΠΈΠΊΠΈ! ΠΠ»ΠΈ ΠΈΠΌΠ°ΡΡΠ΅ Π½Π° ΡΠΌΡ Π΄Π° ΡΠ΅ Π²Π΅ΡΠ·ΠΈΡΠ° ΠΡΡΠΈΠΠΎΠΊ-Π° 1.19.4. ΠΠ²ΠΎ ΡΠ΅ Π²Π΅ΠΎΠΌΠ° ΡΡΠ°ΡΠ° Π²Π΅ΡΠ·ΠΈΡΠ° ΠΡΡΠΈΠΠΎΠΊ-Π°, ΠΎΠ±ΡΠ°Π²ΡΠ΅Π½ Ρ Π°ΠΏΡΠΈΠ»Ρ 2012.
ΠΠ°ΠΊΠ»Π΅, Π’Π-ΠΠΈΠ½ΠΊ ΠΎΠ±ΡΠ°Π²ΡΡΡΠ΅ ΡΠ»ΠΈΠΊΡ ΡΠΈΡΠΌΠ²Π΅ΡΠ° 2019. ΠΊΠΎΡΠΈΡΡΠ΅ΡΠΈ ΡΠΎΡΡΠ²Π΅Ρ (ΠΠ¦Π¦ ΡΠΎΠΎΠ»ΡΡ Π°ΠΈΠ½, ΠΊΠ΅ΡΠ½Π΅Π», ΠΡΡΠΈΠΠΎΠΊ, ΠΈΡΠ΄.) ΠΈΠ· 2012.!
Π‘Π°Π΄Π° ΡΠ°Π·ΡΠΌΠ΅ΡΠ΅ Π·Π°ΡΡΠΎ ΡΠ²Π΅ΠΊ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΌ ΠΠΏΠ΅Π½ΠΠ Π’ Π½Π° ΡΠ²ΠΎΡΠΈΠΌ ΡΡΡΠ΅ΡΠΈΠΌΠ°?
Π’ΠΎ Π½ΠΈΡΠ΅ ΡΠ²Π΅
ΠΠΈΠ½Π²Π°Π»ΠΊ ΡΠ°ΠΊΠΎΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π²ΡΡΠΈ Π°Π½Π°Π»ΠΈΠ·Ρ Π΅Π½ΡΡΠΎΠΏΠΈΡΠ΅, ΡΡΠ°ΠΌΠΏΠ° Π½Π΅ΠΎΠ±ΡΠ°ΡΠ΅Π½Π΅ ΠΏΠΎΠ΄Π°ΡΠΊΠ΅ ΠΎ Π΅Π½ΡΡΠΎΠΏΠΈΡΠΈ ΠΈ Π³Π΅Π½Π΅ΡΠΈΡΠ΅ Π΅Π½ΡΡΠΎΠΏΠΈΡΡΠΊΠ΅ Π³ΡΠ°ΡΠΈΠΊΠΎΠ½Π΅. Π’ΠΈΠΏΠΈΡΠ½ΠΎ, Π²Π΅ΡΠ° Π΅Π½ΡΡΠΎΠΏΠΈΡΠ° ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡΡΠ΅ ΠΊΠ°Π΄Π° ΡΡ Π±Π°ΡΡΠΎΠ²ΠΈ Π½Π° ΡΠ»ΠΈΡΠΈ Π½Π°ΡΡΠΌΠΈΡΠ½ΠΈ. Π’ΠΎ ΠΌΠΎΠΆΠ΅ Π·Π½Π°ΡΠΈΡΠΈ Π΄Π° ΡΠ»ΠΈΠΊΠ° ΡΠ°Π΄ΡΠΆΠΈ ΡΠΈΡΡΠΎΠ²Π°Π½Ρ, ΠΊΠΎΠΌΠΏΡΠΈΠΌΠΎΠ²Π°Π½Ρ ΠΈΠ»ΠΈ Π·Π°ΠΌΠ°Π³ΡΠ΅Π½Ρ Π΄Π°ΡΠΎΡΠ΅ΠΊΡ. Π₯Π°ΡΠ΄ΡΠΎΡΠ΅ ΠΊΡΡΡ Π·Π° ΡΠΈΡΡΠΎΠ²Π°ΡΠ΅? Π¨ΡΠΎ Π΄Π° Π½Π΅.
Π’Π°ΠΊΠΎΡΠ΅ ΠΌΠΎΠΆΠ΅ΠΌΠΎ ΠΊΠΎΡΠΈΡΡΠΈΡΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΠ°Ρ --raw
Π΄Π° Π±ΠΈΡΡΠ΅ ΠΏΡΠΎΠ½Π°ΡΠ»ΠΈ ΠΏΡΠΈΠ»Π°Π³ΠΎΡΠ΅Π½ΠΈ Π½Π΅ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈ Π½ΠΈΠ· Π±Π°ΡΡΠΎΠ²Π° Π½Π° ΡΠ»ΠΈΡΠΈ ΠΈΠ»ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ --hexdump
Π΄Π° ΠΈΠ·Π²ΡΡΠΈ Ρ
Π΅ΠΊΡΠ°Π΄Π΅ΡΠΈΠΌΠ°Π»Π½ΠΈ Π΄ΡΠΌΠΏ ΡΠΏΠΎΡΠ΅ΡΡΡΡΡΠΈ Π΄Π²Π΅ ΠΈΠ»ΠΈ Π²ΠΈΡΠ΅ ΡΠ»Π°Π·Π½ΠΈΡ
Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°.
--magic
, ΠΈΠ»ΠΈ Π΄ΠΎΠ΄Π°Π²Π°ΡΠ΅ΠΌ Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡΠΌ $ HOME / .config / binwalk / magic
.
ΠΠΈΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡΠ° ΠΎ Π±ΠΈΠ½Π²Π°Π»ΠΊ-Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠ½Π°ΡΠΈ Π½Π°
Π±ΠΈΠ½Π²Π°Π»ΠΊ Π΅ΠΊΡΠ΅Π½ΡΠΈΠΎΠ½
Π’Π°ΠΌΠΎ
import binwalk
binwalk.scan()
ΠΠΎΡΠΈΡΡΠ΅ΡΠΈ ΠΠΈΡΡ
ΠΎΠ½ ΠΠΠ ΡΠ°ΠΊΠΎΡΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΊΡΠ΅ΠΈΡΠ°ΡΠΈ
Π’Π°ΠΊΠΎΡΠ΅ ΠΏΠΎΡΡΠΎΡΠΈ
ΠΠ°ΡΡΠΎ ΠΎΠ½Π΄Π° Π½Π΅ ΠΏΡΠ΅ΡΠ·ΠΌΠ΅ΡΠ΅ ΡΠ»ΠΈΠΊΡ ΡΠΈΡΠΌΠ²Π΅ΡΠ° ΡΠ° ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ° ΠΈ ΠΈΡΠΏΡΠΎΠ±Π°ΡΠ΅ Π±ΠΈΠ½Π²Π°Π»ΠΊ? ΠΠ±Π΅ΡΠ°Π²Π°ΠΌ Π΄Π° ΡΠ΅ΡΠ΅ ΡΠ΅ Π»Π΅ΠΏΠΎ Π·Π°Π±Π°Π²ΠΈΡΠΈ :)
ΠΠ·Π²ΠΎΡ: Π²Π²Π².Ρ Π°Π±Ρ.ΡΠΎΠΌ