Allow DLL import の危険性

MetaTrader は DLL を使える点が非常に便利なのですが…、これを悪用されると、本当にキケンです。
どのくらい危険なのか実証する為に、ウイルスファイルを出力して実行してしまうscript を書いてみました。(コラ

#import "shell32.dll"
int ShellExecuteA(int hWnd,int lpVerb,string lpFile,string lpParameters,string lpDirectory,int nCmdShow);
#import
#define SW_SHOW             5
int start()
{
   if (!IsDllsAllowed()) {
      Alert("ERROR: [Allow DLL imports] NOT Checked.");return (0);
   }
   PlaySound("tick");

   int handle=FileOpen("eicar.txt",FILE_BIN|FILE_WRITE);
   FileWriteString(handle, "X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*", 68);
   FileClose(handle);

   ShellExecuteA(0,0,"cmd.exe","/C ren \""+TerminalPath()+"\\experts\\files\\eicar.txt\" eicar.com","",SW_SHOW);
   Sleep(3000);
   ShellExecuteA( 0,"open","\""+TerminalPath()+"\\experts\\files\\eicar.com\"","","",SW_SHOW);

   return(0);
}

このscript が出力する eicar.com というウイルスファイルは、ウイルス対策ソフトの動作テスト用に作られた無害なファイルなので、実行しても問題はありません。ただ、ウイルス対策ソフトを使っていると、即座に検出されて警告を受けるので、ちょっとびっくりするかもしれません。笑



海外のフォーラムから怪しい ex4 ファイルをダウンロードして実行する際は、本当に気をつけたほうが良いです。今はまだ善意の第三者が配布していると考えてもよいかもしれませんが、いつ悪意の人間に狙われるかわかりません。良好なバックテスト結果とEAを見つけたら、条件反射的にダウンロードして試しにストラテジテスタやデモ口座で動かしてみてしまうユーザは、ウイルス作者にとって絶好のカモですから...。