備忘録

備忘録

Windows

Windowsでプロセスを終了する方法

Ⅰ. はじめに Ⅱ. 方法 1. msvcrt.abort 2. msvcrt.exit 3. kernel32.ExitProcess 4. ntdll.RtlExitUserProcess 5. ntdll.NtTerminateProcess (ZwTerminateProcess) 6. syscall Ⅲ. 方法(ウィンドウ系) 1. user32.PostQuitMessage 2. win32u.NtUserCallOnePar…

右クリックメニューの「右に回転」「左に回転」を消す方法

Ⅰ. はじめに タイトルの通り「右クリックメニューの「右に回転」「左に回転」を消す方法」です。 Ⅱ. やり方 1. コマンドプロンプトで以下コマンドを実行する reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\SystemFileAssociations\.png\ShellEx\ContextM…

右クリックメニューの「デスクトップの背景として設定」を消す方法

Ⅰ. はじめに タイトルの通り「右クリックメニューの「デスクトップの背景として設定」を消す方法」です。 Ⅱ. やり方 1. コマンドプロンプトで以下コマンドを実行する reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\SystemFileAssociations\.png\Shell\se…

mongooseを利用してHTTPサーバを構築する方法

Ⅰ. はじめに タイトルの通り「mongooseを利用してHTTPサーバを構築する方法」です。 Ⅱ. やり方 1. サンプルプログラムを書く #include <iostream> #include <winsock2.h> #pragma comment(lib, "ws2_32.lib") extern "C" { #include <mongoose.h> } static void fn(struct mg_connection* c, in</mongoose.h></winsock2.h></iostream>…

C++でWindows上の特定プロセスの全モジュールを取得する方法

Ⅰ. はじめに Ⅱ. サンプルプログラム1(EnumProcessModulesExを使用する方法) Ⅲ. サンプルプログラム2(CreateToolhelp32Snapshotを使用する方法) Ⅳ. サンプルプログラム3(NtQueryInformationProcessを使用する方法) Ⅴ. 実行結果 Ⅵ. 留意点 参考 Ⅰ. はじ…

C++でWindows上の特定プロセスの全スレッドIDを取得する方法

Ⅰ. はじめに タイトルの通り「C++でWindows上の特定プロセスの全スレッドIDを取得する方法」です。 Ⅱ. サンプルプログラム #include <Windows.h> #include <tlhelp32.h> #include <iostream> #include <vector> #include <algorithm> std::vector<uint32_t> GetAllThreadIds(uint32_t processId) { std::vector<uint32_t> threadIds; T</uint32_t></uint32_t></algorithm></vector></iostream></tlhelp32.h></windows.h>…

ハードウェアブレークポイント(HWBP)とVEHを利用してデバッガを作成する方法

Ⅰ. はじめに タイトルの通り「ハードウェアブレークポイント(HWBP)とVEHを利用してデバッガを作成する方法」です。 Ⅱ. サンプルプログラム https://github.com/kagasu/VEHTest HWBPのメリット/デメリット メリット メモリを変更する必要がない為メモリ改…

Windowsでマザーボード型番を調べる方法

Ⅰ. はじめに タイトルの通り「Windowsでマザーボード型番を調べる方法」です。 Ⅱ. やり方 1. 以下コマンドを実行する wmic baseboard get product,Manufacturer 実行結果 Manufacturer Product ASUSTeK COMPUTER INC. TUF GAMING B550-PLUS 参考 https://tec…

Windows起動時にLINEを最小化する方法

Ⅰ. はじめに タイトルの通り「Windows起動時にLINEを最小化する方法」です。 Ⅱ. やり方 1. LineStartMinimizedをダウンロードする https://github.com/kagasu/LineStartMinimized/releases 2. 以下コマンドを管理者権限で実行する LineStartMinimized.exe in…

Windows 10で右クリックの「ペイント3Dで編集する」を消す方法

