備忘録

備忘録

C#でローカルIPアドレスを列挙する方法

C#

Ⅰ. はじめに タイトルの通り「C#でローカルIPアドレスを列挙する方法」です。 Ⅱ. サンプルプログラム Program.cs using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.NetworkInformation; using Syste…

Nintendo SwitchでYouTubeの動画を再生する方法

Ⅰ. はじめに タイトルの通り「Nintendo SwitchでYouTubeの動画を再生する方法」です。 元ネタはSciresM氏のツイートです。Looks like @ylws8 publically documented the 1.0.0 web browser launch: https://t.co/jjBwGy9kPy (Requires a Japanese cartridge …

C#でYouTube APIを利用する方法

Ⅰ. はじめに タイトルの通り「.NETでYouTube API v3を利用する方法」です。 サンプルとして「任意の単語で検索し、動画IDと動画タイトルを表示する」プログラムを書きます。以下2つの環境で動作確認を取りました。 .NET Framework 4.5 .NET Core 2.0 Ⅱ. やり…

Nintendo Switchで任意の動画を再生する

Ⅰ. はじめに 元ネタはSciresM氏のツイートです。Looks like @ylws8 publically documented the 1.0.0 web browser launch: https://t.co/jjBwGy9kPy (Requires a Japanese cartridge copy of Puyo Puyo Tetris). Nice! :)— Michael (@SciresM) 2017年12月1日…

Nintendo Switchで再生可能な動画フォーマット

Ⅰ. はじめに タイトルの通り「Nintendo Switchで再生可能な動画フォーマット」です。Wii Uや2DS/3DSの情報は公式サポートページに情報がありますが、Nintendo Switchに関する情報がありません。 Wii U - What Web Applications and File Types Are Compatibl…

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 をダ…

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

Ⅰ. はじめに タイトルの通り「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) 実行結果 参考 Ⅰ. はじめに .NET系 であれば WebClient や HttpClient が標準である為、 追加のライ…

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