MawaLog

一日一日、楽しく生きる。技術と音楽が好き。

開発日誌:エンディアンとは

これをやってます。

セキュリティコンテストのためのCTF問題集

セキュリティコンテストのためのCTF問題集

経緯

基礎固めにこの記事を読んでいて 楽しいPwn入門 · GitHub

エンディアンに注意」という部分がよくわからなかったので調べました。

下記がよくまとまってました。なるほど・・・
Endian(エンディアン)ってなに? | 学校では教えてくれないこと | [技術コラム集]組込みの門 | ユークエスト株式会社

要するにメモリにデータを格納していくときに、1バイトごとにデータを分割して格納される、その格納の順番がエンディアン

エンディアンは主に3種類、ビッグエンディアン、リトルエンディアン、両方対応のバイエンディアン

ネットでつかうTCP/IPはビッグエンディアン

エンディアンに注意する例

参考記事からの引用です。

if (secret == 0xc0deface){
    puts("flag is ...");
  }

と、あるところ、バイト列を"0xc0deface"と入力するには、下記のようになります

'\xce\xfa\xde\xc0'

\xで区切られて、逆順に2文字ずつ並んでいますね。この並びがエンディアンというわけ。スペースで更に区切ると分かりやすいかな・・・

'\x ce \x fa \x de \x c0'

参考記事

楽しいPwn入門 · GitHub