Penulis Topik: PVC "Next-Gen AV Engine"  (Dibaca 8800 kali)

Offline APTX

  • Pro10
  • ***
  • Tulisan: 60
  • Reputation: +94/-0
  • Jenis kelamin: Pria
  • Peradnya Dinata
    • Lihat Profil
    • Peradnya Blog
PVC "Next-Gen AV Engine"
« pada: Juni 14, 2009, 09:41:47 AM »
sebenarnya ak ingin menggantikan trend CRC32 dan MD5 dalam antivirus Indonesia ....  :-\ "tapi rasanya agak sulit sih ...."
makanya ak mencoba membuat "Next-Gen AV Engine" yang akan jauh lebih cepat dan mantab melawan virus tipe infector ...

fitur :
- Search string didalam files "Pre-ASM Compiled"
- Kalo CPU anda support MMX/SSE, AV ini akan bertambah cepat 2x lipat "Pre-ASM Compiled"
- yang lainnya gak penting  :P

* disertakan string2 virus dari SC Ansav ... "yang mau konversi silahkan ..."
* ini proyek open source "udah males ak buat AV...."
* udah bisa jalan sih ... "tapi masih versi alpha ~ karena banyak pake ASM ... dan masih alpha ya ..... hehehehe  >=)"

download di :
http://www.ziddu.com/download/5179754/PeradnyaVirusCleanerEngine.zip.html

Offline shinichi

  • Smadav Experts
  • Pro500
  • ******
  • Tulisan: 556
  • Reputation: +6648/-1
    • Lihat Profil
Re: PVC "Next-Gen AV Engine"
« Jawab #1 pada: Juni 14, 2009, 09:58:50 AM »
hehehe

di coba ya...
finally

Offline APTX

  • Pro10
  • ***
  • Tulisan: 60
  • Reputation: +94/-0
  • Jenis kelamin: Pria
  • Peradnya Dinata
    • Lihat Profil
    • Peradnya Blog
Re: PVC "Next-Gen AV Engine"
« Jawab #2 pada: Juni 14, 2009, 11:03:48 AM »
tujuan ku buat nie :
- menggantikan metode CRC32, MD5, dan turunannya ... "udah uzur .. mungkin udah waktunya istirahat" :)
- heuristic dan virus signature dlm satu database ...
- mencoba-coba "efisiensi algoritma" dan "efisiensi runtime"
- mencoba2 bermain dengan bahasa mesin ,,,, hehehehe >=)
- Membuat "Era Baru Antivirus Indonesia" ...

Yang mau dicoba :
- menscan file yg terinfeksi virus infector ... "ak gak punya virusnya ... tolong cobain"
- coba kalo database nya 2000 berapa ya kecepatannya ??? "harusnnya cpt ...."
- tambahin sendiri males ... :P "udah maw kuliah ... nyiapin STTB, STK, Akte, dll"

Offline AURA

  • Pro100
  • ****
  • Tulisan: 145
  • Reputation: +180/-0
  • Jenis kelamin: Pria
    • Lihat Profil
Re: PVC "Next-Gen AV Engine"
« Jawab #3 pada: Juni 15, 2009, 08:18:36 AM »
Bravo....  :-X

   Akhirnya Kak Peradnya bisa menyelesaikan projectnya juga, yang lebih salut

 1. Pake Algoritma Boyer-Moore; Padahal aku masih muter-muter di Algoritma ini gimana nyari string di file untuk algoritma ini

 2. Ada juga di VB yg "Pre-Asm"  :-bd ; Aku baru tau  :D

 3. Selamat Kuliah deh......

And Viva Indonesia Programer, Bikin para programer Indonesia makin pintar dgn Open Source ( Ngarep Banget !!!! )
Programer AV biasa

Offline APTX

  • Pro10
  • ***
  • Tulisan: 60
  • Reputation: +94/-0
  • Jenis kelamin: Pria
  • Peradnya Dinata
    • Lihat Profil
    • Peradnya Blog
Re: PVC "Next-Gen AV Engine"
« Jawab #4 pada: Juni 15, 2009, 09:55:53 AM »
fokusku skarang cuma ngajarin orang tuk buat AV sendiri ... mudah2 para programmer bisa ... ^^
ak lupa, di ntu bukan algoritma boyer-moore ...  :) itu algoritma STRC "C SearchString"

