memcrc - メモリCRCによる環境隠蔽カーネルモジュール
概要
memcrc は「Apatch」方式で動作するカーネルモジュールで、デバイス環境やプロセス環境の見え方を操作して隠蔽することを目的としています。メモリ上のパターン検出やCRC(チェックサム)を利用して対象箇所を特定し、kpatch を通じたパッチ適用でランタイムに振る舞いを変えます。管理用には Yuuki Parser 互換のコマンドフォーマットが用意され、パスのマッピング(PATH_MAPPING)、単一パス検出(SINGLE_PATH)、ptrace の UID 制御(PTRACE_UID)などを手軽に設定できます。セキュリティ用途だけでなく、研究・検証での利用は可能ですが、悪用リスクに注意が必要です。
リポジトリの統計情報
- スター数: 8
- フォーク数: 2
- ウォッチャー数: 8
- コミット数: 4
- ファイル数: 3
- メインの言語: C
主な特徴
- メモリ内のパターン/CRC を用いた対象検出と書き換えによる隠蔽機能
- kpatch を利用したカーネルランタイムパッチ適用の仕組みを同梱
- Yuuki Parser 形式のコマンド定義で運用設定が可能(PATH_MAPPING, SINGLE_PATH, PTRACE_UID 等)
- 軽量な構成(ソース・kpatch定義・README の構成)で読みやすい
技術的なポイント
memcrc はカーネル空間で対象箇所を特定するために、メモリ領域のチェックサム(CRC)や既知パターンの検索を利用する点が特徴です。CRC による照合は、単純なバイト列マッチよりも安定した検出を可能にし、バイナリのわずかな変化があっても対象を識別できる場合があります。kpatch ディレクトリはランタイムで関数を差し替える/追加するためのパッチ定義を含み、カーネル再ビルド不要で挙動を変更できます。管理インターフェースは Yuuki Parser 互換のシンプルなコマンド形式を採用しており、PATH_MAPPING(src→dst のマッピング)、SINGLE_PATH(単一パスまたはキーワードの検出)、PTRACE_UID(ptrace による UID ベースの制御)などを送信して動的に設定できます。ソースは C 言語で書かれており、カーネルモジュール特有の同期やメモリ管理、セキュリティコンテキストに配慮する実装が求められます。なお、この種のツールは正当なデバッグや研究用途に有用ですが、システムの隠蔽は悪用されるリスクもあるため、適用環境と運用は慎重に検討してください。
プロジェクトの構成
主要なファイルとディレクトリ:
- README.md: file
- kpatch: file
- src: dir
(src ディレクトリにカーネルモジュール本体の C ソース、kpatch にパッチ定義やマニフェストが入っている想定)
まとめ
カーネルレベルで環境の見え方を操作する軽量モジュール。用途は限定的で慎重な運用が必須。
リポジトリ情報:
- 名前: memcrc
- 説明: A apatch kernel module that helps you hide device environment :)
- スター数: 8
- 言語: C
- URL: https://github.com/SoyBeanMilkx/memcrc
- オーナー: SoyBeanMilkx
- アバター: https://avatars.githubusercontent.com/u/39391923?v=4
READMEの抜粋:
温馨提示:首次测试不要直接嵌入哦
详细参见:Apatch内核模块分享(环境隐藏)
Yuuki Parser 命令参考手册
数据类型说明
| 类型ID | 类型名称 | 描述 | 数据格式 |
|---|---|---|---|
| 1 | PATH_MAPPING | 路径映射 | MAP:uid:src_path:dst_path |
| 2 | SINGLE_PATH | 单个路径(或关键词) | PATH:path |
| 3 | PTRACE_UID | PTRACE用户ID | PTRACE:uid |
(以降、管理コマンドの詳細が README に記載)