Bilgi: Nod32 yanlış virüs uyarısı (NewHeur_PE)

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla

Yazıp derlediğiniz bir programı, herhangi bir anti-virüs uygulaması "VİRÜS VAR, ŞÜPHELİ" diye uyardı mı?

EVET
5
29%
HAYIR
12
71%
 
Toplam oy: 17

Kullanıcı avatarı
Murat DİCLE
Kıdemli Üye
Mesajlar: 702
Kayıt: 19 Nis 2006 04:12
Konum: İstanbul
İletişim:

Bilgi: Nod32 yanlış virüs uyarısı (NewHeur_PE)

Mesaj gönderen Murat DİCLE »

Merhabalar,

Yazdığım bir programda,

Nod32, bilinmeyen NewHeur_PE virüsü olma ihtimali var diye derlenen EXE'yi siliyordu.

Aynı fonksiyonların hatta daha alengirli fonksiyonların yapıldığı diğer benzer uygulamalarımda böyle bir mesaj vermiyordu NOD32.

Sonra inat edip araştırdım, hangi fonksiyon hangi UNIT'ten dolayı bu hata veriyor diye. Deneme yanılma yöntemi ile şu sonuca vardım. (En azından bende oluşan sorunu buldum)

JEDI'nin JclSysInfo Unit'indeki

Kod: Tümünü seç

RunningProcessesList
TerminateApp
fonksiyonlarını uygulamam içinde kullandığımda (tekini veya ikisini) NOD32 bahsettiğim uyarıyı veriyordu.

Bunları sildiğimde program düzgünce derleniyor ve EXE'si çıkıyordu. Bunları yine koyunca olmadığını gördüm.

Sonra bu kodları koyup, programı PAKETLER hariç derledim. Ama bir sorun çıkmadı. JEDI'nin BPL olarak EXE tarafından kütüphane olarak kullanılmasına NOD32 karışmadı, ama EXE içine (tek exe) gömüldüğünde şüpheli davranış olarak nitelendirip dediğim uyarıyı verdi.

Sizlerinde belki böyle bir şey başınıza gelmiştir ya da gelebilir diye bilgi vermek istedim.

Saygılar.
Kullanıcı avatarı
undefined
Moderator
Mesajlar: 565
Kayıt: 06 Eki 2003 12:01
Konum: Bursa
İletişim:

Mesaj gönderen undefined »

Hocam NOD32'nin heuristic(sezgisel) taraması en gelişmiş antivirüs olduğunu duymuştum. Sezgisel tarama değişik virüs varyasyonlarını bulmaya yarıyor. Ama analitik değil sezgisel olduğu için insan gibi yanılıyor demekki oda.
Kullanıcı avatarı
Murat DİCLE
Kıdemli Üye
Mesajlar: 702
Kayıt: 19 Nis 2006 04:12
Konum: İstanbul
İletişim:

Mesaj gönderen Murat DİCLE »

Ama bence çok saçma bir işlevde bunu yapıyor. Yani uyarı verip, sizden bunun silinip silinmyeceğini sorsa, doğru derim, sadece "şüpheli bir vürüs" diyor ve karantinaya taşıdım diyor.

Tamam ben kişisel olarak böyle bir durumu aşarım, ilgili dosyayı ya da klasörü NOD32 kontrol dışı bırakarak aşarım, ama ortalama bir kullanıcı bunu yapamayabilir. Birde herkese bunu böyle yapun demek yanlış olur.

RunningProcessesList Fonksiyonu bir çok uygulamada kullanılabilcek legal bir işlev diye düşünüyorum. Eğer olmasaydı, Windows API listesinde bulunmazdı. Sadece bu işlev olduğunda "virüs ihtimali" uyarısı geliyor.
Kullanıcı avatarı
mege
Admin
Mesajlar: 2360
Kayıt: 05 Şub 2004 04:32
Konum: Beşiktaş
İletişim:

Mesaj gönderen mege »

hocam peki jedideki RunningProcessesList fonksiyonunu paketten ayırın ve kendi projenize bir fonksiyon olarak gömünce aynı problemi yaratıyormu??
.-.-.-.-.-.-.-. ^_^
Kullanıcı avatarı
Murat DİCLE
Kıdemli Üye
Mesajlar: 702
Kayıt: 19 Nis 2006 04:12
Konum: İstanbul
İletişim:

