2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

vimでバイナリ編集 画像に文字列を埋め込む

Last updated at Posted at 2022-11-08

ファイルの開き方

$ vim -b sample.txt

16進数への変換

:%!xxd

変換したファイルをもとに戻す

:%!xxd -r

実践

以下の画像ファイル(スクショでOK)を用意します
ファイル名はicon.png
icon-original.png

$ vim -b icon.png

開くとよくわからない文字列↓
image.png

:%!xxd

実行するとバイナリ(16進数)が表示される
image.png

一番下の行を以下のように変更してあげる

変更前 変更後
image.png image.png
:%!xxd -r

で元の形式に戻してあげる

ここで、再度バイナリにすると

:%!xxd

以下のように「OSAOSA」という文字列が表示されるようになっている
image.png

これで、見た目は変わらないけど、「OSAOSA」という文字列の入った画像が完成
icon-original.png

補足

ちゃんとstringsコマンドで「OSAOSA」を確認できる!

$ strings icon.png

IHDR
FiCCPICC Profile
aa``
FF^L^L
eXIfMM
ASCII
Screenshot
pHYs
iTXtXML:com.adobe.xmp
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 6.0.0">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:exif="http://ns.adobe.com/exif/1.0/">
         <exif:PixelYDimension>168</exif:PixelYDimension>
         <exif:PixelXDimension>444</exif:PixelXDimension>
         <exif:UserComment>Screenshot</exif:UserComment>
      </rdf:Description>
   </rdf:RDF>
</x:xmpmeta>
iDOT
^LUIDATx
S!6
(RZ5?
'v]t,
+@x12
...
OSAOSA

参考

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?