サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Wikipedia
qiita.com/msmania
はじめに 少し前に、ネタと時間がありそうだったので、勢いで 12/24 のアドベント カレンダーに登録してしまいました。その記事の準備のため、Windows のページ テーブル周りの動きを調べていたところ分量が増えてきたので、アドベント カレンダーの記事を分けることにしました。どうせ Windows カテゴリ人気ないし。貸し切り状態ですわ。 第一回目の記事は、ページングについてです。何を今更、って感じですかね。OS 小学校の一年生ぐらいで習う内容かもしれませんが、私の頭と指のリハビリにお付き合いください。最近文章を書いていないので筆が進まないんですよ。 環境は以下の通りです。Windows 10 のバージョン表記はどうするのが正しいんですかね。 OS: Windows 10, version 20H2 + KB4594440 (OS Build: 19042.631) Debugger:
はじめに 掲題の方法を非破壊的、すなわちソースコードや実行可能モジュールのファイルを変更せずに実現するツールを作りました。より具体的には、「実行中のプロセスの任意の箇所をフックして、DLL に実装した任意のコードにジャンプして実行してから、元の処理に戻って動作を継続できる」ツールです。手前味噌ですがけっこう便利だと思います。現実的な使用場面として、パフォーマンス測定やカスタム ロギング、スレッドの競合を意図的に引き起こすためのタイミングの調整、などが考えられます。 msmania/procjack: Not Another Code Injection Toolkit https://github.com/msmania/procjack というわけでこの記事では、以下 2 つの実装例を紹介して Non-invasive instrumentation の便利さを伝えようと思います。残念な
はじめに Windows 10 では、幾つかの重要なプロセスが保護されていて、管理者権限やシステム権限を持っていてもデバッガーをアタッチすることが許可されていません。どんな層に需要があるか分かりませんが、これらの保護されたプロセスを、カーネル デバッガー、もしくはカーネル ドライバーを使って強引に jailbreak する方法について説明します。 さらに、Windows Defender のプロセス (MsMpEng.exe) には別の保護機能が実装されています。これもついでに解除してしまいましょう。Windows Defender に対する方法は、GitHub 上でオランダのハッカーから教えてもらいました。 環境 OS: Windows 10 1709 x64 + KB4048955 [Version 10.0.16299.64] Debugger: WDK for Windows 10
はじめに 前回 に引き続き、VTable シリーズ第二弾です。前回の記事で仮想継承について書くとか言っておきながら dynamic_cast についてです。補足として追記する予定だったのですが、それどころではない長さになったので記事を分けました。 dynamic_cast だけではなく、静的キャストついても調べました。キャストの挙動を理解したくてたまらない暇な人、ぜひ読んでください。 C++ のキャスト演算子についておさらい dynamic_cast は、型情報を使うことで up/down/side 方向の型変換をそれなりに安全にやってくれる機能です。型情報は VTable のエントリの一つであるため、dynamic_cast を使うためにはクラスが VTable を持っていないといけません。よって、クラスに仮想関数が少なくとも一つ必要です。そのようなクラスのオブジェクトを Polymor
はじめに 前回の PartitionAlloc の記事 に続いて、PartitionAlloc と双璧をなす Chromium のメモリ管理 Oilpan について紹介します。 本文中に出てくるデバッガー コマンドは、以下のエクステンションに含まれています。 GitHub - msmania/chromium-debug: Debugger extension for Chromium https://github.com/msmania/chromium-debug Oilpan 概要 Chromium プロジェクト公式のページはこちらです。 Blink GC Design https://chromium.googlesource.com/chromium/src.git/+/master/third_party/blink/renderer/platform/heap/BlinkGC
はじめに Chromium は、独自のヒープ管理機構を実装しており、OS が用意するヒープを使いません。その代わりに ParitionAlloc と Oilpan と呼ばれる 2 つのヒープ管理機構が存在し、確保するオブジェクトの種類によって使い分けられています。本記事では PartitionAlloc の詳細動作について紹介します。 PartitionAlloc 概要と特徴 Chromium プロジェクト公式の概要はこちらです。 PartitionAlloc Design https://chromium.googlesource.com/chromium/src.git/+/master/base/allocator/partition_allocator/PartitionAlloc.md デザイン上の特徴としては、メモリ領域をオブジェクトの種類と確保するサイズによって明確に分けてい
はじめに 単純な Web API を用意する必要があり、Falcon という若干マイナーな WSGI フレームワークを使ってみました。Falcon の公式サイトのサンプルやドキュメントの情報は十分なので、インストールしてすぐに使い始めるのはとても簡単です。しかし、細かいところで追加情報が必要だと感じることが多かったので、この記事で補いたいと思います。 Falcon - The minimalist Python WSGI framework https://falconframework.org/ 公式情報を日本語訳するだけのことは避けたいので、インストール方法や使い方を日本語で読みたいという方は、Qiita にある他の記事が参考になると思います。既に Falcon タグが作られています。この記事が記念すべき 10 件目。 Falconに関する9件の投稿 - Qiita http://qi
はじめに gRPC はじめました。ついこの前まで Python で Falcon で RESTful API だなどと粋がっていましたが、RESTful API のブームは過ぎ去り、gRPC がマイブームです。 grpc / grpc.io http://www.grpc.io/ gRPC とは、Google 様が作った RPC のライブラリです。主な特徴は、 多言語対応 2017/4/25 現在での対応言語: C++/Java/Python/Go/Ruby/C#/Node.js/Android Java/Objective-C/PHP HTTP/2 通信 の 2 つだと思います。 私が今書いてるプログラムにおいて、Web API から gRPC に全面移行するまでの思考の流れは次のような感じでした。 Web API の呼び出し側は C++ で書く必要があり、HTTP クライアントのライブ
はじめに 記念すべき Qiita 初投稿。お題は VTable についてです。 VTable の実装イメージ VTable の目的を端的に言い表すとすれば、「あるクラスのポインターが与えられ、そのポインターから仮想関数を呼び出す際、継承関係をうまいこと考慮した上で適切なクラスのメンバー関数を呼び出せる仕組み」でしょうか。例えば、継承関係にあるクラス c1, c2 と関数 hoge が以下のように定義されていると class c1 { public: virtual void func(); }; class c2 : public c1 { public: void func(); }; void hoge(c1 *p) { p->func(); } 関数 hoge は、p が c1 のインスタンスであるときには c1::func を呼び、p が c2 のインスタンスであるときには c2:
このページを最初にブックマークしてみませんか?
『@msmaniaのマイページ - Qiita』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く