dan ak beri limiter di enginenya untuk cuma ngesearch string 5kb dari setiap file ... "biar cepet"

ternyata pas ak coba boyermoore dan STRC ternyata untuk patternlength < 30 STRC lebih cepet dari booyermoore ...

kalo mau ganti pake boyermoore nih takasi code ASM nya :

Pre-Compiled ASM for VB6 (Boyer Moore Algorithm)
Kode: [Pilih]
sASM = "5589E55756505351528B45088B750C8B7D108B500481FA010000007E3A31DB31C93B55147D738B45088B58048B0089D18A04188A240E38E0751181FB0000000074644B498B45088B00EBE531C08A04168B048701C2EBCAFC8B008B7D0C89FE8B4D1481FA01000000751E81F9020000007C27668B00F2AE67E31F3A2775F74F89F929F1E91E0000008A00F2AE67E30A4F89F929F1E90D0000008B450831DB895808E907000000418B45088948085A595B585E5F89EC5DC21000"
ato kalo yang bisa ngeoptimalisasi ni code "boyer moore" abis ntu kirim ke ak ya ....  ;) silahkan :
Kode: [Pilih]
USE32
;use stack
push ebp ;Arrange for ebp to point to params
mov ebp,esp
push edi
push esi
push eax
push ebx
push ecx
push edx
mov eax, [ebp+8] ;ptrPatData(0)
mov esi, [ebp+12] ;ptrByteArray(0)
mov edi, [ebp+16] ;ptrSkipTable(0)
mov edx, [eax+4] ;PatLength-1 = i
cmp edx,1 ;check the (PatLength-1)
jle GoodByeBMH ;if (PatLength-1)<=1 Goto GoodByeBMH
xor ebx, ebx ;Set 0
xor ecx, ecx ;Set 0

Loop1:
cmp edx,[ebp+20] ;compare i & n=ByteSize
jge NotFound ;if i>=n Goto NotFound
mov eax,[ebp+8] ;ptrPatData(0)
mov ebx,[eax+4] ;k=patLen-1
mov eax,[eax] ;ptrPatArray(0)
mov ecx,edx ;j=i

Loop2:
mov al,[eax+1*ebx] ;PatArray(k)
mov ah,[esi+1*ecx] ;ByteArray(j)
cmp al,ah ;compare PatArray(k) & ByteArray(j)
jne NextPosition ;PatArray(k)<>ByteArray(j) then Goto NextPosition
cmp ebx,0 ;compare k=0
je Found ;if zero Goto Found
dec ebx ;k=k-1
dec ecx ;j=j-1
;set back pointer to PatArray
mov eax,[ebp+8] ;ptrPatData(0)
mov eax,[eax] ;ptrPatArray(0)
jmp Loop2

NextPosition:
xor eax,eax ;Set 0
mov al,[esi+1*edx] ;ByteArray(i)
mov eax,[edi+4*eax] ;SkipTable(ByteArray(i))
add edx,eax ;i = i + SkipTable(ByteArray(i))
jmp Loop1

GoodByeBMH:
cld ;set edi- pointer to move in forward direction
mov eax,[eax] ;copy ptrPatArray(0) from ptrPatData(0)
mov edi,[ebp+12] ;load byteArray address in edi
mov esi,edi ;copy byteArray start address in esi
mov ecx,[ebp+20] ;ByteArray Size
cmp edx,1 ;Compare (PatLength-1)=1
jnz OneChar ;if (PatLength-1)<>1 Goto OneChar
cmp ecx,2 ;check min ByteArray Size
jl NotFound ;ByteArray Size<2 so goto NotFound
mov ax,[eax] ;copy Two Char (2 bytes) from ptrPatArray(0)

TwoChar:
repnz scasb ;Search for PatArray(0) char in byteArray
jcxz NotFound ;if count is zero in ecx then Goto NotFound
; cmp ecx,0 ;check count is zero in ecx
; jz NotFound ;if count is zero then Goto NotFound
cmp ah,[edi] ;compare PatArray(1) char in next byteArray
jnz TwoChar ;if not matching Goto TwoChar
dec  edi ;reduce 1,since REPNZ SCASB is one step ahead
mov ecx,edi ;copy the current byteArray pointer
sub ecx,esi ;calculate found position & copy to ecx
jmp Found ;Goto Found

