Mein Programm ist ein Trojaner (Graftor) ?



  • Hallo. Beim kompilieren meines Programms schlägt mein AntiVir an. Es sei ein 'TR/Graftor.92812'. Die Frage ist warum? Früher habe ich in C# einen Crypter programmiert. Die Technik lag darin den Bytecode zu verschlüsseln und Programmabschnitte mit Splitt-Vokabeln zu trennen. Beim Decryptvorgang werden also die Programmabschnitte mithilfe der Splitter wieder eingelesen und entschlüsselt. Ist das hier ein ähnlicher Vorgang, weshalb das Programm als Trojaner angesehen wird?

    #include <iostream>
    #include <fstream>
    #include <vector>
    #include <string>
    #include <ctime>
    
    int main() {
    	std::string filename;
    	std::cout << "Enter the name of vocabularyfile: ";
    	getline(std::cin, filename, '\n');
    
    	std::ifstream file(filename);
    
    	if(!file) {
    		std::cerr << "Could not find file \"" << filename << "\"";
    		exit(EXIT_SUCCESS);
    	}
    
    	std::string temp; // includes the active line in file
    	std::vector<std::string> lanVocs1, lanVocs2; // vocabularies for both languages
    	unsigned int lines = 0; // count of lines in file
    
    	// initialize vocabularies
    	while(getline(file, temp, '\n')) {
    		const char* ptr = temp.c_str();
    		std::string lan1, lan2;
    
    		while(*ptr != '=') lan1 += *ptr++;
    		while(*++ptr) lan2 += *ptr;
    		lanVocs1.push_back(lan1);
    		lanVocs2.push_back(lan2);
    		++lines;
    	}
    
    	srand((unsigned)time(NULL));
    	std::string input;
    	do {
    		unsigned int ranNum = rand() % lines;
    		std::cout << lanVocs1[ranNum] << " ---> ";
    		std::cin >> input;
    		if(input != "-exit") {
    			if(input == lanVocs2[ranNum]) std::cout << "Right!" << std::endl;
    			else std::cout << "Wrong!" << std::endl;
    		}
    	} while(input != "-exit");
    }
    


  • AntiTrojan schrieb:

    Die Frage ist warum? Früher habe ich in C# einen Crypter programmiert. Die Technik lag darin den Bytecode zu verschlüsseln und Programmabschnitte mit Splitt-Vokabeln zu trennen. Beim Decryptvorgang werden also die Programmabschnitte mithilfe der Splitter wieder eingelesen und entschlüsselt. Ist das hier ein ähnlicher Vorgang, weshalb das Programm als Trojaner angesehen wird?

    Das beste:

    AntiTrojan schrieb:

    Ist das hier ein ähnlicher Vorgang, weshalb das Programm als Trojaner angesehen wird?

    Ich glaub den Cryptor Source Code hast du von irgendwo kopiert. Es weckt den anschein als wüsstest du da überhaupt nicht was du tust.

    Lustigster Beitrag den ich heute im Forum gelesen habe. 👍 😃



  • Naja so viel muss man nicht wissen um son Ding zu programmieren. Aber wenn du so klug und mächtig dabei bist, dann sag mal, wieso AntiVir mir dieses kleine hässliche Fenster hinschmeist? Ich glaube wohl kaum das sich das Programm denkt: "Ach ich hab mal Bock drauf dass du von Razor gedisst wirst und lasse es nicht kompilieren". Ich finde deinen lustiger irgendwie. Ich frage mich, wie lange du auf Wikipedia geguckt hast 😉 Wär ja alles okay, wenn du mir den Grund genannt hättest oder mich konkret verbessert hättest, aber so -> kindisch



  • Kannste mal die Sache reduzieren, indem Du von unten nach oben Stück für Stück Zeilen oder Blöcke auskommentiertst und rausfindest, welcher Befehl am Ende dran schuld ist?



  • Hab ich schon probiert. Das Ding ist, dass einzelne Abschnitte nicht als Virus erkannt werden. Nur als ganzes.



  • AntiTrojan schrieb:

    Hab ich schon probiert. Das Ding ist, dass einzelne Abschnitte nicht als Virus erkannt werden. Nur als ganzes.

    Oki.
    Tausch mal die Strings aus. Mag sein, daß z.B. "-exit" supi ungewöhnlich ist, aber in einem Virus vorkam, oder so.

    Ansonsten, Mail an AntiVir, daß Du einen false positive hast und die ihren Erkenner reparieren dürfen. Ok, das beantwortet die Frage nicht, warum, deren Suche Deinen Code als Virus erkennt.



  • Dann versuche so viel wie möglich zu entfernen, bis das Programm gerade noch als Virus erkannt wird. Ich bezweifle, dass jede einzelne Zeile dazu beiträgt.

    Ich würde nicht nur Code am Ende abschneiden, sondern durchgehend Funktionalität Stück für Stück ausbauen.



  • Tausch mal die Strings aus. Mag sein, daß z.B. "-exit" supi ungewöhnlich ist, aber in einem Virus vorkam, oder so.

    Ändert leider nichts.

    Hab anscheinend die Zeilen ausfindig gemacht. Lasse ich die Zeilen 30 und 31 (also die push_back()-Methoden) weg, dann wird es kompiliert. 😕 😕



  • Dein Antivirus blockiert deinen Compiler?!

    Btw: Der generierte Code (Asm) könnte vielleicht auch einen Aufschluss darauf geben warum das als Virus erkannt wird.



  • Dein Antivirus blockiert deinen Compiler?!

    Blockieren nicht direkt. Das Projekt wird schon erstellt.

    1>------ Erstellen gestartet: Projekt: VocTester, Konfiguration: Release Win32 ------
    1>  main.cpp
    1>  Code wird generiert.
    1>  Codegenerierung ist abgeschlossen.
    1>  VocTester.vcxproj -> C:\Users\Name\Documents\Visual Studio 2010\Projects\VocTester\Release\VocTester.exe
    1>  
    1>mt.exe : general error c101008d: Failed to write the updated manifest to the resource of file "C:\Users\Name\Documents\Visual Studio 2010\Projects\VocTester\Release\VocTester.exe". Zugriff verweigert
    1>  
    ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
    

    Danach entfernt AntiVir die .EXE



  • Kannste in AntiVir einstellen, daß es bestimmt Verzeichnisse nicht scant?



  • Ja kann ich, würde aber gerne wissen wieso 😋



  • Also ich benutz auch Antivir, aber bei mir kompiliert das Programm ohne Probleme (Compiler: MinGW 4.7.0).

    Probier mal einen anderen Compiler aus.



  • Ramanujan schrieb:

    Probier mal einen anderen Compiler aus.

    Er sollte lieber einen anderen Rechner probieren, am besten einen, der nicht verseucht ist. Das Beste dran ist, dass er jetzt u.U. nicht so einfach rausfinden kann, ob sein Rechner tatsächlich Grippe hat.



  • Lustigster Beitrag den ich heute im Forum gelesen habe. 👍 😃

    Bin Ich Razor 1911 's Meinung, denn wenn es dein Code wäre würde er nicht
    Anschlagen ausser du hast damit schon in C# wie du meintest ein Virus geschrieben
    und auf YouTube oder so... Präsentiert als KeyGen/Patch usw... und irgendwem
    damit INFIZIERT verarschen kannste dich selber 👎 😡


Anmelden zum Antworten