ΠΡΠ΅Π΄ Π½Π΅ΠΊΠΎΠ»ΠΊΡ Π΄Π΅Π½Π°, ΡΠ΅ΡΠΈΠ² Π΄Π° Π³ΠΎ ΡΠ΅ΠΊΠΎΠ½ΡΡΡΡΠΈΡΠ°ΠΌ ΡΠΈΡΠΌΠ²Π΅ΡΠΎΡ Π½Π° ΠΌΠΎΡΠΎΡ ΡΡΡΠ΅Ρ ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ 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
Π‘ΠΊΠ΅Π½ΠΈΡΠ°ΡΠ΅ Π½Π° ΡΠ»ΠΈΠΊΠΈ
ΠΡΠ΄Π΅ Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΠΌΠ΅ ΡΠΎ ΠΏΡΠ΅Π±Π°ΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΏΠΎΡΠΏΠΈΡΠΈ Π½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ Π²ΠΎ ΡΠ»ΠΈΠΊΠ°ΡΠ° (ΡΠ»ΠΈΠΊΠ° ΠΎΠ΄ ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ°
ΠΠΊΠ»ΡΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΏΠΎΠ΄Π½ΠΎΠΆΡΠ΅ ΡΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΠ°ΡΠΎΡ --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 Environment 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
Π€ΠΎΡΠΌΠ°ΡΠΎΡ Π½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°ΡΠ° uImage Π²ΠΎ ΠΎΡΠ½ΠΎΠ²Π° Π΅ ΡΠ»ΠΈΠΊΠ° Π½Π° ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ Π½Π° ΠΠΈΠ½ΡΠΊΡ ΡΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ Π·Π°Π³Π»Π°Π²ΠΈΠ΅. ΠΡΠ΄Π΅ Π΄Π° Π³ΠΎ ΠΎΡΡΡΡΠ°Π½ΠΈΠΌΠ΅ ΠΎΠ²Π° Π·Π°Π³Π»Π°Π²ΠΈΠ΅ Π·Π° Π΄Π° ΡΠ° Π΄ΠΎΠ±ΠΈΠ΅ΠΌΠ΅ ΠΊΠΎΠ½Π΅ΡΠ½Π°ΡΠ° ΡΠ»ΠΈΠΊΠ° Π½Π° ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ Π½Π° ΠΠΈΠ½ΡΠΊΡ:
$ 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), Π΄ΠΎΠ΄Π΅ΠΊΠ° ΡΠ° ΠΏΠΈΡΡΠ²Π°ΠΌ ΠΎΠ²Π°Π° ΡΡΠ°ΡΠΈΡΠ°, ΡΠΎΡ ΠΊΠΎΡΠΈΡΡΠΈ ΡΡΠ°ΡΠ° Π²Π΅ΡΠ·ΠΈΡΠ° Π½Π° ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ Π½Π° 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
Π¨ΡΠΎ Π΅ ΡΠΎ root Π΄Π°ΡΠΎΡΠ΅ΡΠ΅Π½ ΡΠΈΡΡΠ΅ΠΌ? ΠΠ°ΠΌΠ΅ΡΡΠΎ ΡΠ°ΡΠ½ΠΎ Π΄Π° ΡΠ° ΠΈΠ·Π²Π»Π΅ΠΊΡΠ²Π°ΠΌΠ΅ ΡΠ»ΠΈΠΊΠ°ΡΠ°, Π΄Π° ΡΠ° ΠΈΡΠΊΠΎΡΠΈΡΡΠΈΠΌΠ΅ ΠΎΠΏΡΠΈΡΠ°ΡΠ° binwalk --extract
:
$ binwalk --extract --quiet archer-c7.bin
Π¦Π΅Π»ΠΎΡΠ½ΠΈΠΎΡ root Π΄Π°ΡΠΎΡΠ΅ΡΠ΅Π½ ΡΠΈΡΡΠ΅ΠΌ ΡΠ΅ Π±ΠΈΠ΄Π΅ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ Π²ΠΎ ΠΏΠΎΠ΄Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌ:
$ 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 toolchain, ΠΊΠ΅ΡΠ½Π΅Π», BusyBox, ΠΈΡΠ½.) ΠΎΠ΄ 2012 Π³ΠΎΠ΄ΠΈΠ½Π°!
Π‘Π΅Π³Π° ΡΠ°Π·Π±ΠΈΡΠ°ΡΠ΅ Π·ΠΎΡΡΠΎ ΡΠ΅ΠΊΠΎΠ³Π°Ρ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΌ OpenWRT Π½Π° ΠΌΠΎΠΈΡΠ΅ ΡΡΡΠ΅ΡΠΈ?
Π’ΠΎΠ° Π½Π΅ Π΅ ΡΠ΅
Binwalk ΠΌΠΎΠΆΠ΅ Π΄Π° Π²ΡΡΠΈ ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° Π½Π° Π΅Π½ΡΡΠΎΠΏΠΈΡΠ°, Π΄Π° ΠΏΠ΅ΡΠ°ΡΠΈ Π½Π΅ΠΎΠ±ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π·Π° Π΅Π½ΡΡΠΎΠΏΠΈΡΠ° ΠΈ Π΄Π° Π³Π΅Π½Π΅ΡΠΈΡΠ° Π³ΡΠ°ΡΠΈΠΊΠΎΠ½ΠΈ Π·Π° Π΅Π½ΡΡΠΎΠΏΠΈΡΠ°. Π’ΠΈΠΏΠΈΡΠ½ΠΎ, ΠΏΠΎΠ³ΠΎΠ»Π΅ΠΌΠ° Π΅Π½ΡΡΠΎΠΏΠΈΡΠ° ΡΠ΅ Π·Π°Π±Π΅Π»Π΅ΠΆΡΠ²Π° ΠΊΠΎΠ³Π° Π±Π°ΡΡΠΈΡΠ΅ Π½Π° ΡΠ»ΠΈΠΊΠ°ΡΠ° ΡΠ΅ ΡΠ»ΡΡΠ°ΡΠ½ΠΈ. ΠΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π·Π½Π°ΡΠΈ Π΄Π΅ΠΊΠ° ΡΠ»ΠΈΠΊΠ°ΡΠ° ΡΠΎΠ΄ΡΠΆΠΈ ΡΠΈΡΡΠΈΡΠ°Π½Π°, ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ°Π½Π° ΠΈΠ»ΠΈ Π·Π°ΠΌΠ°ΡΠ΅Π½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°. Π₯Π°ΡΠ΄ΠΊΠΎΡ ΠΊΠ»ΡΡ Π·Π° ΡΠΈΡΡΠΈΡΠ°ΡΠ΅? ΠΠΎΡΡΠΎ Π΄Π° Π½Π΅.
ΠΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° Π³ΠΎ ΠΊΠΎΡΠΈΡΡΠΈΠΌΠ΅ ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΠ°ΡΠΎΡ --raw
Π΄Π° ΠΏΡΠΎΠ½Π°ΡΠ΄Π΅ΡΠ΅ ΠΏΡΠΈΡΠΏΠΎΡΠΎΠ±Π΅Π½Π° ΡΠ΅ΠΊΠ²Π΅Π½ΡΠ° Π½Π° Π½Π΅ΠΎΠ±ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈ Π±Π°ΡΡΠΈ Π²ΠΎ ΡΠ»ΠΈΠΊΠ° ΠΈΠ»ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΠ°Ρ --hexdump
Π·Π° Π΄Π° ΡΠ΅ ΠΈΠ·Π²ΡΡΠΈ Ρ
Π΅ΠΊΡΠ°Π΄Π΅ΡΠΈΠΌΠ°Π»Π΅Π½ ΠΈΡΡΡΠ»Π°ΡΠ΅ ΡΠΏΠΎΡΠ΅Π΄ΡΠ²Π°ΡΡΠΈ Π΄Π²Π΅ ΠΈΠ»ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ Π²Π»Π΅Π·Π½ΠΈ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ.
--magic
, ΠΈΠ»ΠΈ ΡΠΎ Π½ΠΈΠ²Π½ΠΎ Π΄ΠΎΠ΄Π°Π²Π°ΡΠ΅ Π²ΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌΠΎΡ $ HOME / .config / binwalk / magic
.
ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΡΠ΄Π΅ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π·Π° binwalk Π½Π°
Π΅ΠΊΡΡΠ΅Π½Π·ΠΈΡΠ° Π½Π° ΠΏΠΎΠ΄Π½ΠΎΠΆΡΠ΅ΡΠΎ
ΠΠΎΡΡΠΎΠΈ
import binwalk
binwalk.scan()
ΠΠΎΡΠΈΡΡΠ΅ΡΡΠΈ Π³ΠΎ Python API, ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° Π΄Π° ΠΊΡΠ΅ΠΈΡΠ°ΡΠ΅
ΠΡΡΠΎ ΡΠ°ΠΊΠ° ΠΏΠΎΡΡΠΎΠΈ
ΠΠ°, Π·ΠΎΡΡΠΎ Π½Π΅ ΡΠ° ΠΏΡΠ΅Π·Π΅ΠΌΠ΅ΡΠ΅ ΡΠ»ΠΈΠΊΠ°ΡΠ° Π½Π° ΡΠΈΡΠΌΠ²Π΅ΡΠΎΡ ΠΎΠ΄ ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ ΠΈ Π½Π΅ Π³ΠΎ ΠΏΡΠΎΠ±Π°ΡΠ΅ binwalk? ΠΠ΅ΡΡΠ²Π°ΠΌ Π΄Π΅ΠΊΠ° ΡΠ΅ ΡΠ΅ Π·Π°Π±Π°Π²ΡΠ²Π°ΡΠ΅ ΠΌΠ½ΠΎΠ³Ρ :)
ΠΠ·Π²ΠΎΡ: www.habr.com