How VNC, Fog Creek Copilot and other remote control software worksというタイトルのこの記事をご覧ください。
ここでは、ブログ記事の内容からいくつかの詳細を説明しますが、これはFog Creek Copilotのソースコードに特有のものです。このデータはすべて、ソースコードを見て取得したものです。
コピロットは基本的にC++ではゼロから書かれていませんでしたが、代わりにGPLのTightVNCで構築されました。はい、これは、コピロットの主な情報源もなくてはならないことを意味します。 Fog Creek copilot source code hereを入手できます。そして、わかっている限り、あなたがGPLを作った限り、このプロジェクトのソースコードからソリューションを構築することができます。
プロジェクトはMac版とWindows版に分割されています。 Mac版は客観的なC言語で作成され、Windows版はWin32 C++(MFCではなく)でビルドされています。 Windows版では、VS 2008で作成されたヘルパーソリューションと、VS 2008で作成されたホストソリューション(ホストは助けられている人物)があります.TrolltechのQtを使用していないと思います。その人にダウンロードする必要があったので、ダウンロードを非常に小さく保つために、いつでも誰かと助けを必要とするすべての人を助けました。
x64もIA64も構成されていないため、Windowsのすべてのコードはx86プロセスとしてのみ実行されます。他の32ビットプロセスと同じように、WOW64を介して64ビットウィンドウで実行できます。
私が理解しているように、開発はほとんどの場合VM上で実行されているホストで行われました。ヘルパーの開発はデスクトップ上で行われました。
コピロットのソースコードでは、ブースト1.38といくつかの他社製ライブラリが使用されています。これらのライブラリには、NATトラバーサル用のSTUNT、MatrixSSL、libntlm(MicrosoftのNTLM認証用ライブラリ)、omnithread(スレッド化および同期化ライブラリ)が含まれます。
ほとんどの場合、bsdスタイルのソケットを使用しますが、boost :: asioにはネットワークコードもあります。 boost :: asio 1.38には、ブースト1.40で修正されたバグがたくさんあるので、これは問題です。プロジェクトには、キーボード、マウス、およびその他のWindowsメッセージをホストにフックするためのWindowsフックDLLがあります。
Windowsシェルと似ていないが、基本的に3つのバイナリを含むシェルプロジェクトがあります。ホスト、ディテクタ、フックのdllです。それはこれらを抽出する。
リフレクターとウェブサイトのソースコードは、projectaardvark.comのブログ記事からわかるように、どちらもC#、C++のその他すべてのものです。リフレクタの目的は、NATトラバーサルを支援することです。途中でprojectaardvark.comを置き換える新しいブログはAir Trafficと呼ばれています。
VNCは、リモートフレームバッファプロトコルからオフベースされています。 RFBプロトコル自体は、多くのプロトコル経験がある場合はそれほど難しくありません。
多くの手助けをしました – balexandre