備忘録

備忘録

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 AboutPage from './components/AboutPage' import MenuPage from…

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…

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

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

ChromeやFireFoxの開発者ツールを無効にする

Ⅰ. はじめに 開発者ツール(デベロッパーツール)を使えなくする方法です。開発者ツールが使える状況ではデバッガ等の強力な機能が利用可能になります。 JavaScriptの難読化を行っていてもデバッガが利用可能なので何らかの解析が可能になります。 そういっ…

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

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

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 1703(Creators Up…

Vue.js + webpack で Bootstrap を使う

Ⅰ. はじめに Vue.js + webpack の基本的なインストール方法はこちらを参照して下さい。 http://kagasu.hatenablog.com/entry/2017/07/24/082405上記で作った環境にBootstrap v4をインストールする方法です。 Ⅱ. やり方 1. bootstrap-vue をインストール $ np…

Vue.js + webpack で helloworld する

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

Vue.jsでaxiosを使ってJSONデータを利用する

Ⅰ. はじめに タイトルの通り「Vue.jsでaxiosを使ってJSONデータを利用する」サンプルです。以下のJSONから [ { "name" : "name001" }, { "name" : "name002" }, { "name" : "name003" } ] 以下のように出力するサンプルです。 name001 name002 name003 Ⅱ. サ…

C#でDiscord BOTを作る

Ⅰ. はじめに kagasu.hatenablog.comこちらの記事でプログラミング不要なBOTの作成方法を書きましたが、 細かい動きをするBOTを作るにはコード書く必要があります。この記事ではC#でecho botのサンプルを紹介します。 Ⅱ. 環境 Windows 10 64bit 1703 Visual S…

DiscordでTwitterやSteamやブログRSSを通知するBOTを作る方法

Ⅰ. はじめに ・Twitterで誰かがツイートした時 ・ブログが更新された時 ・Steamゲームのニュースが更新された時 等、何か起きた時に自動的にDiscordで通知を受け取る方法です。上記のようなケースだけでなく、様々なケースに応用が可能です。 また、IFTTT を…

.NET CoreでSystem.Drawingを使う

Ⅰ. はじめに System.Drawing は WindowsのGDI+に依存している為標準の.NET Coreで利用することができません。 解決策として CoreCompat.System.Drawing を使う方法を紹介します。 Ⅱ. Windowsの場合 1. NuGet で CoreCompat.System.Drawing をインストールす…

WindowsでPOCO C++を使う

C++

Ⅰ. はじめに 「POCO C++」はモダンで強力なC++ライブラリです。 XML JSON Zip DB (SQLite, ODBC, MySQL) Foundation(基本機能ライブラリ Base64変換等) 等の機能があります。 Ⅱ. Windows で使う 1. コンパイルする Testは不要なのでアンロードさせます。 2. …

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

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

C#でテンプレートマッチを行う

C#

Ⅰ. はじめに OpenCV3 のラッパーである OpenCvSharp の MatchTemplate メソッドを使ってテンプレートマッチを行います。 Ⅱ. サンプル スクリーンショットを取り、メモ帳のアイコンを探すサンプルです。 NuGet から OpenCV3 のラッパーをインストールする。 t…

Windows で touch を使う

Ⅰ. はじめに Windows に touch コマンドは存在しません。 Ⅱ. やり方 type nul > hoge.txtこれは以下のコマンドに相当します。 touch hoge.txt Ⅲ. 参考 https://web.archive.org/web/20150510181656/http://text.readalittle.net/article.php?id=244

C# で HMACSHA256を計算する

C#

string CalculateHMACSHA256(byte[] bytes) { using (var hmacsha256 = new HMACSHA256(key)) { var bs = hmacsha256.ComputeHash(bytes); return BitConverter.ToString(bs).ToLower().Replace("-", ""); } } // 出力例 // b248bb2b861e5efe1e5bea3722b19c6…

Photonの生パケットを読む

Ⅰ. はじめに 1. Photon とは クロスプラットフォームで動作する「ネットワークエンジン」です。 ドイツのベンチャー企業「Exit Games」が開発しています。「クラウド(SaaS)」と「オンプレミス」が選択できます。 アジアリージョンのクラウドはGMOが独占して…

C#で bzip2 の圧縮、展開を行う方法

Ⅰ. はじめに タイトルの通り「C#で bzip2 の圧縮、展開を行う方法」です。 Ⅱ. SharpZipLib をインストールする SharpZipLib というライブラリを使います。 1. NuGet から SharpZipLib で検索し、インストールする。 ※.NET Standard 版もありますが、作成者の…

リバースエンジニアリングを楽にする単語のメモ

Ⅰ. はじめに タイトルの通り「リバースエンジニアリングを楽にする単語のメモ」です。 随時追加します。 Ⅱ. 一覧 algorithm encrypt encode decrypt decode cipher extract rijndael aes pkcs rsa x509 certificate key block cbc su MII RSA暗号秘密鍵/公開…

WebSocket4Net C# .NET Standard対応 WebSocket ライブラリ

Ⅰ. はじめに WebSocket4Net は2017/05/11 時点でベータ段階ですが .NET Standard 対応の WebSocket ライブラリです。 Ⅱ. 使い方 1. 「プレリリースを含める」にチェックを入れる 2017/05/11 時点で .NET Standard 対応版がベータ段階なのでチェックを入れま…

Packer Detector一覧

Ⅰ. はじめに 解析対象のバイナリがどの Executable Packer を使っているかを自動的に判定するツールです。 Ⅱ. Packer Detector 一覧 Exeinfo PE http://exeinfo.atwebpages.com/ Detect It Easy http://ntinfo.biz/ PEiD http://www.peid.info/ 2017/05/07時…

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

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

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

Ⅰ. はじめに あるプロセスのメモリ空間には他のプロセスからアクセスする事ができません。 OpenProcess してアクセス権を得てもメモリ上のどのアドレスに何のデータが保存されているか簡単に分かりません。 この問題は複数プロセスで共有して使えるメモリ空…

C++でShift-JIS, UTF-8, UTF-16 BOM有無とエンディアンを考慮してファイルの読み込みをする

C++

Ⅰ. はじめに タイトルの通り「C++でShift-JIS, UTF-8, UTF-16 BOM有無を考慮してファイルの読み込みをする」方法です。 参考のURLには重要な内容が含まれているので目を通してください。 Ⅱ. 環境 Visual Studio 2017 Windows 10 Pro 64 bit Version 1703 (Cr…

C++ ファイルを全て読み込む

C++

Ⅰ. はじめに STL を使ってファイルを全て読み込む(全行読み込む)方法です。※追記 C++でShift-JIS, UTF-8, UTF-16 BOM有無とエンディアンを考慮してファイルの読み込みをする - 備忘録 Ⅱ. サンプル test.txt aiueo Source.cpp #include <iostream> #include <fstream> using na</fstream></iostream>…

C# で HtmlAgilityPack を使って HTML の要素値を XPath で取得する

Ⅰ. はじめに タイトルの通り、「C# で HtmlAgilityPack を使って HTML の要素値を XPath で取得する」方法です。 Web スクレイピングが簡単になります。 Ⅱ. サンプル http://example.comの「タイトル」と「リンク先(href)の値」を取得するサンプルです。 1.…

C# で Mailgun や SendGrid などを使ってメールを送信する

C#

Ⅰ. はじめに メール配信サービスのAPIをラップした FluentEmail というライブラリの紹介です。 .NET Standard で作られているためクロスプラットフォームで動作します。各サービスの API ドキュメントには HttpClient や RestClient 等を使って Web API を直…

nginx で autoindexの文字化けを治す

Ⅰ. はじめに nginx の autoindex を on にしただけだと以下のように文字化けします。 これを治す方法です。 Ⅱ. やり方 1. charset utf-8; を追加する server { listen 80; root /var/www/html/hoge; index index.html; location / { autoindex on; charset u…

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…

仲介DLLを作成する

Ⅰ. はじめに 仲介DLLを作成する方法です。 DLL Proxy や DLL Wrapper とも呼ばれています。 Ⅱ. やり方 こちらを使います。 https://github.com/mavenlin/Dll_Wrapper_Gen 1. ファイルを自動生成する python Generate_Wrapper.py hoge.dll 2. ソリューション…

DoubleAgent を試してみる

Ⅰ. はじめに DoubleAgent とは? Microsoft Application Verifer を悪用した攻撃の事です。 セキュリティ会社 Cybellum によって 2017/03/22 に公開されました。 何ができるの? プロセスの開始と同時に 任意の dll が読み込まれ任意コードの実行が可能にな…

.NET Core で 実行ファイル(.exe)を作成する

Ⅰ. はじめに .NET Core のプロジェクトで .exe を作成する方法です。 .NET Core のプロジェクトのデプロイ方法は2通りあります。 # デプロイ方法の名称 略称 実行方法 1 Framework-dependent deployments FDD コマンドで dotnet run として実行する 2 Self-c…

C#でプロセスのスレッド一時停止させる

C#

Ⅰ. はじめに プロセスのサスペンド、リジュームを拡張メソッドにして使いやすくしたクラスを紹介します。 コピペで動きます。 Ⅱ. プログラム Program.cs var process = Process.GetProcessesByName("notepad").FirstOrDefault(); process.Threads.Suspend();…

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

Ⅰ.はじめに 物理メモリを任意の物理記憶媒体にダンプする方法です。 Belkasoft社の無料ダンプツール(Belkasoft Live RAM Capture)を利用します。 Ⅱ. Belkasoft Live RAM Captureのすごいところ 無料 ダンプ後のファイルを解析するBelkasoft Evidence Cente…

一時的なメールサービスのAPIサーバを作る

Ⅰ. はじめに 一時的なメールアドレスを作成するサービスはいくつか存在します。 一時的なメールアドレスを作成する - 備忘録しかし、どのサービスもAPI経由でのアクセスが出来ないものばかりです。 送信されるリクエストを解析してサービスを利用する事も可…

VisualStudio で貼り付け時にクォートを自動的にパースする

1. はじめに IntelliJ 系のIDEであればデフォルト機能として JSON や XPath の文字列をプログラムに貼付けする時に自動的にクォートがパースされます。 VisualStudioで同様の恩恵をうけるための拡張機能の紹介です。 2. SmartPaster2017 のダウンロード Smar…

Chrome UserAgentをワンクリックで切り替える

Ⅰ. はじめに Google Chrome はデベロッパーツールや拡張機能でUserAgentを簡単に変更することが可能です。 しかし、簡単といってもクリック回数が1回で切り替わるわけではありません。1クリックのみでトグル式にUserAgentを変更するツールが存在していなかっ…

Chrome Extension 拡張機能 アイコンクリック時に何かする

Ⅰ. はじめに ウィンドウを持たせずに、アイコンクリックで何かアクションを起こしたい場合に利用できます。 Ⅱ. サンプル manifest.json { "background": { "scripts" : [ "js/background.js" ] } } background.js chrome.browserAction.onClicked.addListene…

JavaScript難読化ツールの紹介と比較

Ⅰ. はじめに 無料で使える JavaScript の難読化ツールの紹介と比較です。 強力な難読化ツールは基本的に有料です。※2017/07/28 追記 こだわる人用 ChromeやFireFoxの開発者ツールを無効にする - 備忘録 Ⅱ. 比較 # 名前 難読化 1 JavaScript obfuscator for N…

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

Ⅰ. はじめに C#からC++(DLL)の関数を呼び出す方法です。 いわゆる P/Invoke です。Win32 API の P/Invoke はこのサイトを利用してコピペしたほうが早いです。 http://www.pinvoke.net/ Ⅱ. サンプル dllexport.def EXPORTS GetInt GetIntArray GetString GetS…

.protoをバイナリから作る

Ⅰ. はじめに .protoファイルが手元に無い場合はバイナリデータから元データをMessagePackのように完全に復元させることは困難です。 少しでも.protoファイルを楽して作る方法をメモ。私の知る限りバイナリから自動で.protoを生成するツールは公開されていま…

Androidで複数キーでソートする

Ⅰ. はじめに Java8で追加されたStream APIとComparatorを使ったソートはAndroid N (Android 7.0)以上でなければ動作しません。 Android N 以下の場合はlambdaで例外が発生しアプリが強制終了します。 Ⅱ. 使うライブラリ Lightweight-Stream-API を使います。…

自作PCを作るときにおすすめなサイト

Ⅰ. はじめに 基本的に、自作PCを作るときはパーツのリストを作ってから購入に踏み切ると思います。 その時のリスト作りに役立つWEBサイトの紹介です。 pcpartpicker.com https://pcpartpicker.com/list/作ったリストの消費電力まで計算してくれる優秀なサイ…

JavaでJSONを扱う(GSONの使い方)

Ⅰ. はじめに JavaでJSONを扱う方法です 最近人気のGoogleが開発しているライブラリ GSON を利用します。C#の場合はJSON.NETを利用すれば、クラスを作らなくてもJSONをdynamicに利用したり、LINQ to Objects ができますが、GSONはクラスが必須です。 Ⅱ. 使い…