Xalgorix Cloud
Autonomous AI security testing for developers and security teams: find vulnerabilities, prove each with a working exploit, and ship verified fixes with zero infrastructure setup.
翻訳待ち
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗提供:Aokumi / ライセンス:MIT / プライバシーポリシー / Code signing policy
ダブルクリックするだけで、この PC の健康診断の結果を人に送れる HTML 1 枚にまとめるポータブルツール(Windows 10 1903 以降 / 11)。 Windows の版と更新、ウイルス対策、CPU・メモリ・ディスク、起動ドライブが SSD か HDD か、ディスクの健康状態、 Windows 11 の要件のうち TPM とセキュア ブートを調べる(CPU は名称を出すだけで、Windows 11 の対応 CPU かどうかは判定しない。対応 CPU は Microsoft の一覧で決まり、一覧が更新されるため)。 ふつうにダブルクリックした(管理者として実行しない)ときは、TPM と、ディスクの詳しい状態値(温度・使用時間など)は取れない。その欄には取れなかった理由を書く。 レポートは exe と同じ場所に保存して既定のブラウザで開く (書けなければデスクトップ → ダウンロード → このアプリの保存先 → 一時フォルダの順に退避する)。
asInvoker)。権限が要る項目は「取得できませんでした(理由)」と書く実測は開発機 1 台(Windows 11 Pro)で行っています。コメント中の gram17 はその開発機の呼び名です。
ここからビルドした PcReport.exe はコード署名されていないので、PC によっては止められる(Windows 11 の Smart App Control が有効な PC では「詳細情報 → 実行」でも回避できない)。開発機での実測:
ウイルス対策ソフト(ウイルスバスター)の「不審なファイル」判定で起動が止められ、利用者が許可するまで動かなかった。
同じくフォルダ保護(フォルダシールド)がデスクトップなどへのレポートの書き込みを止めた(保存先の退避はこのため)。
新しくビルドした exe は、最初の数回(最大 1 分ほど)「アクセスが拒否されました」で起動しないことがある。
署名の方針と現在の状態は Code signing policy に書いた(SignPath Foundation に 2026-10-18 に申請したが承認されず、現在は未署名)。
配布物(Releases)はまだ用意していない。 使うときはソースからビルドする。
利用者に見せる名前は 「PC 健康診断」(Microsoft Store で予約したアプリ名。PCR-005)。
レポートの見出し・タブの題・フッター、通知の題、exe のファイル情報(製品名とファイルの説明)、MSIX の表示名がこれになる。
コードでは ReportBuilder.ProductName の 1 か所にまとめ、Directory.Build.props の Product・AssemblyTitle と packaging/msix/identity/*.psd1 の DisplayName との一致をテストで確かめている。
利用者に見せるブランドは Aokumi(SPEC §9-10、PCR-008)。
レポートのロゴ文字とフッター、exe の会社名と著作権、LICENSE の著作権者がこれになる。
MSIX の発行元表示名(PublisherDisplayName)は Store アカウント側の発行元表示名と一致させる必要があり、
アカウント側を変えられるかの確認が済むまで旧ブランドのまま据え置いている(packaging/msix/identity/*.psd1)。
Store の Identity(MicroForge.PC と PFN)も識別子なので変えない。
変えないもの(識別子):exe 名 PcReport.exe、名前空間 Microforge.PcReport、プロジェクト名、出力ファイル名 pc-report_YYYY-MM-DD_HHMM.html、
保存先のフォルダ %LOCALAPPDATA%\Microforge\PcReport、検証版の Identity Microforge.PcReport.Dev(過去の検証キットと同一性を保つため)。
識別子として旧い綴りを許す場所は ProductNameTests の除外リストに明示してあり、それ以外に Microforge が出たらテストが落ちる。
旧ブランド MicroForge も同じで、Store の Identity(MicroForge.PC と PFN)と PublisherDisplayName 以外に出たらテストが落ちる(LICENSE と docs/ も走査する)。
このプロジェクトは 1 人で保守しています。コードの多くは AI(Anthropic の Claude)が書き、すべての変更を保守者が確認してから取り込んでいます。ビルドは GitHub Actions で行い、同じ commit からは同じ exe ができることを確かめています(SHA256 が一致)。
| OS | Windows 10 1903 以降 / 11 |
| ランタイム | 不要(.NET Framework 4.8 はこの範囲の Windows に同梱) |
| ビルドしてできるもの | PcReport.exe 1 ファイル(約 70 KB)。これだけで動く |
.NET SDK 8.0 以降が要る(ビルドにだけ。実行には不要)。
.NET Framework 4.8 の参照アセンブリは NuGet パッケージで解決するので、
Visual Studio や Targeting Pack は入れなくてよい。
cd "<このフォルダ>"
dotnet build src/PcReport/PcReport.csproj -c Release
出力:src/PcReport/bin/Release/PcReport.exe
.github/workflows/build.yml が、main への push・PR・v* のタグでビルド → テスト → Store 向け MSIX まで作る(Windows のランナー)。
成果物は PcReport.exe・PcReport-store.msix・SHA256SUMS.txt の 3 つ。CI では何にも署名しない。
exe の取り出しと MSIX の梱包は別のステップにしてあり、後でその間に exe の署名を入れる(Build-Msix.ps1 -ExePath が、渡された exe をビルドし直さずに詰める)。
dotnet test tests/PcReport.Tests/PcReport.Tests.csproj -c Release
Windows 上でしか通らない。 WMI・レジストリ・Windows Update Agent を叩くテストが 含まれるため、Linux のコンテナで走らせても検証にはならない。
通信しないことについて、テストで確かめているのは次の 2 つ:製品のソースに型名 HttpClient・WebClient・WebRequest・Socket が現れず、System.Net.Http・Sockets・Mail・NetworkInformation を using していないこと。代表的な状態のデータから作った HTML に、代表的な外部 URL(http://・https://)と、外部を読み込む要素(<script・<iframe・<link・<img・url()が無いこと。ソースの文字列を調べるテストなので、ほかの型や完全修飾での記述、COM・P/Invoke・別プロセスを経由した通信までは検出できない。
# ふつうの使い方:ダブルクリック(exe と同じ場所に保存してブラウザで開く。書けなければ退避する)
.\PcReport.exe
# 検証用のオプション
.\PcReport.exe --out "C:\path\to\dir" --no-open
| オプション | 意味 |
|---|---|
--out <dir> | 保存先フォルダを指定する |
--no-open | 保存したあとブラウザで開かない |
ファイル名は pc-report_YYYY-MM-DD_HHMM.html。
保存先を指定しない場合は、次の順に試し、書けた場所に保存する(どこにも書けなかったときの扱いは表の下)。 ウイルス対策ソフトのフォルダ保護(ウイルスバスターの「フォルダシールド」などのランサムウェア対策)は、 exe の横もデスクトップも止めることがあるため(SPEC §7-1 ⑨)。
| 順 | 場所 | 素の exe | MSIX / Store 版 | 利用者に見せる呼び名 |
|---|---|---|---|---|
| 1 | exe と同じ場所 | ○ | ○(インストール先は読み取り専用なので、実際は拒否されて次へ進む) | (知らせない。無言でブラウザを開く) |
| 2 | デスクトップ | ○ | ○ | デスクトップ |
| 3 | ダウンロード フォルダ(既知フォルダ FOLDERID_Downloads。利用者が場所を移していてもその場所) | ○ | ○ | ダウンロード フォルダ |
| 4 | %LOCALAPPDATA%\Microforge\PcReport\(無ければ作る。Aokumi のツールで共通に使う置き場所。フォルダ名は識別子なので旧い綴りのまま据え置き) | ○ | ×(使わない) | このアプリの保存先 |
| 5 | %TEMP% | ○ | ○ | 一時フォルダ |
%LOCALAPPDATA% に書いたファイルは、パッケージ専用の場所に振り替えられ、
利用者から見えなくなる(PCR-002 で実測)。パッケージで動いているかは GetCurrentPackageFullName で判定し
(src/PcReport/Saving/PackageContext.cs)、判定できないときも 4 を使わないUnauthorizedAccessException / IOException)ときだけ次へ進む。それ以外の例外は退避せずに失敗にする--out を指定したときはその場所だけを使い、退避しない(退避:〈呼び名〉) を書く。
コンソールの無い引数付き起動(ショートカットに --no-open を付けた場合など)では、ダブルクリックと同じく通知を出すsrc/PcReport/Saving/ReportSaver.cs。書き込み処理を差し替えられるので、「拒否」は単体テストで再現している生成された HTML に必須項目が全部出ているか、外部参照が無いかを確かめる。
This is the beginning of the README. Read the rest at the original. Read the full README ↗