ガチョウを飼えるアプリ「Desktop Goose」のソースコードをみてみる

  • 2020-02-01
ガチョウを飼えるアプリ「Desktop Goose」のソースコードをみてみる

GIGAZINEにて「PC上でいたずら好きなガチョウが飼える無料アプリ」として紹介されていた**「Desktop Goose」**というアプリケーションについて。

Desktop Gooseを起動しておくとガチョウがPCの画面上を歩き回ったりイラストが描かれたウィンドウを引っ張ってきたり、ときにはマウスを掴んで移動するというイタズラをします。

とても面白いアプリケーションなのですが、プログラミング好きな私としては、やはりそのソースコードも気になります。

Desktop Goose 配布ページを確認してもソースコードの配布はしていないようだったので試しに「JetBrains dotPeek」に読み込んでみたところ、見事に逆コンパイルできました。

ソースコードをみてみる

逆コンパイルした結果は以下のようなかんじになりました。

言語はC#ですね。

ファイルサイズ的にTheGoose.csが一番大きいのでこれをみてみます。

      private static string[] possiblePhrases = new string[6]
      {
        "am goose hjonk",
        "good work",
        "nsfdafdsaafsdjl\r\nasdas       sorry\r\nhard to type withh feet",
        "i cause problems on purpose",
        "\"peace was never an option\"\r\n   -the goose (me)",
        "\r\n\r\n  >o) \r\n    (_>"
      };

フレーズを発見しました。これはガチョウがメモ帳に書くメッセージですね。

 

メモ帳を勝手に起動して書き込むためのコードは以下のようになっていました。

public SimpleTextForm()
{
  this.Width = 200;
  this.Height = 150;
  this.Text = "Goose \"Not-epad\"";
  TextBox textBox = new TextBox();
  textBox.Multiline = true;
  textBox.AcceptsReturn = true;
  textBox.Text = TheGoose.SimpleTextForm.possiblePhrases[TheGoose.SimpleTextForm.textIndices.Next()];
  textBox.Location = new Point(0, 0);
  textBox.Width = this.ClientSize.Width;
  textBox.Height = this.ClientSize.Height - 5;
  textBox.Select(textBox.Text.Length, 0);
  textBox.Font = new Font(textBox.Font.FontFamily, 10f, FontStyle.Regular);
  this.Controls.Add((Control) textBox);
  string str = Environment.SystemDirectory + "\\notepad.exe";
  if (!File.Exists(str))
    return;
  try
  {
    this.Icon = Icon.ExtractAssociatedIcon(str);
    this.ShowIcon = true;
  } catch {}
}

 

全部紹介するのはコードの量的に難しいのでここまでにしておきます。

自分で「Desktop Goose」のコードを確認してみたい方はdotPeekをダウンロードして逆コンパイルをやってみてください。

JetBrains dotPeek ダウンロード

JetBrains dotPeek .NETデコンパイラ

.NETアセンブリをC#にデコンパイル

dotPeekは、ReSharperのバンドルされたデコンパイラに基づく無料のスタンドアロンツールです。 これは、.NETアセンブリを同等のC#またはILコードに確実にデコンパイルできます。

このデコンパイラは、ライブラリ (.dll)、実行ファイル(.exe)、Windowsメタデータファイル (.winmd)など、複数の形式をサポートしています。

デコンパイルしたコードをVisual Studioプロジェクトにエクスポート

アセンブリをデコンパイルしたらすぐに、Visual Studioプロジェクト(.csproj)として保存できます。 これはレガシーアセンブリから失われたソースコードを復元しなければならない場合、潜在的に多くの時間を節約できます。

ダウンロード

dotPeek - Free .NET Decompiler and Assembly Browser

無料で使用できる高機能なツールなので興味のある方は使ってみてください!

ハッカーはどのようにPhotoshopなどをクラックする?
ハッカーはあらゆるソフトを攻略できるのか? 新しいソフトをダウンロードしたら、使う前に課金を求められた経験はありませんか? 誰もが経験する、その「課金の壁」を前に、怪しげなインターネットの世界に足を踏み入れたくなった人もいるかも...
ハッカーはどのようにPhotoshopなどをクラックする? favicon tialight.com
ハッカーはどのようにPhotoshopなどをクラックする?