Mesaj gönderen Murat DİCLE »

Onu denemek üzereyim, ama bir alay kod varmış. Bakalım sonuç ne olacak.
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Heuristic tarayıcılar puanlama sistemi ile çalışırlar. Uygulamanız, viruslerin kullandığı kodlardan taşıyorlarsa (legal Windows API çağrıları da olabilir), kullandığı her bu tarz kod bloğu için belirli puanlar alır. Daha sonra bu puanlar toplanır ve uygulamanın zararlı olup olmadığına karar verilir.

Anladığım kadarıyla antivirusunuz RunningProcessesList ve TerminateApp çağrılarını gördüğü zaman bunu hatalı olarak bir virus gibi algılıyor. Çünkü puanlama kriterini tamamlıyor. Muhtemelen bu çağrılardan sadece birini kullansanız herhangi bir uyarı vermeyecektir.

Heuristic tarayıcıları aldatma yöntemleri mevcut. Eminim internette birçok kaynak bulabilirsiniz.
Kullanıcı avatarı
Murat DİCLE
Kıdemli Üye
Mesajlar: 702
Kayıt: 19 Nis 2006 04:12
Konum: İstanbul
İletişim:

Mesaj gönderen Murat DİCLE »

Yok sadece tek birini bile kullansam yine aynı uyarıyı veriyor.

Baktım olmuyor bende NOD32'ye yazdım. Zaten böyle durumlar için bize dosyayı gönderin diyor. İlave olarak üretici vs. bilgilerinide istiyor.

JclSysInfo.PAS uniti içindeki şu iki fonksiyon sorun yaratıyor gibi görünsede:
RunningProcessesList
TerminateApp


esas olarak bu unitin kullandığı TLHelp32.PAS unit içindeki şu fonksiyonlar UYARIYA sebep oluyor:
CreateToolhelp32Snapshot
Process32Next
Process32First


uygulama içinde her biri bir kez geçiyor. sadece birini tek birkez bile kullansak uyarı veriyor. Pek puanlama yapıyor gibi görünmüyor. NOD32 sanırım önceden olan puanlama işinin sistemi yavaşlattığını gördü ve bundan vazgeçti. Öyle tahmin ediyorum. Ama böyle fonksiyonları kullanan uygulamaların amaçlrı bilinmediği sürece TEHLİKELİ olacağı varsayılarak doğruca karantinaya alıyor. Bunu sorarak yapsa iyi olurdu. Hoş DİZİN belirttiğinizde o zaman ilgili dizini kontrol dışı bırakıyor. Ama herkes bunu düşünemeyebilir.

Artık NOD32'den cevap bekliyorum.
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Test edebilecekleri False pozitive veren kaynak kodlu kod örnekleri ve binaryler göndermeniz işlerini kolaylaştırabilir.
Kullanıcı avatarı
bluekid
Kıdemli Üye
Mesajlar: 541
Kayıt: 11 Haz 2004 10:45
İletişim:

Mesaj gönderen bluekid »

Benim başıma gelmişti Pack programlarıyla exeyi sıkıştırıp
hallettim mesela UPX ile yada benzeri
bakınız
http://programmerstools.org/taxonomy/term/15
Kullanıcı avatarı
Murat DİCLE
Kıdemli Üye
Mesajlar: 702
Kayıt: 19 Nis 2006 04:12
Konum: İstanbul
İletişim:

Mesaj gönderen Murat DİCLE »

fduman yazdı:Test edebilecekleri False pozitive veren kaynak kodlu kod örnekleri ve binaryler göndermeniz işlerini kolaylaştırabilir.
Adamlar biliyorlar neyin sorun olabileceğiniz. Diyor ki, bu program karanlıkta geziyor neyin nesidir. Hemen karantinaya alıyor. Eğer ben bekçiyim devletin memuruyum dediğinizde :) rahatlıyorlar.

Büyüklük küçüklük meselesi işte, onlar benden büyük oldukları sürece böyle kodlarda hep sorun çıkacak.
Cevapla