Decrypting Smadav Loov Database

Decrypting Smadav Loov Database

Pendahuluan

Pada artikel kali ini akan dibahas cara mendekripsi file database smadav yang menggunakan format loov.

Mekanisme Dekripsi

Jadi secara sederhana, file database smadav.loov bekerja seperti ini:

  • cari ukuran file smadav.loov
  • ubah format ukuran ke DWORD dan ambil lower byte dari ukuran tersebut. misalnya ukuran file databasenya 28119 bytes, maka jika diubah menjadi DWORD (hex) menjadi 0x6DD7. nah, 0xD7 ini yang akan kita gunakan.
  • selanjutnya kita baca mulai dari offset 0×20 dari file smadav.loov lalu setiap byte kita XOR dengan offset byte tersebut kemudian di XOR lagi dengan byte pada langkah sebelumnya (dalam hal ini 0xD7).
  • ulangi sampai selesai


Proof of Concept

        format PE GUI 4.0
	include 'win32a.inc'

;[code]------------------------------------------------------------------------

	push	.done
	push	dword[fs:0]
	mov	dword[fs:0],esp
	invoke	CreateFile,szloov,GENERIC_READ,0,0,OPEN_EXISTING,0,0
	cmp	eax,INVALID_HANDLE_VALUE
	je	.done
	mov	[hfile],eax
	invoke	GetFileSize,[hfile],0
	mov	[dwsize],eax
	invoke	GlobalAlloc,GPTR,eax
	mov	[hmem],eax
	invoke	ReadFile,[hfile],[hmem],[dwsize],dwtemp,0
	invoke	CloseHandle,[hfile]
	movzx	edx,byte[dwsize]
	mov	eax,20h
	mov	ebx,[hmem]
.blah:	mov	cl,byte[ebx+eax]
	xor	cl,al
	xor	cl,dl
	mov	byte[ebx+eax],cl
	inc	eax
	cmp	eax,dword[dwsize]
	jl	.blah
	invoke	CreateFile,szdump,GENERIC_WRITE,0,0,CREATE_ALWAYS,0,0
	cmp	eax,INVALID_HANDLE_VALUE
	je	.clean
	mov	[hfile],eax
	invoke	WriteFile,[hfile],[hmem],[dwsize],dwtemp,0
	invoke	CloseHandle,[hfile]
	invoke	MessageBox,0,szmsg,szcap,MB_OK+MB_ICONINFORMATION
.clean: invoke	GlobalFree,[hmem]
.done:	pop	dword[fs:0]
	add	esp,4
	invoke	ExitProcess,0

;[data]------------------------------------------------------------------------

szloov	db "smadav.loov",0
szdump	db "smadav.dump",0
szcap	db "info",0
szmsg	db "decrypt selesai, silakan cek file smadav.dump",0
hmem	dd 0
hfile	dd 0
dwsize	dd 0
dwtemp	dd 0

;[imports]---------------------------------------------------------------------

data import
library kernel32,'kernel32.dll',\
	user32,'user32.dll'
include 'api/kernel32.inc'
include 'api/user32.inc'
end data

dan berikut ini snippet hasil dekripsi file smadav.loov yang ada pada smadav 8.2 beta

Penutup

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

No Comments »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment