diff --git "a/src/content/posts/Active-Directory/Active Directory\343\202\222\346\247\213\347\257\211\343\201\231\343\202\213.md" "b/src/content/posts/Active-Directory/Active Directory\343\202\222\346\247\213\347\257\211\343\201\231\343\202\213.md" new file mode 100644 index 0000000..227d359 --- /dev/null +++ "b/src/content/posts/Active-Directory/Active Directory\343\202\222\346\247\213\347\257\211\343\201\231\343\202\213.md" @@ -0,0 +1,22 @@ +--- +title: Active Directoryを構築する +published: 2024-11-16 +description: '' +image: '' +tags: [] +category: '' +draft: true +lang: 'ja' +--- + +Mictosoftは学生の学習向けに様々なMicrosoftのソフトを無償で提供しています。 +そこで今回はWindows Server 2022でActive Directoryを構築していきます。 + +### ダウンロード +Microsoftのポータルサイトに大学から配布されたMiscrosoftアカウントでログインして`Education→ソフトウェア`の順にアクセスします。 +[https://portal.azure.com/#view/Microsoft_Azure_Education/EducationMenuBlade/~/software](https://portal.azure.com/#view/Microsoft_Azure_Education/EducationMenuBlade/~/software) +執筆現在はWindows Server 2025まで利用でいます。 + +![](./download.png) + +ライセンスキーはダウンロードを開始するとダウンロードのボタンの下をスクロールすると`キーを表示する`というボタンが現れます。 \ No newline at end of file diff --git a/src/content/posts/Active-Directory/download.png b/src/content/posts/Active-Directory/download.png new file mode 100644 index 0000000..b9a86a8 Binary files /dev/null and b/src/content/posts/Active-Directory/download.png differ diff --git a/src/content/posts/learn-Assmbly/Register.jpg b/src/content/posts/learn-Assmbly/Register.jpg new file mode 100755 index 0000000..fb6099b Binary files /dev/null and b/src/content/posts/learn-Assmbly/Register.jpg differ diff --git a/src/content/posts/learn-Assmbly/X64-Register.png b/src/content/posts/learn-Assmbly/X64-Register.png new file mode 100755 index 0000000..2f96fe3 Binary files /dev/null and b/src/content/posts/learn-Assmbly/X64-Register.png differ diff --git a/src/content/posts/learn-Assmbly/X64-Register_.png b/src/content/posts/learn-Assmbly/X64-Register_.png new file mode 100755 index 0000000..a7c2466 Binary files /dev/null and b/src/content/posts/learn-Assmbly/X64-Register_.png differ diff --git "a/src/content/posts/learn-Assmbly/\343\202\242\343\202\273\343\203\263\343\203\226\343\203\252\350\250\200\350\252\236\343\202\222\345\213\211\345\274\267\343\201\231\343\202\213.md" "b/src/content/posts/learn-Assmbly/\343\202\242\343\202\273\343\203\263\343\203\226\343\203\252\350\250\200\350\252\236\343\202\222\345\213\211\345\274\267\343\201\231\343\202\213.md" new file mode 100644 index 0000000..45a367d --- /dev/null +++ "b/src/content/posts/learn-Assmbly/\343\202\242\343\202\273\343\203\263\343\203\226\343\203\252\350\250\200\350\252\236\343\202\222\345\213\211\345\274\267\343\201\231\343\202\213.md" @@ -0,0 +1,107 @@ +--- +title: x64アセンブリ言語を勉強する +published: 2024-11-16 +description: '' +image: '' +tags: [Assembly,x64] +category: 'Learn' +draft: true +lang: 'ja' +--- + +# データ型 +| データ型 | ビット数(バイト数) | 接頭辞 | +| -------- | ------------------ | ------ | +| Byte | 8bit (1bytes) | b | +| Word | 16bit (2bytes) | w | +| Dword | 32bit (8bytes) | l | +| Qword | 64bit (16bytes) | q | + +### 1Byteの半分 +ニブル(nybble)は4Bitを表している。つまり16進数で`5D`であれば**2ニブル**と呼ぶ + +# 汎用レジスタ +x64にレジスタは16個ある。一つのレジスタのビット数は64Bitである。 + +![](./X64-Register.png) + +``` +{rax, rbx, rcx, rdx, rbp, rsi, rdi, rsp, r8, r9, r10, r11, r12, r13, r14, r15} +``` + +## レジスタにアクセス +例えば`rax`レジスタの下位32Bitを参照するには`eax`レジスタにアクセスする。 +また下位16Bitを参照する場合は`ax`レジスタを参照する。 +`ax`レジスタの上位8bitにアクセスする場合は`ah`レジスタを参照し、下位8bitにアクセスする場合は`al`レジスタを参照する。 +![](./Register.jpg) +`rax`レジスタは全体でこのような構造をしている。 + +:::important[重要] +`eax`,`ax`,`ah`,`al`はそれぞれ独立したレジスタではなく、`rax`レジスタの一部にアクセスするための**Alias**である +::: + +### 全てのレジスタのAliasはこのようになる。 + +| 64ビットレジスタ | 下位32ビット | 下位16ビット | 下位8ビット | +| ---------------- | -------------- | -------------- | ----------- | +| rax | eax | ax | al | +| rbx | ebx | bx | bl | +| rcx | ecx | cx | cl | +| rdx | edx | dx | dl | +| rdi | edi | di | dil | +| **rbp** | **ebp** | bp | bpl | +| **rsp** | **esp** | sp | spl | +| r8 | r8d | r8w | r8b | +| r9 | r9d | r9w | r9b | +| r10 | r10d | r10w | r10b | +| r11 | r11d | r11w | r11b | +| r12 | r12d | r12w | r12b | +| r13 | r13d | r13w | r13b | +| r14 | r14d | r14w | r14b | +| r15 | r15d | r15w | r15b | +| | | | | + +## レジスタの役割 +`rsp`レジスタは**スタックポインタレジスタ**として使用される。 +`rbp`レジスタは**ベースポインタレジスタ**として利用される。 +それ以外のレジスタの用途は汎用として利用され、演算の際に一時的な格納場所として使用されたりする。 + +# 呼び出し規約 +## Windowsでの呼び出し規約 + +関数から呼び出された引数は`rcx`,`rdx`,`r8`,`r9`の順に格納される。第四引数以降はスタックに格納される。 + +| 引数 | **整数型・ポインター** | 浮動小数点 | +| -------- | --------------------- | ---------- | +| 第一引数 | **rcx** | xmm0 | +| 第二引数 | **rdx** | xmm1 | +| 第三引数 | **r8** | xmm2 | +| 第四引数 | **r9** | xmm3 | + + +# ptr演算子 +アセンブリではメモリサイズを自分で明記しなくてはい。 +``` +mov [rcx], 5dh +``` +そのため、このような記述ではrcxレジスタのどのデータサイズで`5`を格納するのかが分からないためエラーとなる。 + +``` +mov eax, 5dh +mov [rcx], eax +``` +このような記述をする必要がある。 +``` +mov dword ptr[rcx], 5dh +``` +ptr演算子を使うことでメモリサイズを指定することが出来る。 + +| ptr演算子 | サイズ(bit) | +| ----------- | ----------- | +| byte ptr | 1 | +| word ptr | 2 | +| dword ptr | 4 | +| qword ptr | 8 | +| xmmword ptr | 16 | +| ymmword ptr | 32 | +| zmmword ptr | 64 | \ No newline at end of file