Çözüldü VirusTotal kendi yazdığım programı virüs olarak algılıyor

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

Linuxginar

Gigapat
Katılım
4 Temmuz 2017
Mesajlar
7.537
Makaleler
6
Çözümler
136
Yer
Izmir
Çok saçma bir sorun. Kendi yazdığım programı test için attım. İşin komiği program İskender sipariş programı. Link: VirusTotal

Nedeni ne olabilir?
Ben programı forumda paylaşsam mahcup olurdum.
Ayrıca karanlık tema özelliği için kayıt defterine erişiyor.
Kodları atayım:
[CODE lang="csharp" title="Kod"]using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Microsoft.Win32;

namespace WindowsFormsApp9
{
public partial class Form1 : Form
{
float iskenderFiyat = 19.98f;
float suFiyat = 0.85f;
float ayranFiyat = 1.95f;
float sogukcayFiyat = 3.49f;
decimal iskender;
float iskendertoplam=0;
float sutoplam=0;
float ayrantoplam=0;
float sogukcaytoplam=0;
bool su=false;
bool toDark = true;
bool basildi = false;
bool ayran=false;
bool sogukcay=false;
string greet = "\n";
int iskenderFloat;
bool resetComplete = false;
bool siparisTamam = false;
Color foreColor;
Color oldtbcolor;
Color oldtbcolorfg;
Color backColor;
Color oldColor2;
Color oldColor3;
Color oldChart;
Color oldColor;
public Form1()
{
InitializeComponent();
this.CenterToScreen();
}

public void lightTheme()
{
this.BackColor = backColor;
this.ForeColor = foreColor;
groupBox1.ForeColor = foreColor;
groupBox2.ForeColor = foreColor;
button1.BackColor = backColor;
button2.BackColor = backColor;
numericUpDown1.ForeColor = foreColor;
numericUpDown1.BackColor = backColor;
suadet.ForeColor = foreColor;
suadet.BackColor = backColor;
ayranadet.ForeColor = foreColor;
ayranadet.BackColor = backColor;
sogukcayadet.ForeColor = foreColor;
sogukcayadet.BackColor = backColor;
tabPage1.BackColor = oldColor;
tabPage2.BackColor = oldColor2;
tabPage3.BackColor = oldColor3;
textBox2.BackColor = oldtbcolor;
textBox2.ForeColor = foreColor;
textBox1.BackColor = oldtbcolor;
chart1.BackColor = oldChart;
}

public void darkTheme()
{
this.BackColor = Color.Black;
this.ForeColor = Color.White;
groupBox1.ForeColor = Color.White;
groupBox2.ForeColor = Color.White;
button1.BackColor = Color.Black;
button2.BackColor = Color.Black;
numericUpDown1.ForeColor = Color.White;
numericUpDown1.BackColor = Color.Black;
suadet.ForeColor = Color.White;
suadet.BackColor = Color.Black;
ayranadet.ForeColor = Color.White;
ayranadet.BackColor = Color.Black;
sogukcayadet.ForeColor = Color.White;
sogukcayadet.BackColor = Color.Black;
tabPage1.BackColor = Color.Black;
tabPage2.BackColor = Color.Black;
tabPage3.BackColor = Color.Black;
textBox1.BackColor = Color.Black;
textBox1.ForeColor = Color.White;
textBox2.BackColor = Color.Black;
textBox2.ForeColor = Color.White;
}
public void resetAll()
{
numericUpDown1.Value = 0;
checkBox1.Checked = false;
checkBox2.Checked = false;
checkBox3.Checked = false;
iskenderFiyat = 19.98f;
suFiyat = 0.85f;
ayranFiyat = 1.95f;
sogukcayFiyat = 3.49f;
iskender=0;
su = false;
basildi = false;
ayran = false;
sogukcay = false;
greet = "\n";
suadet.Value = 0;
ayranadet.Value = 0;
sogukcayadet.Value = 0;
resetComplete = true;
}
private void button1_Click(object sender, EventArgs e)
{
float toplamFiyat = 0f;
if (numericUpDown1.Value > 0)
{
if (!basildi)
{
basildi = true;

iskender = numericUpDown1.Value;
if (checkBox1.Checked)
{
if (suadet.Value > 0)
{
su = true;
greet += "·" + suadet.Value.ToString() + " adet su almayı seçtiniz.\n";
textBox1.Text = greet + "\n";
sutoplam = suFiyat * float.Parse(suadet.Value.ToString());
toplamFiyat += suFiyat * float.Parse(suadet.Value.ToString());
}
else
{
MessageBox.Show("Bazı siparişlerinizin adetlerini belirtmemişsiniz.","Hata.");
resetAll();
}
}
else
{
su = false;
greet += "· Su almamayı seçtiniz. \n";
textBox1.Text = greet + "\n";
}
if (checkBox2.Checked)
{
if (ayranadet.Value > 0)
{
ayran = true;
greet += "·" + ayranadet.Value.ToString() + " adet ayran almayı seçtiniz. \n";
textBox1.Text = greet + "\n";
ayrantoplam = ayranFiyat * float.Parse(ayranadet.Value.ToString());
toplamFiyat += ayranFiyat*float.Parse(ayranadet.Value.ToString());

}
else
{
MessageBox.Show("Bazı siparişlerinizin adetlerini belirtmemişsiniz.","Hata");
resetAll();
}
}
else
{
ayran = false;

greet += "· Ayran almamayı seçtiniz. \n";
textBox1.Text = greet + "\n";
}
if (checkBox3.Checked)
{
if(sogukcayadet.Value > 0)
{
sogukcay = true;
greet += "·" + sogukcayadet.Value.ToString() + " adet soğuk çay almayı seçtiniz. \n";
textBox1.Text = greet + "\n";
toplamFiyat += sogukcayFiyat * float.Parse(sogukcayadet.Value.ToString());
sogukcaytoplam = sogukcayFiyat * float.Parse(sogukcayadet.Value.ToString());
}
else
{
resetAll();
MessageBox.Show("Bazı siparişlerinizin adetlerini belirtmemişsiniz.","Hata");
}
}
else
{
greet += "· Soğuk çay almamayı seçtiniz. \n";
textBox1.Text = greet + "\n";
}
if (!resetComplete)
{
toplamFiyat += iskenderFiyat * float.Parse(iskender.ToString());
iskendertoplam = iskenderFiyat * float.Parse(iskender.ToString());
MessageBox.Show(iskender.ToString() + " adet İskender aldınız ve seçimleriniz: \n " + greet + "\n\n Toplam fiyat: " + toplamFiyat.ToString() + "\nSiparişinizin özetine detaylar bölümünden bakabilirsiniz.","Başarılı",MessageBoxButtons.OK,MessageBoxIcon.Information);
siparisTamam = !siparisTamam;
foreach (var series in chart1.Series)
{
series.Points.Clear();
}

tabPage2.Show();
tabPage3.Show();
tabPage4.Show();

chart1.Series["Fiyat Dağılımı"].Points.Add(iskendertoplam);
chart1.Series["Fiyat Dağılımı"].Points.Add(sutoplam);
chart1.Series["Fiyat Dağılımı"].Points.Add(ayrantoplam);
chart1.Series["Fiyat Dağılımı"].Points.Add(sogukcaytoplam);
chart1.Series["Fiyat Dağılımı"].Points[0].AxisLabel = "İskender";
chart1.Series["Fiyat Dağılımı"].Points[1].AxisLabel = "Su";
chart1.Series["Fiyat Dağılımı"].Points[2].AxisLabel = "Ayran";
chart1.Series["Fiyat Dağılımı"].Points[3].AxisLabel = "Soğuk çay";
chart1.Show();
textBox2.Text = "Toplam Fiyat: " + toplamFiyat;
}
else
{
MessageBox.Show("Hatalardan dolayı girişiniz sıfırlandı.","Bilgi",MessageBoxButtons.OK,MessageBoxIcon.Error);
resetComplete = !resetComplete;
}
}
else
{
MessageBox.Show("Zaten sipariş vermişsiniz.","Hata");
}
}

else
{
MessageBox.Show("İskender seçmek zorunludur.");
}
}

private void button2_Click(object sender, EventArgs e)
{
switch (toDark)
{
case true:
Registry.CurrentUser.CreateSubKey("WinFormsSettings").SetValue("CurrentTheme", 1);
foreColor = this.ForeColor;
backColor = this.backColor;
oldtbcolor = textBox1.BackColor;
oldColor = tabPage1.BackColor;
oldColor2 = tabPage2.BackColor;
oldColor3 = tabPage3.BackColor;
oldtbcolorfg = textBox1.ForeColor;
oldChart = chart1.BackColor;
darkTheme();
button2.Text = "Açık tema";
toDark = !toDark;
break;
case false:
Registry.CurrentUser.CreateSubKey("WinFormsSettings").SetValue("CurrentTheme", 0);
lightTheme();
button2.Text = "Karanlık tema";
toDark = !toDark;
break;
}
}

private void Form1_Load(object sender, EventArgs e)
{
tabPage2.Hide();
tabPage3.Hide();
tabPage4.Hide();
chart1.Hide();
timer1.Start();
//tabPage1.Text = "Sipariş";
//tabPage2.Text = "Önizleme";
switch(Registry.CurrentUser.OpenSubKey("WinFormsSettings").GetValue("CurrentTheme"))
{
case 1:
darkTheme();
button2.Text = "Açık tema";
toDark = !toDark;
break;
case 0:

lightTheme();
button2.Text = "Karanlık tema";
toDark = !toDark;
break;
}
}

private void groupBox1_Enter(object sender, EventArgs e)
{

}

private void timer1_Tick(object sender, EventArgs e)
{
DateTime dt = DateTime.Now;
label1.Text = "Saat: " + dt.ToLongTimeString();
}

private void chart1_Click(object sender, EventArgs e)
{

}

private void tabPage3_Click(object sender, EventArgs e)
{
if (!siparisTamam)
{
MessageBox.Show("Daha siparişinizi tamamlamadığınız için " + tabPage3.Text + " sekmesini göremiyorsunuz.");
}
}

private void tabPage2_Click(object sender, EventArgs e)
{
if (!siparisTamam)
{
MessageBox.Show("Daha siparişinizi tamamlamadığınız için " + tabPage2.Text + " sekmesini göremiyorsunuz.");
}
}

private void tabPage4_Click(object sender, EventArgs e)
{
if (!siparisTamam)
{
MessageBox.Show("Daha siparişinizi tamamlamadığınız için " + tabPage4.Text + " sekmesini göremiyorsunuz.");
}
}

private void chart1_Enter(object sender, EventArgs e)
{

}

private void tabPage4_Enter(object sender, EventArgs e)
{
if (!siparisTamam)
{
MessageBox.Show("Daha siparişinizi tamamlamadığınız için " + tabPage4.Text + " sekmesini göremiyorsunuz.");
tabControl1.SelectedIndex = 0;
}
}

private void tabPage3_Enter(object sender, EventArgs e)
{
if (!siparisTamam)
{
MessageBox.Show("Daha siparişinizi tamamlamadığınız için " + tabPage3.Text + " sekmesini göremiyorsunuz.");
tabControl1.SelectedIndex = 0;
}
}

private void tabPage2_Enter(object sender, EventArgs e)
{
if (!siparisTamam)
{
MessageBox.Show("Daha siparişinizi tamamlamadığınız için " + tabPage2.Text + " sekmesini göremiyorsunuz.");
tabControl1.SelectedIndex = 0;
}
}
}
}
[/CODE]
 
