Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

07.05.2017, 17:45

Listing 8.8 KIS blockiert und löscht erstellte *.exe umgehend

Hallo zusammen.

Ich befasse mich gerade mit dem Buch "C++ für Spieleprogrammierer", und bisher läuft es mehr oder minder gut :D

Nun bin ich bei Kapitel 8.5.1 und dem Listing 8.8.

Bis hier her liefen alle Codebeispiele aus dem Buch, jedoch eben dieses Listing bereitet mir etwas Sorgen. 8|

Wenn ich das vorgegebene Listing in/mit Visual Studio kompilieren möchte (oder auch den Debugger starte),
springt mein Kaspersky instant an und wirft mir eine Bedrohungsmeldung entgegen.

Es wurde versucht, ein schädliches Objekt zu starten, das mithilfe von Kaspersky Security Network erkannt wurde:


gefunden : UDS: DangerousPattern.Multi.Generic

Ort: der Ort der gerade erstellten EXE


und löscht die frisch erstellte *.exe sofort ?(


Visual Studio gibt mir dazu gleichzeitig:


das Programm "C:\..........File.exe" kann nicht gestartet werden.

zugriff verweigert


Durch "rumdoktorn" ( mein Wissen bezüglich C++ ist ja noch nicht wahnsinnig umfangreich ) und der Hilfe von Onkel Google, hab ich "rausgefunden", dass KIS sich wohl mit der Zeile 33 nicht so verträgt.

Ändere ich dort das

C-/C++-Quelltext

1
ifstream Input("Highscore.hsc",ios::binary);

auf "nur"

C-/C++-Quelltext

1
fstream Input("Highscore.hsc",ios::binary | ios::in);

zickt KIS nicht mehr, und greift auch nicht mehr überraschend ein.

Kann mir jemand sagen, was das Problem von KIS mit ifstream ist? :golly:

Onkel Google konnte mir da auch nicht wirklich weiterhelfen.

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
// C++ für Spieleprogrammierer
// Listing 8.8
// Dateien: Ein- und Ausgabe
//
#include <iostream>
#include <fstream>

using namespace std;

// Hauptprogramm
//
int main ()
    {
    // Variablen
    //
    int Highscore = 0;

    // Aktuellen Highscore abfragen
    cout << "Wie hoch ist der Highscore: ";
    cin >> Highscore;

    // Datei zum Schreiben öffnen und Highscore hineinschreiben
    ofstream Output ("Highscore.hsc", ios::binary);
    Output.write ((char*)&Highscore, sizeof (Highscore));

    // Datei schließen
    Output.close ();

    // Neues Spiel, neues Glück. Highscore zurücksetzen
    Highscore = 0;

    // Datei zum Lesen öffnen und Highscore auslesen
    ifstream Input ("Highscore.hsc", ios::binary);
    Input.read ((char*)&Highscore, sizeof (Highscore));

    // Datei schließen
    Input.close ();

    // Highscore ausgeben
    cout << "Highscore aus der Datei: " << Highscore;
    cout << endl;

    return 0;
    }

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Braccus34« (07.05.2017, 18:28)


BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

2

07.05.2017, 18:16

Sicher, dass es der ifstream ist und nicht die Kombination aus Dateiname und ifstream? Vielleicht filtert er nach '.hsc' oder solchem Unfug.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

3

07.05.2017, 18:26

Meine Kenntnisse diesbezüglich sind noch sehr gering.

Hab es aber gerade nochmal ausprobiert und der "Fehler" lässt sich mit dem, wie im Buch abgebildeten

C-/C++-Quelltext

1
ifstream Input ("Highscore.hsc", ios::binary);


immer wieder reproduzieren.


ändere ich es auf den, ich nenne ihn jetzt mal "Oberkanal"

C-/C++-Quelltext

1
fstream

von diesem Besagten

C-/C++-Quelltext

1
ifstream


also


C-/C++-Quelltext

1
fstream Input ("Highscore.hsc", ios::binary|ios::in);



geht alles glatt

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

4

07.05.2017, 18:42

Das stand schon in deinem ersten Post. Hast du mal versucht einen anderen Dateinamen zu verwenden? Ansonsten bleibt dir natürlich auch noch die Möglichkeit deine exe bei Kaspersky als false-positive einzureichen, damit sie das fixen.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

5

07.05.2017, 18:55

Also lese ich zwischen den Zeilen deiner Antwort, dass die exe quasi von KIS nur falsch interpretiert wird?

Dein Vorschlag wäre bei größeren Projekten sicher eine Überlegung wert, doch hier, bei dem Lernbeispiel, vermutlich zu viel Aufwand.

Hab es auch mit anderen Dateinamen versucht, beispielsweise "*.txt" .

Gleiches Ergebnis.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

6

07.05.2017, 19:00

Ja sicher wird sie falsch interpretiert. Da ist nichts gefährliches an der Zeile, die da Probleme macht. Also an deiner Stelle würde ich die Exe an Kaspersky schicken. Kann ja nicht sein, dass das Ding so austickt wegen harmlosem C++ Code.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Nimelrian

Alter Hase

Beiträge: 1 216

Beruf: Softwareentwickler (aktuell Web/Node); Freiberuflicher Google Proxy

  • Private Nachricht senden

7

07.05.2017, 20:15

Oder einfach keine Antivirensoftware benutzen. Ist sowieso Müll.
Ich bin kein UserSideGoogleProxy. Und nein, dieses Forum ist kein UserSideGoogleProxyAbstractFactorySingleton.

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

8

08.05.2017, 00:31

Antivirenprogramme haben soweit ich weiß salopp gesagt zwei Erkennungsmodi. Einerseits suchen sie nach bekannten Schadsoftware. Andererseits gibt es eine Art "heuristische" Erkennung. Hierbei such das Antivirenprogramm nach bestimmen "programmabschnitten". Wenn es bei einem Programm auf solch einen Abschnitt trifft, geht es davon aus dass es Schadsoftware sein könnte. Normalerweise kann man für sich lokal einfach eine entsprechende Ausnahmeregelung anlegen (kA wie das bei KIS ist). Alternativ eben entsprechende Abschnitte "rausfinden" und abwandeln oder KIS ein false positive an den Kopf werfen (wie bereits von BlueCobold vorgeschlagen).
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

9

24.05.2017, 15:29


Oder einfach keine Antivirensoftware benutzen. Ist sowieso Müll.

Wenn du deinen Windows PC (sofern du einen hast) alle halbe Jahre wieder neu aufsetzen willst, kannst du den Virenscanner natürlich weg lassen...

ich geb dir aber Recht, das viele Virenscanner nicht wirklich gut sind, besonders die gratis Dinger, aber Kaspersky kann ich mit sehr gutem Gewissen empfehlen, die sind nicht teuer (ca. 15€ im Jahr) und noch dazu richtig gut und schnell was neue Bedrohungen angeht. Besonders für Leute die so gar keine Ahnung von PC's haben empfiehlt sich das Internet Security, weil es z.B. die gefährlichen Seiten gleich mit einer Warnung versieht, so dass jeder "Bauarbeiter" versteht was los ist...

Aber nun wieder zurück zum Thema, bei KIS kannst du ganz einfach Ausnahmen hinzufügen, schau mal hier: https://support.kaspersky.com/de/12160
dann spingt Kaspersky auch nicht mehr im Dreieck :thumbup:

Lg

Nimelrian

Alter Hase

Beiträge: 1 216

Beruf: Softwareentwickler (aktuell Web/Node); Freiberuflicher Google Proxy

  • Private Nachricht senden

10

24.05.2017, 18:06

Wenn du deinen Windows PC (sofern du einen hast) alle halbe Jahre wieder neu aufsetzen willst, kannst du den Virenscanner natürlich weg lassen...

Bullshit. Mein PC läuft seit 2 Jahren sauber, ohne irgendeine AV-Software. Im Gegenteil, AV-Software macht deinen PC sogar anfälliger für Malware, denn das ist zusätzliche Software, die in jede Datei reinschaut. Gibt genug Beispiele, auch bei Kaspersky. Die beste Verteidigung gegen jegliche Art von Malware bleibt gesundes Denken, wer sich jeden Müll aus dem Internet zieht sollte sich nicht wundern, wenn er sich dabei Malware einfängt.
Ich bin kein UserSideGoogleProxy. Und nein, dieses Forum ist kein UserSideGoogleProxyAbstractFactorySingleton.

Werbeanzeige