ToDo:
ヘカトンケイル
バッツ覚醒でなんとかなるようになった。よくわかってないけど、ダメージ与えすぎると2回目のフラッシュを飛ばせなくなって詰む
(21:12)
とかどういう時にコード領域に生えるんだよ的なことを思ってたら、 -mcmodel=large というのをつけると 64bit relocation が発生しまくるらしい
( '-') gcc -mcmodel=large -c hello.c && objdump -dr hello.o G R_X86
13: R_X86_64_GOTPC64 _GLOBAL_OFFSET_TABLE_+0x9
20: R_X86_64_GOTOFF64 .LC0
31: R_X86_64_PLTOFF64 puts
とか(涙ぐましいことやってて長くなるので grep した)
( '-') gcc -fno-PIC -mcmodel=large -c hello.c && objdump -dr hello.o
hello.o: file format elf64-x86-64
Disassembly of section .text:
0000000000000000 <main>:
0: 55 push %rbp
1: 48 89 e5 mov %rsp,%rbp
4: 48 bf 00 00 00 00 00 movabs $0x0,%rdi
b: 00 00 00
6: R_X86_64_64 .rodata
e: 48 b8 00 00 00 00 00 movabs $0x0,%rax
15: 00 00 00
10: R_X86_64_64 puts
18: ff d0 callq *%rax
1a: b8 00 00 00 00 mov $0x0,%eax
1f: 5d pop %rbp
20: c3 retq
とか
後者はなんかコンパイラ初心者が作ったコンパイラが吐きそうなコードで親しみが湧く
またどうでもいい知識を得た…
(22:00)
| 前 | 2018年 9月 |
次 | ||||
| 日 | 月 | 火 | 水 | 木 | 金 | 土 |
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 | ||||||
全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。