Decrypting Morphost Antivirus Database | NitrouZ Personal Pages

Decrypting Morphost Antivirus Database

Pendahuluan

Morphost adalah salah satu antivirus lokal yang cukup ternama dan situs resminya ada di sini. Untuk tutorial kali ini, saya menggunakan database morphost bulan Mei 2010 yang bisa diunduh di sini. Kita akan melakukan dekripsi untuk mengetahui format database morphost.

Langkah-langkah

Untuk mengetahui cara kerja morphost, kita terlebih dahulu melakukan sedikit debugging. Ok, jalankan Ollydbg lalu load morphost (pada artikel ini saya menggunakan morphost versi 7.1.0.0). Lihat bagian module yang diimport:

Executable modules
Base       Size       Entry      Name       File version    Path
00400000   001B5000   00401344   Morphost   7.01            H:\--snip--\Morphost ß.exe
73420000   00153000   73421AF8   MSVBVM60   6.00.9802       H:\WINDOWS\system32\MSVBVM60.DLL
77120000   0008B000   77121560   OLEAUT32   5.1.2600.5512   H:\WINDOWS\system32\OLEAUT32.dll
774E0000   0013D000   774FD0B9   ole32      5.1.2600.5512   H:\WINDOWS\system32\ole32.dll
77C10000   00058000   77C1F2A1   msvcrt     7.0.2600.5512   H:\WINDOWS\system32\msvcrt.dll
77DD0000   0009B000   77DD70FB   ADVAPI32   5.1.2600.5512   H:\WINDOWS\system32\ADVAPI32.dll
77E70000   00092000   77E7628F   RPCRT4     5.1.2600.5512   H:\WINDOWS\system32\RPCRT4.dll
77F10000   00049000   77F16587   GDI32      5.1.2600.5512   H:\WINDOWS\system32\GDI32.dll
77FE0000   00011000   77FE2126   Secur32    5.1.2600.5512   H:\WINDOWS\system32\Secur32.dll
7C800000   000F6000   7C80B63E   kernel32   5.1.2600.5512   H:\WINDOWS\system32\kernel32.dll
7C900000   000AF000   7C912C28   ntdll      5.1.2600.5512   H:\WINDOWS\system32\ntdll.dll
7E410000   00091000   7E41B217   USER32     5.1.2600.5512   H:\WINDOWS\system32\USER32.dll

Klik ganda pada baris msvbvm60.dll untuk menuju ke library tersebut. Setelah berada pada modul msvbvm60, tekan Ctrl + N lalu cari fungsi __vbaFileOpen seperti ini:

734F3B5D   .text      Export     __vbaFileOpen

Setelah ketemu, tekan F2 untuk mengaktifkan breakpoint. Tekan F9 untuk mulai menjalankan morphost. Kita akan menemukan breakpoint pertama, lanjutkan dengan menekan lagi F9. Pada breakpoint ke-2 ini akan terlihat bahwa morphost mengakses file kernell.dat pada direktori sistem (Windows\system32):

0012F9CC   00157384  UNICODE "H:\WINDOWS\system32\kernell.dat"

Nah, file tersebut adalah file database morphost yang sudah didekripsi oleh morphost ketika dijalankan. Sebenarnya, key yang digunakan oleh morphost bisa terlihat ketika proses debugging. Namun untuk menghemat waktu, keynya saya berikan saja :D yaitu:

Database Morphost Antivirus



Decryptor

Source code berikut ini bisa digunakan untuk mendekripsi database morphost (bulan Mei 2010).

#include <windows.h>

#ifdef _MSC_VER
#pragma comment(lib,"kernel32")
#pragma comment(lib,"user32")
#pragma comment(linker,"/entry:main /subsystem:windows")
#endif

void
main()
{
  int i;
  char *p;
  HANDLE hfile;
  HGLOBAL hmem;
  DWORD dwsize, dwtemp;
  static const char *szkey = "Database Morphost Antivirus";

  if ((hfile = CreateFile("database.mrp", GENERIC_READ, 0, 0, OPEN_EXISTING, 0, 0)) == INVALID_HANDLE_VALUE)
  {
    MessageBox (NULL, "gagal membuka file database morphost", "error", MB_OK | MB_ICONERROR);
    ExitProcess(1);
  }
  dwsize = GetFileSize(hfile, NULL);
  hmem = GlobalAlloc(GPTR, dwsize);
  p = (char *) GlobalLock(hmem);
  ReadFile(hfile, p, dwsize, &dwtemp, NULL);
  CloseHandle(hfile);

  for (i = 0; i < (int) dwsize; i++) { p[i] ^= szkey[(i % 27)]; }

  if ((hfile = CreateFile("database.txt", GENERIC_WRITE, 0, 0, CREATE_ALWAYS, 0, 0)) != INVALID_HANDLE_VALUE)
  {
    WriteFile(hfile, hmem, dwsize, &dwtemp, NULL);
    CloseHandle(hfile);
    MessageBox (NULL, "database morphost berhasil didekripsi", "info", MB_OK | MB_ICONINFORMATION);
  }
  GlobalUnlock(hmem);
  GlobalFree(hmem);
  ExitProcess(0);
}

Dan berikut ini adalah database morphost yang sudah didekripsi (bulan Mei 2010)

Database Mei 2010
Database Morphost Antivirus
by:Morphic Karta
Terima kasih kepada pengguna Morphost Antivirus yang telah mempercayakan Morphost sebagai guard komputer.
Kami masih tetap berusaha untuk memberikan yang terbaik, baik dari sisi kenyamanan penggunaan sampai keamanan komputer anda.
Kami juga mengharapkan agar masyarakat juga mau membantu kami dalam pengembangan database Morphost bulan Juni 2010. Kirim/upload sampel malware pada kami.
Anda bisa berikan link download malware kepada kami atau mengirimkannya secara langsung pada kami. Terima kasih.
10 Juni 2010
14
580
581
582
583
584
1003DC=DeleteRegedit=Maret 2009=Ringan
100630=Playboy-A=November 2009=Ringan
103218=Aidid=Tidak Ada Data=Sedang
10C968=OpenSystem=Tidak Ada Data=Sedang
1181AB=Decoil-Dropper=Tidak Ada Data=Parah
119723=FullHouse=Tidak Ada Data=Sedang
11DC95=Iwing=Tidak Ada Data=Sedang
...

Penutup

Demikianlah artikel singkat kali ini, semoga bermanfaat. Terima kasih kepada Tuhan Yang Maha Esa, TKP crew, Kris Kaspersky, dan Anda yang telah membaca artikel ini :)

, , ,

4 Responses to Decrypting Morphost Antivirus Database

  1. shafry June 12, 2010 at 19:38 #

    pakek C++ ya???

  2. drubicza June 13, 2010 at 15:41 #

    kodenya pake C gan :”>

  3. M2R July 14, 2010 at 16:19 #

    kok bisa2nya tuh AV yg mengandalkan speed pke __vbaFileOpen

    meskipun untuk scanning kyanya sie ngga pke __vbaFileOpen

    Salut ama drubicza :mastah:

  4. drubicza August 22, 2010 at 13:21 #

    haisss…. jgn gitu bro
    saya jg salut sama bro :mastah:

Leave a Reply