Çözüm
Antivirüs firmaları anlayamadığım bir düşünceye sahipler birkaç senedir. Sertifikası olmayan her yazılımı zararlı olarak adlandırma gibi. Oysa sormak lazım, günümüzde kaç tane ciddi saldırı sertifika olmadan yapılıyor?

Hani sertifikayı çalamazsan basarsın parayı alırsın sertifikayı, imzalarsın zararlıyı yine zor bir şey değil.

Büyük etkili zararlıların ekserisinde sertifika var be abicim, bari her sertifikasıza zararlı deme de bağımsız yazılım geliştiricilerine zindan etme ortalığı.
Buradaki sertifika olayı başka hocam :) Kod imzalama sertifikasından bahsediyoruz, web sitelerininkinden değil :) Ama sizin dediğiniz de doğru tabi.

Hocam bu sertifika dediğimiz şey, uygulama indirirken "Değişiklik yapmasına izin veriyor musunuz?" diye bir uyarı çıkıyor. Oradaki sertifika mı?
 
Hocam bu sertifika dediğimiz şey, uygulama indirirken "değişiklik yapmasına izin veriyor musunuz?" diye bir uyarı çıkıyor. Oradaki sertifika mı?
Yönetici izni mi sertifika olmadığını belirten soru mu? Hangisinden bahsettiğinizi anlamadım. Ama bahsettiğiniz şey sanırım indirme yaptıktan sonra bir programı çalıştırırken sorulan klasik soruysa evet. Sertifikasız ise soruluyor internetten indirilen dosyalarda genelde.
 
