【Windows CEの詳細】Part 1 組み込みWindowsアプリケーションを構築する
2025年3月25日
.png)
OT 環境で依然としてレガシー OS である Windows CE が多く使われています。この記事は、OSを調べる 4 部構成の研究ブログシリーズのパート1です。OSをより深く理解し、研究を進める上で脆弱性の調査方法や、その過程で発見した多数の CVE を紹介する予定です。
私たちTeam82は、産業および医療インフラのサイバー攻撃を防御し、安全にするための研究目標があります。今回の私たちは、Windows CE で実行される特殊なHMIパネルを研究のターゲットにしました。このOSへの理解が深まり、さらに調査をスピードアップできると考えています。

Windows CE は、アクセスが容易なため、産業環境でよく使用されています。重要な工場機械で最もよく使用され、簡単に構成およびカスタマイズできるため、HMI システムの展開に最適です。たとえば、自動販売機や使いやすいインターフェイスを表示する公共キオスク、一部の車載インフォテインメント システムなどのデバイスによく使用されています。

Windows CE アプリケーション開発のセットアップ
アプリケーションを開発するには、アプリケーションをビルドして展開できる機能的なワークスペース (この場合は Visual Studio 2005 IDE) が必要です。このユーティリティは、アプリケーションを簡単に、最小限の問題でコンパイルして展開するために重要です。
新しいプロジェクトの作成
まず、Visual Studio 2005 で新しいプロジェクトを作成し、「File→New→Project」を選択します。

次に、新しいプロジェクトウィンドウがポップアップ表示され、アプリケーション プロジェクトのテンプレートを選択します。この例では、スマート デバイス システム用の GUI アプリケーションを作成します。

次に、便利なウィザード ウィンドウを使用して、プロジェクトの構成手順に進みます。この場合、ターゲットを Pocket PC 2003 プラットフォームの実行可能ファイルにします。そのため、「Next >」これらの設定を適切に行うには、「Executable (EXE)」ボタンをクリックする必要があります。


この構成部分が完了すると、実際の作業に移ります。すべてを正しく実行すると、IDE に次のソリューション エクスプローラー プロンプトが表示されます。

C++ モジュール ファイルであるT82.cppを開くと、ほとんどの定型コードが信頼できる IDE によって削除されていることがわかります。

ご覧のとおり、メイン ルーチンは、プログラムが実行時に呼び出すグローバル シンボルとしてエクスポートされています。
Windows CE アプリケーションの実装
アプリケーションウィンドウの作成
アプリケーション ウィンドウを作成するには、Microsoft MSDN API ドキュメントをガイド ドキュメントとして使用します。視覚的なウィンドウ効果を実現するには、次のライブラリ メソッドを使用します。
- PostQuitMessage (winuser.h, coredll.dll)
- DefWindowProc (winuser.h, coredll.dll)
- RegisterClass (winuser.h, coredll.dll)
- CreateWindow (winuser.h, coredll.dll)
- ShowWindow (winuser.h, coredll.dll)
- GetMessage (winuser.h, coredll.dll)
- DispatchMessage (winuser.h, coredll.dll)
また、アプリケーション ウィンドウに受け入れられたメッセージを処理するコールバック関数を実装する必要もあります。

詳細はこちらよりご覧いただけます(英語)。
まとめ
このブログ記事では、Windows CE オペレーティング システムでのネイティブ アプリケーション開発について紹介しました。このシステムでアプリケーションを構築およびデバッグする機能は、後で Windows CE オペレーティング システムで実行されるデバイスに展開された他のアプリケーションを調査するときに非常に便利かつ重要になります。
◆クラロティー公式製品ページはこちらから
https://claroty.com/ja#product
◆クラロティー ニュースレタートップページに戻る
https://claroty-jp-newsroom.prezly.com/
◆ご相談やお問い合わせは、下記よりお願いします。
https://claroty.com/ja/request-a-demo