dumpとは、ファイルをダンプすること指す場合もある。
およそコンピューターの那珂に保存している全てのデーターは、二進数で表示されています。プログラムもそうなので、これをハッキングするべく、hexdumpが開発された(誤)
普通のプログラムは、機械語の翻訳された命令の二進数文字列として保存されるので、アセンブリ言語マスターでもわかりにくい場合が大井。
しかし、慢心コンパイラーは、君の秘密を暗号化する義務は無いのです!
例として、先ずは、SECRET.cというファイルを見てみましょう。
int
main(int argc, char* argv[])
{
char my_secret[] = "I LOVE SEX!!!!!!!!!!!!!";
return 0;
}
この秘密をgccでコンパイルしてプログラムとして保存すれば安心!と思っているそこのあなた。
gdbで、簡単に君をわいせつ物陳列罪に訴える方法があります。そう、それがdisasである。
このdisasされたファイルを見てみましょう。
Dump of assembler code for function main:
0x08048404 <+0>: push %ebp
0x08048405 <+1>: mov %esp,%ebp
0x08048407 <+3>: and $0xfffffff0,%esp
0x0804840a <+6>: sub $0x30,%esp
0x0804840d <+9>: mov 0xc(%ebp),%eax
0x08048410 <+12>: mov %eax,0xc(%esp)
0x08048414 <+16>: mov %gs:0x14,%eax
0x0804841a <+22>: mov %eax,0x2c(%esp)
0x0804841e <+26>: xor %eax,%eax
0x08048420 <+28>: movl $0x4f4c2049,0x14(%esp)
0x08048428 <+36>: movl $0x53204556,0x18(%esp)
0x08048430 <+44>: movl $0x21215845,0x1c(%esp)
0x08048438 <+52>: movl $0x21212121,0x20(%esp)
0x08048440 <+60>: movl $0x21212121,0x24(%esp)
0x08048448 <+68>: movl $0x212121,0x28(%esp)
0x08048450 <+76>: mov $0x0,%eax
0x08048455 <+81>: mov 0x2c(%esp),%edx
0x08048459 <+85>: xor %gs:0x14,%edx
0x08048460 <+92>: je 0x8048467 <main+99>
0x08048462 <+94>: call 0x8048320 <__stack_chk_fail@plt>
0x08048467 <+99>: leave
0x08048468 <+100>: ret
End of assembler dump.
リトルエンディアンのASCII表現で見てみると?
| 0x49 | 0x20 | 0x4c | 0x4f | 0x56 | 0x45 |
| I | 空白 | L | O | V | E |
| 0x20 | 0x53 | 0x45 | 0x58 | 0x21 | |
| 空白 | S | E | X | ! |
なんと、完全にバレているのではないか!
なお、viで:%!xxdにすれば普通に見れます。見難いかもしれませんが。
急上昇ワード改
最終更新:2026/01/31(土) 13:00
最終更新:2026/01/31(土) 12:00
ウォッチリストに追加しました!
すでにウォッチリストに
入っています。
追加に失敗しました。
ほめた!
ほめるを取消しました。
ほめるに失敗しました。
ほめるの取消しに失敗しました。