備忘録

備忘録

Windows

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…

C++でWindowsのバージョンを取得する

Ⅰ. はじめに Ⅱ. 方法1 Ⅱ. 方法2 Ⅲ. 実行結果 参考 Ⅰ. はじめに タイトルの通り「C++でWindowsのバージョンを取得する」方法です。 Ⅱ. 方法1 以下レジストリの値を読み取る (サンプルプログラム省略) HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\Cur…

C++でプロセス名からプロセスIDを取得する

Ⅰ. はじめに Ⅱ. サンプルプログラム 1. CreateToolhelp32Snapshot を利用する場合 2. EnumProcesses を利用する場合 3. NtQuerySystemInformationを使用する方法 Ⅲ. 実行結果 Ⅰ. はじめに タイトルの通り「C++でプロセス名からプロセスIDを取得する」方法で…

C++ リンカエラーを非表示にする方法

Ⅰ. はじめに タイトルの通り「C++ リンカエラーを非表示にする方法」です。 型キャスト等で出力されるコンパイラ警告は以下の一行で非表示にできますが、リンカエラーは #pragma では不可能です。 #pragma warning(disable:4312) コンパイラ警告の例 「C4312…

cpprestsdk をビルドしてstatic linkする

Ⅰ. はじめに cpprestsdk の使い方はこちらcpprestsdk はNuGetで dynamic link 版が配布されています。 static link 版は配布されていません。static link する為には2017/10/08時点、自分でビルドするしか方法がありません。 Ⅱ. 必要なもの VisualStudio 201…

C++でHTTP(S)でGET/POSTする(cpprestsdk の使い方)

Ⅰ. はじめに Ⅱ. なぜ「C++ RESET SDK(cpprestsdk)」を選んだのか Ⅲ. インストール方法 Ⅳ. GET(同期) Ⅴ. GET(非同期) 実行結果 Ⅵ. POST(JSON)(非同期) 実行結果 Ⅶ. POST(form-urlencoded) 実行結果 その他 Ubuntuでコンパイルする時 参考 Ⅰ. はじめに .…

OpenSSLをWindowsでビルドする方法

Ⅰ. はじめに タイトルの通り「OpenSSLをWindowsでビルドする方法」です。 コンパイル済みライブラリだけ欲しい人はこちら Ⅱ. 環境(必要なもの) ・Visual Studio 2017 Community (C++) ・Perl(ActivePerl を利用しました) ・OpenSSL 1.0.2l のソースコー…

SYSTEM権限でアプリケーションを実行する方法

Ⅰ. はじめに タイトルの通り「NT AUTHORITY\SYSTEM」でアプリケーションを実行する方法です。 Ⅱ. やり方 やり方は3つあります。 1. AprelTech社のRunAsSystemを使う方法 https://www.apreltech.com/Free/How_to_run_as_system_user非常にわかりやすいGUIがあ…

Administrator アカウントの有効化、無効化を行う方法

有効化 コマンドプロンプトで以下のコマンドを実行する net user administrator /active:yes 無効化 コマンドプロンプトで以下のコマンドを実行する net user administrator /active:no 参考 https://msdn.microsoft.com/ja-jp/library/windows/hardware/dn8…

Windows ダウンロードしたファイルをブロックさせない