Yönetici izni mi sertifika olmadığını belirten soru mu? Hangisinden bahsettiğinizi anlamadım. Ama bahsettiğiniz şey sanırım indirme yaptıktan sonra bir programı çalıştırırken sorulan klasik soruysa evet. Sertifikasız ise soruluyor internetten indirilen dosyalarda genelde.

Orada yapımcı şirket falan yazıyor. O mu sertifika oluyor onu merak ettim :)
 
Orada yapımcı şirket falan yazıyor. O mu sertifika oluyor onu merak ettim :)
Şunları kastediyorsunuz sanırım:)

1612990681841.png

1612990736718.png
 

Aynen. Mesela bazı uygulamalarda orada bilinmiyor gibi bir şey yazıyor. O bilgiler nasıl giriliyor? Şahsen onu görmek bana güven veriyor. Bir tek ben değilimdir sanırım. İleride geliştireceğim ve geliştirebileceğim uygulamalar ve projelerde kullanmak isterim. Fakat nasıl yapıldığını bilmiyorum.
 
Aynen. Mesela bazı uygulamalarda orada bilinmiyor gibi bir şey yazıyor. O bilgiler nasıl giriliyor? Şahsen onu görmek bana güven veriyor. Bir tek ben değilimdir sanırım. İleride geliştireceğim ve geliştirebileceğim uygulamalar ve projelerde kullanmak isterim. Fakat nasıl yapıldığını bilmiyorum.
Bildiğim kadarıyla sertifikalarla oluyor. "Ayrıntıları göster" deyince "Bu yayımcının sertifikası hakkında bilgileri görüntüle" seçeneği belirir, oradan ürünün sertifikasını görebilirsin. Uygulamalar nasıl sertifikalanıyor, bu konuda bilgim yok, @24099 hocam daha iyi bilir.
 

Geri
Yukarı