Ⅰ. はじめに タイトルの通り「Windows 10で右クリックの「ペイント3Dで編集する」を消す方法」です。 Ⅱ. やり方 1. 以下のテキストをx.regという名前をつけて保存し、実行する。 Windows Registry Editor Version 5.00 [-HKEY_LOCAL_MACHINE\SOFTWARE\Classe…

Windows 10で右クリックの共有を消す方法

Ⅰ. はじめに タイトルの通り「Windows 10で右クリックの共有を消す方法」です。 Ⅱ. やり方 1. 以下のテキストをx.regという名前をつけて保存し、実行する。 Windows Registry Editor Version 5.00 [-HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers\Modern…

WindowsでGoogle Drive(バックアップと同期)の右クリックメニューを非表示にする方法

Ⅰ. はじめに タイトルの通り「WindowsでGoogle Drive(バックアップと同期)の右クリックメニューを非表示にする方法」です。 Ⅱ. やり方 1.以下コマンドを実行する。 reg delete HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shellex\ContextMenuHandlers…

ディスククリーンアップを自動実行しない方法

Ⅰ. はじめに タイトルの通り「ディスククリーンアップを自動実行しない方法」です。 Ⅱ. やり方 1. タスクスケジューラを起動する 2. SilentCleanupを無効にする 参考 https://superuser.com/a/1372661/1042770

Windows をテストモードとして起動する方法

Ⅰ. はじめに タイトルの通り「Windows をテストモードとして起動する方法」です。 Ⅱ. やり方 1. BIOS でセキュアブートを無効化する 2. 以下のコマンドを実行する bcdedit -set TESTSIGNING ON 3. Windows を再起動する 実行結果 参考 https://docs.microsof…

Windows 10 で CrashDumps ファイルを自動作成させない方法

Ⅰ. はじめに アプリケーションが異常終了した場合自動的にダンプファイルが生成される場合があります。 この記事ではダンプファイルを自動作成させない方法を紹介します。 Ⅱ. やり方 1. 以下コマンドを管理者権限でコマンドプロンプトで実行する reg add "HK…

Windows で grep する方法

Ⅰ. はじめに Ⅱ. 方法1 1. grep(find)する Ⅱ. 方法2 1. PATH に以下ディレクトリを 追加する 2. grep する Ⅲ. 方法3 1. WSL をインストールする 2. grep する 参考 Ⅰ. はじめに タイトルの通り「Windows で grep する方法」です。 Ⅱ. 方法1 Windows 標準の fi…

WOW64 syscall をhookする方法

Ⅰ. はじめに タイトルの通り「WOW64 syscall をhookする方法」です。 Ⅱ. サンプルプログラム https://github.com/kagasu/WOW64SyscallHook 参考 https://github.com/mq1n/Wow64SyscallHook http://www.codereversing.com/blog/archives/243 http://www.coder…

exe ファイルのアイコンをコマンドラインで変更する方法

Ⅰ. はじめに タイトルの通り「exe ファイルのアイコンをコマンドラインで変更する方法」です。 Ⅱ. やり方 1. rcedit を clone する git clone https://github.com/electron/rcedit 2. rcedit.sln を開き、ビルドする ※GitHub の Releases にアップロードされ…

Windowsでテキストファイル新規作成時の表示名を変更する方法

Ⅰ. はじめに Ⅱ. やり方 1. レジストリエディタで以下パスを開く 2. 以下のキーを探す 3. 任意の値に書き換える 実行結果 Ⅲ. その他 留意点 ファイルを素早く作成する方法 参考 Ⅰ. はじめに タイトルの通り「Windowsでテキストファイル新規作成時の表示名を変…

WindowsのSpectre, Meltdown軽減パッチを無効化する方法

Ⅰ. はじめに タイトルの通り「WindowsのSpectre, Meltdown軽減パッチを無効化する方法」です。 Ⅱ. やり方 1. コマンドプロンプトで以下のコマンドを実行する reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Manageme…

エクスプローラのナビゲーションウィンドウからDropboxを削除する方法

Ⅰ. はじめに タイトルの通り「エクスプローラのナビゲーションウィンドウからDropboxを削除する方法」です。 Ⅱ. やり方 1. レジストリエディタで以下を開く HKEY_CLASSES_ROOT\CLSID\{E31EA727-12ED-4702-820C-4B6445F28E1A} 2. System.IsPinnedToNamespaceT…

botanをWindowsでビルドする方法

Ⅰ. はじめに タイトルの通り「botanをWindowsでビルドする方法」です。 Ⅱ. 環境(必要なもの) ・Visual Studio 2017 Community (C++) ・Python 2.6以降 Ⅲ. やり方 1. リポジトリを clone する git clone https://github.com/randombit/botan 2. 「VS 2017用…

タスクトレイのアイコンを消す方法

Ⅰ. はじめに タイトルの通り「タスクトレイのアイコンを消す方法」です。 Ⅱ. やり方 C++の場合 #include <Windows.h> int main() { auto hWnd = FindWindow(L"ApplicationWindow", NULL); NOTIFYICONDATA data; data.cbSize = sizeof(NOTIFYICONDATA); data.hWnd = hWnd</windows.h>…

LinodeでWindowsを起動する方法

https://github.com/ClickSimply/docs/blob/windows-on-linode/docs/tools-reference/windows-on-linode/installing-windows-on-linode-vps.md

WPFでGridを使いコントロールの位置を動的に変更する方法

Ⅰ. はじめに Ⅱ. サンプルプログラム MainWindow.xaml MainWindow.xaml.cs Ⅲ. 実行結果 参考 Ⅰ. はじめに タイトルの通り「WPFでGridを使いコントロールの位置を動的に変更する方法」です。 Ⅱ. サンプルプログラム MainWindow.xaml <Grid Name="grid1" ShowGridLines="True"> <Grid.RowDefinitions> <RowDefinition Height="1*" MaxHeight="80"/> <RowDefinition Height="3*" /> </rowdefinition></rowdefinition></grid.rowdefinitions></grid>

Windows/Linuxでポートフォワーディングする方法

Ⅰ. はじめに Ⅱ. やり方(Windows) 「127.0.0.1:8080に来たパケットを全て127.0.0.1:80に流す」設定を追加する 設定を削除する 設定を確認する 留意点 その他 Ⅲ. やり方(Linux) 「0.0.0.0:8080でリッスンし、パケットを全て10.0.0.2:8081に流す」設定を追…

VisualStudioでx64アセンブリを書き、実行する方法

Ⅰ. はじめに 2018/01/03時点、VisualStudioでプラットフォームをx64と指定した場合インラインアセンブリ(__asm)がサポートされていない為使えません。 エラー C4235 非標準の拡張機能が使用されています: '__asm' キーワードはこのアーキテクチャではサポ…

C++(EXE)からC#(DLL)の関数を呼び出す

Ⅰ. はじめに Ⅱ. 「C++/CLIを使う」方法 1. C++のプロジェクト設定を開き「共通言語ランタイム サポート (/clr)」に変更する 2. サンプルプログラム 3. 実行結果 Ⅲ. 「C#(DLL)側で関数をエクスポートする」方法 1. サンプルプログラム 2. DllExport.bat をダ…

Windowsでsyscallする方法

Ⅰ. はじめに タイトルの通り「Windowsでsyscallする方法」です。 この記事はWOW64を対象とした内容になっています。 x64向けはこちら http://kagasu.hatenablog.com/entry/2018/01/03/200337 Ⅱ. 環境 Windows 10 64bit 1709 Ⅱ. サンプルプログラム サンプル…

C#でChromiumを使う(WinForms, WPF)

Ⅰ. はじめに Ⅱ. WinFormsで使う場合 1. NuGetからパッケージをインストールする 2. プラットフォームをx86またはx64に変更する 3. サンプルプログラムを書く 4. 実行結果 Ⅲ. WPFで使う場合 1. NuGetからパッケージをインストールする 2. プラットフォームをx…