備忘録

備忘録

2017-01-01から1年間の記事一覧

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

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

macOSの起動音を消す

動作確認済み環境 MacBook Pro(Retina, 15-inch, Mid 2015) macOS Sierra 10.12.6 消す git clone https://github.com/teored90/nobootsound cd nobootsound sudo sh install.sh デフォルト値に戻す sudo sh install.sh -u 参考 https://github.com/teored90…

呼出規約とは

Ⅰ. はじめに Ⅱ. 環境 Ⅲ. 呼出規約(calling convention)とは Ⅳ. cdecl main.cpp 逆アセンブル ポイント リバースエンジニア向けのポイント Ⅴ. stdcall main.cpp 逆アセンブル ポイント リバースエンジニア向けのポイント Ⅵ. fastcall main.cpp 逆アセンブル …

Windowsでsyscallする方法

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

Fiddler Orchestraの使い方

Ⅰ. はじめに タイトルの通り「Fiddler Orchestraの使い方」です。この記事は以下の記事を基にして書かれています。 https://www.telerik.com/blogs/a-brief-user-guide-on-fiddler-orchestraFiddler Orchestraについてはこちらの記事を参照して下さい。 http…

Fiddler Orchestraとは

Ⅰ. はじめに 2017/08/24 にFiddler Orchestraについての概要が公式ブログでアナウンスされました https://www.telerik.com/blogs/fiddlercore-for-net-standard-and-fiddler-orchestra-the-future-of-fiddlerこの記事では上記公式ブログの情報を基にFiddler …

FetchAPIを使ってGET/POSTする方法

Ⅰ. はじめに Ⅱ. GETする サンプルプログラム 実行結果 Ⅲ. POSTする(JSON) サンプルプログラム 実行結果 Ⅳ. POSTする(application/x-www-form-urlencoded) サンプルプログラム 実行結果 Ⅰ. はじめに タイトルの通り「FetchAPIを使ってGET/POSTする方法」です…

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

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

HTML5でプログレスバーを使ってカウントダウン、カウントアップをする方法

Ⅰ. はじめに タイトルの通り「HTML5でプログレスバーを使ってカウントダウン、カウントアップをする」方法です。 progress要素とoutput要素はHTML5で導入されました。よって、HTML5以降のみで動作します。 Ⅱ. サンプル 1. 10秒カウントダウン codepen.io 2. …

IDAにスキンを適応する

Ⅰ. はじめに タイトルの通り「IDAにスキンを適応する」方法です。 Ⅱ. 環境 IDA Pro 7.0 でテスト済み ※IDA 7.3以上はIDA本体にスキン機能が実装された為、本記事の内容を実行する必要はありません。 Ⅲ. やり方 1. ダウンロードする https://github.com/zyant…

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を取得する」方法で…

bashで文字列を数値に変換して数値計算する方法

Ⅰ. はじめに bashの変数は全てを文字列として扱う為、そのままでは数値計算ができません。 数値計算を行う方法として以下の3通りあります。 # 概要 1 $(())を使う方法 2 exprを使う方法 3 bcを使う方法 Ⅱ. $(())を使う方法 $ echo $((10+10)) 20 Ⅲ. exprを使…

Fiddlerで常に特定ホストのログを除外する方法

Ⅰ. はじめに 簡単な方法として、セッションを選択→右クリック→Filter Now→ Hide example.com とする事で除外できます。 しかし、以下の2点が非常に面倒です。 1. Fiddler起動時に設定が初期化される 2. ワイルドカード指定する場合、TextBoxで編集する形にな…

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

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

C#でSSD/HDD等のシリアル番号を取得する方法

C#

2024/01/30追記 Ⅰ. はじめに 1つ目 2つ目 Ⅱ. やり方(1つ目) サンプルプログラム 実行結果 Ⅲ. やり方(2つ目) サンプルプログラム 実行結果 Ⅳ. その他 1つ目について 2つ目について 2024/01/30追記 WMICが廃止されます https://techcommunity.microsoft.co…

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 のソースコー…

.NET 難読化ツール「Obfuscar」の使い方

Ⅰ. はじめに 無料で利用できる難読化ツール Obfuscar の使い方です。 GitHubでソースコードが公開されています。 https://github.com/lextm/obfuscar Ⅱ. 使い方 1. NuGetから必要なライブラリをインストールします Install-Package Obfuscar 2. プロジェクト…

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…

C# 16進数文字列をbyte[]に変換する方法

C#

Ⅰ. はじめに Ⅲ. 16進数文字列→byte[] Ⅳ. byte[] → 16進数文字列 Ⅰ. はじめに タイトルの通り「16進数文字列をbyte[]に変換する方法」です。 Ⅲ. 16進数文字列→byte[] Main.cs static void Main(string[] args) { byte[] bytes = "01 02 03".ToByteArray(); //…

はてなスターを無効にする方法

Ⅰ. はじめに SEO、アクセス数目的で「はてなスター」をつける人が目立ってきました。 非常に不快かつ迷惑極まりない行為です。 はてなブログ利用者ができる対応として「はてなスター」の機能そのものを無効化させる方法を紹介します。また、無駄なデータ通信…

C# で Redis を使う

Ⅰ. はじめに タイトルの通り「C# で Redis を使う方法」です。 ライブラリは「StackExchange.Redis」を使います。 Ⅱ. 使い方 NuGetから必要なライブラリをインストールします Install-Package StackExchange.Redis 文字列をセットする var redis = Connectio…

C# でSMTP サーバを建ててメールを受信する方法

C#

Ⅰ. はじめに タイトルの通り「C# でSMTP サーバを建ててメールを受信する方法」です。 cosullivan/SmtpServer を使います ※画像はWikipediaより Ⅱ. やり方 1. NuGetから必要なライブラリをインストールする Install-Package SmtpServer Install-Package Mime…

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

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

C#でHttpClientにSOCKS Proxyを利用する方法

C#

Ⅰ. はじめに Ⅱ. やり方(.NET6以上の場合) 1. サンプルプログラム 2. 実行結果 Ⅲ. やり方(HttpToSocks5Proxyを利用する方法) 1. NuGetから HttpToSocks5Proxy をインストールする 2. サンプルプログラム 3. 実行結果 留意点 Ⅳ. やり方(DotNet4.SocksProx…

CentOSでSOCKSサーバ(Dante)を構築する

Ⅰ. はじめに Inferno Nettverk A/S によって開発されているSOCKS4,5サーバ Dante の構築方法です。UbuntuでSOCKSサーバ(Dante)を構築する方法はこちら https://kagasu.hatenablog.com/entry/2020/09/28/075504 Ⅱ. 環境 $ cat /etc/redhat-release CentOS Lin…

C# 7.1 非同期Mainを使う

C#

Ⅰ. はじめに C# 7.1の新機能の1つに「非同期Main」があります。 C# 7までは Main関数で async/await は利用不可でした。 C# 7 まで static void Main(string[] args) => MainAsync().Wait(); static async Task MainAsync() { await Task.Delay(1); Console.…