読者です 読者をやめる 読者になる 読者になる

gobjdumpを入れて、helloworldを逆アセンブリしてみた

とりあえず逆アセンブルなるものに手を出してみたわけです。まずは、macportsから、とってきてインストール。

sudo port install binutils

これで、macだと「gobjdump」ってコマンドが使えるとの事です。試しにhelloworldをCで書いて、逆アセンブリしてみました

gobjdump -d helloworld

色々出てきたけど、main関数は

0000000100000ef0 <_main>:
   100000ef0:	55                   	push   %rbp
   100000ef1:	48 89 e5             	mov    %rsp,%rbp
   100000ef4:	48 83 ec 10          	sub    $0x10,%rsp
   100000ef8:	48 8d 05 51 00 00 00 	lea    0x51(%rip),%rax        # 100000f50 <_puts$stub+0x2c>
   100000eff:	48 89 c7             	mov    %rax,%rdi
   100000f02:	e8 1d 00 00 00       	callq  100000f24 <_puts$stub>
   100000f07:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%rbp)
   100000f0e:	8b 45 f8             	mov    -0x8(%rbp),%eax
   100000f11:	89 45 fc             	mov    %eax,-0x4(%rbp)
   100000f14:	8b 45 fc             	mov    -0x4(%rbp),%eax
   100000f17:	48 83 c4 10          	add    $0x10,%rsp
   100000f1b:	5d                   	pop    %rbp
   100000f1c:	c3                   	retq   

これなのかな。まぁ分からん。とりあえずゆっくりと遊んでみる事にするかな