Ⅰ. はじめに デフォルト設定の場合、インターネットからダウンロードしたファイルには自動的に「ゾーン識別子情報」が付加されます。 これによりファイルにアクセスしようとするとセキュリティの警告が表示されます。 Ⅱ. ブロックさせない方法(「ゾーン識別…

右クリックで出てくるSkyDrive Proを消す

Ⅰ. はじめに タイトルの通り「右クリックで出てくるSkyDrive Proを消す」方法です。 Office 2013をインストールすると右クリックに出てきます。 Ⅱ. 消し方 1. 以下のテキストをx.regという名前をつけて保存し、実行する。 Windows Registry Editor Version 5…

Windows 10 アプリのバックグラウンド実行を許可しない

Ⅰ. はじめに Windows10 では使っていないアプリでもバックグラウンドで動作していることがあるそうです。 Ⅱ. バックグラウンド実行を許可しない方法 1. Windows キー + I で設定を開く 2. 「プライバシー」→「バックグラウンドアプリ」 3. 「オフ」に変更す…

Windows10 右クリックの編集の関連付けを変更する

Ⅰ. はじめに タイトルの通り「Windows10 右クリックの編集の関連付けを変更する」方法です。 Ⅱ. やり方(拡張子がtxtの場合) 1. レジストリエディタを起動 2. 以下のキーに移動 HKEY_CLASSES_ROOT\SystemFileAssociations\text\shell\edit\command 3. 任意…

Windows 10 でUACを無効にする

Ⅰ. はじめに タイトルの通り「Windows 10 でUACを無効にする」方法です。 無効にしてもユニバーサルアプリ(Edge等)の使用が可能です。レジストリの FilterAdministratorToken を書き換えても意味はありません。 Ⅱ. 動作確認済み環境 Windows 10 64bit 1607…

Windows 10 ナビゲーションウィンドウの邪魔なフォルダを消す

Ⅰ.はじめに 私個人としては「ビデオ」「ピクチャ」「ドキュメント」といったフォルダは頻繁に使用しないため非常に邪魔です。 消し方 1. 以下のテキストをx.regという名前をつけて保存し、実行する。 Windows Registry Editor Version 5.00 ; Desktop [-HKEY…

C++ で全ての例外を try catch 出来るようにする方法

Ⅰ. はじめに Visual Studioのデフォルト設定ではWindowsが発行する「システム的な例外」を捉えることはできません。 無効なメモリアドレスへのアクセス 0での割り算 等が「システム的な例外」に該当します。また、「『システム的な例外』をプログラム上で扱…

C++で複数プロセスから読み書き可能な共有メモリを作る

Ⅰ. はじめに Ⅱ. サンプル 1. 共有メモリにデータを書き込むだけのプログラム 2. 共有メモリからデータを読み込むだけのプログラム Ⅲ. カーネルモードについて Ⅳ. 実行結果 その他 Ⅰ. はじめに あるプロセスのメモリ空間には他のプロセスからアクセスする事が…

BCD を修正する

Ⅰ. はじめに BCD(Boot Configuration Data)(ブート構成データ)を修正する方法です。 Windows と Linux をデュアルブートした状態から Grub を消して Windows のみブートさせる場合などに必要な作業となります。 Ⅱ. やり方 1. ブート可能な Windows メディ…

プロセスセキュリティまとめ

Ⅰ. はじめに OpenProcess などで使われるアクセス権のフラグまとめです。 Ⅱ. まとめ PROCESS_ALL_ACCESS 0x1FFFFF PROCESS_CREATE_PROCESS 0x80 PROCESS_CREATE_THREAD 0x2 PROCESS_DUP_HANDLE 0x40 PROCESS_QUERY_INFORMATION 0x400 PROCESS_SET_QUOTA 0x10…

プロテクトを回避してメモリをフルダンプする

Ⅰ.はじめに Ⅱ. Belkasoft Live RAM Captureのすごいところ Ⅲ. メモリダンプ方法 1. Belkasoft Live RAM Captureをダウンロードする 2. 保存先を指定し、Captureをクリックする 3. 以上でダンプ完了です。 Ⅳ. ダンプから画像ファイルを取り出す 1. WinHexでダ…

Windows 10 Hyper-Vを有効/無効にする方法

はじめに 有効にする 無効にする はじめに タイトルの通り「Windows 10 Hyper-Vを有効/無効にする方法」です。 有効にする 1. Windowsキー + Rを押す optionalfeatures2. Hyper-Vのチェックを入れる 3. 以下コマンドを実行する(必須ではない場合があります…

Windows 10 右クリックメニューのペイント 3D関係の項目を消す方法

「ペイント3Dで編集する」を消す ※以下コマンドをコマンドプロンプトで実行する reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\SystemFileAssociations\.bmp\Shell\3D Edit" /f reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\SystemFileAssociations…

Glancesをインストールする

Glancesとは システムモニタリングツールです。 クロスプラットフォームで動作します。 Unix系に限らずWindowsでも動作します。 Pythonで書かれています。 公式WEBサイト https://nicolargo.github.io/glances/ インストール方法 1. インストールする $ curl…

Windowsで右クリック時の不要な項目を消す

Ⅰ. はじめに Windows で右クリックした時の「以前のバージョンの復元」や「送る」といった項目は一切利用しません。 よって、邪魔なので消します。 Ⅱ. 「送る」を消す コマンドプロンプトで以下を実行する reg delete HKEY_CLASSES_ROOT\AllFilesystemObject…

Windows 10 右クリックメニューのWindows Defenderでスキャンしています...を消す

Windows 10 右クリックメニューのWindows Defenderでスキャンしています...を消す Windows Registry Editor Version 5.00 [-HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers\EPP] [-HKEY_CLASSES_ROOT\Directory\shellex\ContextMenuHandlers\EPP] [-HKEY_…

Windows 10 OneDriveアンインストール方法

Ⅰ. はじめに タイトルの通り「Windows 10 で OneDriveをアンインストール方法」です。 Ⅱ. やり方 1. 設定を開く 2. チェックを外す 3. 以下のレジストリを削除する Windows Registry Editor Version 5.00 [-HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B5…

Windows 10 Windows Defenderを完全に無効にする

1.以下のレジストリを追加する Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender] "DisableAntiSpyware"=dword:00000001 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager] "…