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扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。