OneChar:
mov al,[eax] ;copy one Char (1 byte) from ptrPatArray(0)
repnz scasb ;Search for PatArray(0) char in byteArray
jcxz NotFound ;if count is zero in ecx then Goto NotFound
; cmp ecx,0 ;check count is zero in ecx
; jz NotFound ;if count is zero then Goto NotFound
dec  edi ;reduce 1,since REPNZ SCASB is one step ahead
mov ecx,edi ;copy the current byteArray pointer
sub ecx,esi ;calculate found position & copy to ecx
jmp Found ;Goto Found

NotFound:
mov eax,[ebp+8] ;ptrPatData(0)
xor ebx,ebx  ;Set Zero in ebx
mov [eax+8],ebx  ;copy Zero value in PatData(2)
jmp Quit

Found:
inc ecx ;j=j+1
mov eax,[ebp+8] ;ptrPatData(0)
mov [eax+8],ecx ;Copy found location in PatData(2)

Quit:
;restore stack
pop edx
pop ecx
pop ebx
pop eax
pop esi
pop edi
mov esp,ebp ;restore
pop ebp
ret 16

Offline Zai

  • Admin
  • Pro500
  • *******
  • Tulisan: 2.892
  • Reputation: +65535/-6906
  • Jenis kelamin: Pria
    • Lihat Profil
    • Zainuddin Nafarin Blog
Re: PVC "Next-Gen AV Engine"
« Jawab #5 pada: Juni 15, 2009, 10:01:06 AM »
Waw, menarik sekali belajar ASM, Smadav juga rencananya mau dipindah ke C++ biar lebih cocok sebagai bahasa pemrograman antivirus, mungkin beberapa bulan lagi selesai klo gak ada halangan :D
4 main functions of Smadav :
(1) Additional protection for your PC, 100% compatible with other Antivirus!
(2) Best USB Antivirus, no more infection from USB!
(3) Best for offline use and low resource Antivirus
(4) Manual cleaner & tools to fight malwares

Offline AURA

  • Pro100
  • ****
  • Tulisan: 145
  • Reputation: +180/-0
  • Jenis kelamin: Pria
    • Lihat Profil
Re: PVC "Next-Gen AV Engine"
« Jawab #6 pada: Juni 15, 2009, 10:02:40 AM »
@ APTX
Oh, Kupikir boyer-moore soalnya cepat juga

@ZAI
Mau dibuat pake Visual ataw Skrip mas ?
Programer AV biasa

Offline ★ harboot ★

  • Smadav Experts
  • Pro500
  • ******
  • Tulisan: 5.178
  • Reputation: +65535/-36
  • Jenis kelamin: Pria
  • harboot.com
    • Lihat Profil
    • http://hendryadrian.com
Re: PVC "Next-Gen AV Engine"
« Jawab #7 pada: Juni 15, 2009, 05:56:07 PM »
Bikin AV yg under DOS aja.. walau Windows rusak tetep jalaaan..

Offline antwa

  • Pro3
  • **
  • Tulisan: 9
  • Reputation: +35/-0
  • Jenis kelamin: Pria
    • Lihat Profil
    • antwablog
Re: PVC "Next-Gen AV Engine"
« Jawab #8 pada: Juni 19, 2009, 07:19:44 AM »
Allow.lam kenal.wah-wah, lagi pada ngomongin av programing yah.
@aptx.
Wah,makin jago bahasa mesin ja!:)

Offline APTX

  • Pro10
  • ***
  • Tulisan: 60
  • Reputation: +94/-0
  • Jenis kelamin: Pria
  • Peradnya Dinata
    • Lihat Profil
    • Peradnya Blog
Re: PVC "Next-Gen AV Engine"
« Jawab #9 pada: Juni 21, 2009, 03:32:01 PM »
@antwa ...
gak teralu juga sih ... hehehe ;)
pake thunderVB aja lebih yahud ...