備忘録

備忘録

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する方法

Ⅰ. はじめに タイトルの通り「FetchAPIを使ってGET/POSTする方法」です。 2017/12/16時点でIE11はサポートされていません。 https://caniuse.com/#search=fetch Ⅱ. GETする サンプルプログラム async function Get(url) { var response = await fetch(url); …

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 Ⅲ. やり方 1. zyantific/IDASkins から IDA-7.0-prerelease.zip をダウンロードする https://github.com/zyantific/IDASkins/releases 2. IDAインストールディレクトリ…

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

Ⅰ. はじめに タイトルの通り「C++でWindowsのバージョンを取得する」方法です。 Ⅱ. サンプルプログラム #include <Windows.h> #include <iostream> typedef LONG NTSTATUS, *PNTSTATUS; #define STATUS_SUCCESS (0x00000000) #define OS_ANYSERVER 29 typedef NTSTATUS(WINAPI* Rt</iostream></windows.h>…

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

Ⅰ. はじめに タイトルの通り「C++でプロセス名からプロセスIDを取得する」方法です。 Ⅱ. サンプルプログラム #include <Windows.h> #include <tlhelp32.h> #include <iostream> DWORD GetProcessIdByName(const wchar_t *processName) { auto entry = PROCESSENTRY32{ sizeof(PROCESSENTRY32) </iostream></tlhelp32.h></windows.h>…

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

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

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

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

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

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

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

C#

Ⅰ. はじめに 以下のコマンドを実行すると記憶媒体(SSD/HDD等)のシリアル番号を取得する事ができます。 vol c:ドイブ C のボリューム ラベルがありません。 ボリューム シリアル番号は A8D9-2235 ですこのシリアル番号をC#のプログラムで取得する方法です。…

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 実行結果 Ⅴ. POST(JSON) 実行結果 Ⅵ. POST(form-urlencoded) 実行結果 その他 Ubuntuでコンパイルする時 参考 Ⅰ. はじめに .NET系 であれば WebClient や HttpCli…

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[]に変換する方法」です。 処理速度は考慮してません。 LINQ 拡張メソッドの Chunksについては参考に書いてあるブログのコードをそのまま利用しています。 Ⅱ. 16進数文字列→byte[] "0x000102030405" byte[] b…

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

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

C# で Redis を使う

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

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

C#

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

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

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

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

C#

Ⅰ. はじめに Ⅱ. やり方(DotNet4.SocksProxyを利用する方法) 1. NuGetから DotNet4.SocksProxy をインストールする 2. サンプルプログラム 3. 実行結果 Ⅲ. やり方(SocksSharpを利用する方法) 1. NuGetから SocksSharp をインストールする 2. サンプルプロ…

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

Ⅰ. はじめに Inferno Nettverk A/S によって開発されているSOCKS4,5サーバ Dante の構築方法です。 Ⅱ. 環境 $ cat /etc/redhat-release CentOS Linux release 7.3.1611 (Core) $ uname -a Linux xxx 3.10.0-514.6.2.el7.x86_64 #1 SMP Thu Feb 23 03:04:39 U…

C# 7.1 非同期Mainを使う

C#

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

C# Zlibで圧縮、展開する

C#

Ⅰ. はじめに Zlibのマジックナンバーは2バイトです。 「78 DA」「78 01」「78 9C」等がメジャーです。 詳しくはRFC 1950で定義されています。 https://www.ietf.org/rfc/rfc1950.txt Ⅱ. やり方 NuGetから Iconic.Zlib.Netstandard をインストール 圧縮 bytes…

HttpClient で任意のHTTPヘッダを指定した時 FormatException が発生する

C#

Ⅰ. はじめに 通常HttpClientでHTTPヘッダを指定する場合は以下のように書くことが出来ます。 var client = new HttpClient(); client.DefaultRequestHeaders.Add("User-Agent", "hoge"); しかし、User-AgnetやAuthorization等のよく知られたヘッダは自動的に…

Vue.js + Onsen UI + webpack で ページを切り替える方法

Ⅰ. はじめに タイトルの通り「Vue.js + Onsen UI + webpack で ページを切り替える方法」です。 この方法が推奨されているやり方かどうかは不明です…。 Ⅱ. やり方 1. App.vue を書き換える <v-ons-splitter-content> <component :is="currentPage"></component> </v-ons-splitter-content> import HomePage from './components/HomePage' import AboutPag…

Vue.js + Onsen UI + webpack で helloworld する

Ⅰ. はじめに タイトルの通り「Vue.js + Onsen UI + webpack で helloworld する」方法です。 Ⅱ. やり方 1. vue-cliのインストール $ npm install -g vue-cli 2. Vue.js +Onsen UI + webpack のテンプレートを使って初期化する $ vue init OnsenUI/vue-cordov…

Vue.js で 子から親のdataにアクセスする

Ⅰ. はじめに タイトルの通り「Vue.js で 子から親のdataにアクセスする」方法です。 この方法が推奨されているやり方かどうかは不明です…。 Ⅱ. やり方 親 main.js new Vue({ data () { return { hoge: 'abc' } } }) 子 xxx.vue 階層が深くなればなるほど $pa…