Diskussionen über interessante Themen



  • Ich hab das mal schnell zusammen gehackt:

    #include <iostream>
    #include <string>
    #include <fstream>
    #include <IL/il.h>// -lIL
    using namespace std;
    
    typedef const string cstring;
    typedef unsigned char uchar;
    typedef unsigned int uint;
    
    uint GetFunctionLength(const void* ptr)
    {
    	const uchar* p = (const uchar*)ptr;
    
    	if((*p) != 0x55)
    		return 0;//kein pointer auf eine funktion!
    
    	uint size = 1;
    
    	for(; (*p) != 0xC3; ++p)
    		size++;
    
    	return size;
    }
    
    void WriteFunction(cstring& filename, void* ptr)
    {
    	if(uint length = GetFunctionLength(ptr))
    	{
    		ofstream out(filename.c_str(),ios::binary);
    		out.write((char*)ptr,length);
    	}
    }
    
    float VectorPunktProdukt(float v1[3], float v2[3])
    {
    	return v1[0]*v2[0] + v1[1]*v2[1] + v1[2]*v2[2];
    }
    
    int main(void)
    {
    	if(ilGetInteger(IL_VERSION_NUM) < IL_VERSION)
    		return 0;
    
    	ilInit();
    	ilEnable(IL_FILE_OVERWRITE);
    	ilEnable(IL_ORIGIN_SET);
    	ilOriginFunc(IL_ORIGIN_LOWER_LEFT);
    
    	uint id = 0;
    	ilGenImages(1,&id);
    	ilBindImage(id);
    
    	ilTexImage(GetFunctionLength((void*)VectorPunktProdukt),
    						1,//height
    						1,//depth
    						1,//bpp
    						IL_LUMINANCE,
    						IL_UNSIGNED_BYTE,
    						(void*)&VectorPunktProdukt);
    
    	ilSave(IL_PNG, "noise.png");
    
    	ilDeleteImages(1,&id);
    	ilShutDown();
    	return 0;
    }
    

    Compiled auf dem gcc ohne Warnings. Wenn ihr es selber compilen wollt
    brauche ihr noch DevIl aka OpenIL (openil.sourceforge.net)
    Hier ist die noise.png (www.codecreator.net/noise.png),
    so wie's aussieht kann man ne Menge Source als Bild speichern.
    Macht nur nicht den Fehler und versucht auch Dinge zu verweisen
    die im Hauptprogramm deklariert wurden (Strings z.B) 😉



  • Schon klar...

    Bye, TGGC \-/



  • Hatte auch nicht bezweifelt dass du damit Probleme hast. 😉

    *sry* aber der mußte sein :p



  • Ich bin mir sicher, dass ein Cracker das genauso schnell wie nen anderer Schutz
    ausgehebelt hat, weil er ziemlich schnell beim debuggen sehen wird, dass du
    diese Datei öffnest und die Daten darin als Code weiterverwendest und nicht als
    Bilddaten.

    Er braucht doch gar keine CD, wofür gibts virtuelle Laufwerke?



  • @Kane:
    Du bist ja so schlau!

    Aber du hast den Schutz vergessen. Warum sollte das mit einer kopierten noise.png nicht klappen?

    Bye, TGGC \-/



  • Aber du hast den Schutz vergessen. Warum sollte das mit einer kopierten noise.png nicht klappen?

    Der Schutz ist das Ungewöhnliche. Wie oft hast du schon Source in einem Bild
    gesehen? (Von dem Bsp. hier mal abgesehen...)
    Außerdem kann man den Source ja auf mehrere Bilder verteilen (jedes Bild hat nur
    ein paar relevante Bits die so beim Betrachten nicht auffallen)

    Außerdem der Cracker wird nach Funktionen wie "CheckCopyProtection" und Strings
    wie "Please insert the correct CD-Rom" suchen. Ich kenne keinen No-CDFix
    der außer der Dll oder der Exe etwas anderes verändert.

    Letztlich kannst du natürlich nichts komplett schützen, aber von Standardlösungen (if Abfragen in der Exe z.B.) sollte man absehen.
    Für die meisten kommerziellen Protections haben Gruppen wie DEViANCE eh
    schon automatische(!) Crackingprogramme.



  • Kane schrieb:

    Aber du hast den Schutz vergessen. Warum sollte das mit einer kopierten noise.png nicht klappen?

    Der Schutz ist das Ungewöhnliche.

    Wo bitte ist der Schutz? Eine stinknormalen Kopie aller Datei und es läuft.

    Bye, TGGC \-/



  • Ich wollte damit eingentlich den Source schützen der nacher die CD auf Echtheit prüft.
    Er soll einfach nicht in einer Dll oder Exe wie auf dem Präsentierteller rumliegen. Was man nicht findet kann man auch net cracken.

    Btw, echter Source und Daten (Variablen etc, also auch das Bild)
    liegen in anderen Speicherbereichen was die Sache imho noch etwas schwieriger macht.

    @TGGC: Was würdest du den favourisieren?



  • *thread aus den tiefen des forums(seite 14 unter suchname TGGC ;)) hervorkram*

    dieser Thread ist immernoch interessant, wollen wir das nicht vielleicht wiederbeleben? Das war mal was anderes, als das ewige "wie krieg ich textur xyz auf objekt abc".



  • Don't ask to do it, do it. 😎

    Bye, TGGC (Der Held lebt!)


Anmelden zum Antworten