
PNG 파일 내부에 페이로드를 삽입합니다
PNG 파일 내에 페이로드를 여러 IDAT 섹션에 분산하여 삽입합니다. 각 섹션은 RC4 암호화 알고리즘을 사용하여 고유한 16바이트 키로 개별적으로 암호화됩니다.
이 저장소는 두 가지 구현으로 구성되어 있습니다:
EmbedPayloadInPng.py - 입력된 페이로드를 지정된 PNG 파일에 삽입하는 Python 스크립트.FetchPayloadFromPng - EmbedPayloadInPng.py가 출력한 PNG 파일에서 페이로드를 추출하고, ExtractDecryptedPayload 함수를 사용하여 복호화합니다.EmbedPayloadInPng.py를 사용하여 페이로드가 삽입된 PNG 파일을 생성합니다:
페이로드가 삽입된 PNG 파일인 Output.png 파일은 원본 파일과 동일한 .PNG 파일입니다.
EmbedPayloadInPng.py가 출력한 MARKED_IDAT_HASH 매크로 정의를 복사하여 FetchPayloadFromPng 프로젝트의 기존 정의와 교체합니다.앞서 언급했듯이, EmbedPayloadInPng.py는 페이로드 파일을 PNG 파일 내에 삽입하는 역할을 합니다. 아래는 페이로드가 삽입된 PNG 파일의 구조입니다.

IDAT 섹션의 최대 크기는 8192바이트이므로, 페이로드는 여러 개의 IDAT 섹션으로 분할됩니다. 각 섹션의 크기는 (8192 - 16 [RC4 키 길이])에 해당합니다. 또한, 마지막 IDAT 섹션에는 페이로드의 나머지 바이트가 포함됩니다.
다음 이미지들은 EmbedPayloadInPng.py의 출력을 설명하고 생성된 PNG 파일의 구조와 비교합니다:


IDAT 섹션입니다. 이 이미지는 또한 CRC 해시의 위치와 앞선 임의 IDAT 섹션의 크기(노란색)를 보여줍니다.

