サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ブラックフライデー
qiita.com/msmania
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに 2022 年 11 月の初めに、OpenSSL で Severity: High の脆弱性が 2 つ修正されました。 このうち、CVE-2022-3602 の修正が if 条件式の不等号に = を加えるだけという典型的な Off-by-one error であったこともそこそこ話題になりました。プログラミングは難しい。 ファイル名から分かるように、この処理は Punycode デコーダーの一部です。Punycode といえば、非 ASCII 文字を含むホスト名を ASCII 文字に変換するときなどに使われるやつで、日本語ドメイ
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに 少し前に、ネタと時間がありそうだったので、勢いで 12/24 のアドベント カレンダーに登録してしまいました。その記事の準備のため、Windows のページ テーブル周りの動きを調べていたところ分量が増えてきたので、アドベント カレンダーの記事を分けることにしました。どうせ Windows カテゴリ人気ないし。貸し切り状態ですわ。 第一回目の記事は、ページングについてです。何を今更、って感じですかね。OS 小学校の一年生ぐらいで習う内容かもしれませんが、私の頭と指のリハビリにお付き合いください。最近文章を書いていないので筆が進
はじめに 掲題の方法を非破壊的、すなわちソースコードや実行可能モジュールのファイルを変更せずに実現するツールを作りました。より具体的には、「実行中のプロセスの任意の箇所をフックして、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 クライアントのライブ
関数 hoge は、p が c1 のインスタンスであるときには c1::func を呼び、p が c2 のインスタンスであるときには c2::func を呼ぶ必要があります。これを実現するための一つの方法が VTable です。実際にどうやって実装されているかは後述するとして、イメージを簡単に説明すると以下のような仕組みです。 クラス毎に、そのクラスの仮想関数へのポインターを集めたテーブルを作り、これを VTable と呼ぶことにします。上記例の c1, c2 であれば、以下のような配列 vtable_c1, vtable_c2 を予め作っておくイメージです。このとき、関数毎にインデックスを決めて、そのインデックスはクラス間でも共通になるようにします。ここでは例えば、func 関数は VTable の先頭に配置することにします。 クラスのインスタンスを作るとき、その VTable へのポイ
このページを最初にブックマークしてみませんか?
『@msmaniaのマイページ - Qiita』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く