에서 가져옴여기, Moon.png라는 이미지 파일에 스테가노그래피 섹션이 있습니다. 이로 인해 dd와 같은 것을 사용하여 944와 411781 사이의 Zlib을 추출하는 방법을 생각하게 되었습니다.
$> binwalk moon.png
DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
0 0x0 PNG image, 600 x 593, 8-bit/color RGB, non-interlaced
290 0x122 Unix path: /www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef=
944 0x3B0 Zlib compressed data, best compression
411781 0x64885 Zip archive data, encrypted at least v1.0 to extract, compressed size: 35, uncompressed size: 23, name: flag.txt
411976 0x64948 End of Zip archive
작성자가 이 작업을 수행했지만 dd if=./moon.png of=./moon.zip skip=411781 bs=1
이는 시작점 0에서 411781까지만 작동합니다.
답변1
작성자는 실제로 파일에서 ZIP 부분을 추출했습니다. 411781부터 시작합니다. 기본적으로 파일의 나머지 부분은 여기에서 복사됩니다.
skip
bs=1
복사하기 전에 지정된 수의 블록을 처음부터 이동합니다(1블록은 1바이트이므로). 따라서 "zlib" 부분을 얻으려면 다음이 필요합니다.
dd if=./moon.png of=./moon.zlib skip=944 count=410837 bs=1
count
이 지점에서 복사된 블록의 수입니다. 따라서 여기서의 수는 끝 위치에서 건너뛴 블록/바이트 수를 뺀 값입니다(411781-944 = 410837).