Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Grafikbuffer Alphakanal

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
storky



Anmeldungsdatum: 06.01.2013
Beiträge: 68

BeitragVerfasst am: 29.05.2013, 16:48    Titel: Grafikbuffer Alphakanal Antworten mit Zitat

Hallo,

da bin ich wieder mit einer ziehmlich ungewöhnlichen Frage im Gepäck. Ich hoffe mal, dass ich gut erklären kann was ich vor habe.

Also, ich möchte im Grafikbuffer Code verstecken. Dieser wird mit einer *.BMP in den Buffer geladen.
Dazu hab ich mir mal mit Gimp ein Bild gemalt und die ersten paar Pixel mit der Farbe C39090 bemalt.
Das habe ich dann auch wieder gefunden am Bild Ptr + 32, nur ebend umgedreht als 0x90 0x90 0xC3.. und siehe da, ich konnte die "Pixel" von der CPU ausführen lassen!
So nun habe ich aber das Problem, dass es nicht RGB sondern RGBA ist und es quasi so aussieht 9090C3FF ...XXXXXXFFXXXXXXFF usw..
Zur Frage, kann ich mit einem Bildbearbeitungsprogramm da Einfluss auf den Alphakanal nehmen?
Die ständige FF macht das Ganze unutzbar.

So lade ich das Bild:

Code:
bild = ImageCreate(210, 250,0,0)   
bload "back1.bmp", bild


Und, ich weiß, dass man sowas nicht macht, dadurch sogar ein lokaler Exploit entsteht und es sehr "kreativ" ist.

Aber es geht um ein Crackme, mein letztes wurde nach einem Monat wieder gecrackt... ich will noch unkonvertioneller an die Sache rangehen um den Schwierigkeitsgrad zu erhöhen.
Danke.

Edit: Ich will mal noch schnell erläutern was da geschehen soll. Der Code im Bild soll den Key überprüfen, wobei er selbst mit der Serial und einer uID für den PC (aus hash vom bs und cputyp) verrechnet wird und das Ergebnis soll dannach wiederrum auch ausfürbar sein. (Bekomme ich ja hin indem ich alles mit einander xor'e bis die Serial die einzigst ungelöste Variable ist.)

Also so dass, wenn man herrausfindet, dass die "Pixel" die Serial checken, man beim Cracken selbst die Bedingungen für den richtigen Key ändert und daraus ein falsches Programm resultiert... Das dann wohl abstürzen wird. Überprüft wird das mit einem Hash und bei Falscheingabe natürlich abgefangen. Aber pssst zwinkern
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 29.05.2013, 17:05    Titel: Antworten mit Zitat

Du kannst schon mit GIMP den Alpha-Kanal beeinflussen (Ebene -> Transparenz -> Alphakanal hinzufügen, dann z. B. den Hintergrund an der gewünschten Stelle löschen), wie exakt du die Werte da einstellen kannst, weiß ich aber nicht. Ich frage mich allerdings - wenn du sowieso einen bestimmten Code im Bild verstecken willst, warum schreibst du dir da nicht leichter ein Computerprogramm, das diesen Code ins Bild einbaut?
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 29.05.2013, 17:09    Titel: Antworten mit Zitat

zu erwähnen sei da aber noch das BMP's keinen alphakanal haben oder diesen zumindest nicht speichern... also wird wohl ein mopdifiziertes images mit bsave gespeichert noch ein editierter alphakanal da wirklich helfen...
empfehle da dann png's
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 29.05.2013, 17:27    Titel: Antworten mit Zitat

Mit GIMP kannst du den Alpha-Kanal bei BMPs speichern und das dann (z. B. in FreeBASIC) auch nutzen.
Modifizieren mit FreeBASIC funktioniert sowieso, der speichert das dann so wie es in seinem Speicher liegt.


(Nachtrag: http://de.wikipedia.org/wiki/Windows_Bitmap#Versionen_4_und_5)
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 29.05.2013, 17:35    Titel: Antworten mit Zitat

tut er das ?

gab schon häufig probleme wegen des headers für eigene bmp fonts mit draw string...

Code:

screenres 100,100,32
Dim image as any ptr = imagecreate(1,1)
pset image,(0,0),&h00FFFFFF

?hex(point(0,0,image))
bsave "test.bmp",image

imagedestroy (image)
image=0

image = imagecreate(1,1)

bload "test.bmp",image

?hex(point(0,0,image))

sleep

_________________


Zuletzt bearbeitet von Eternal_pain am 29.05.2013, 17:39, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
storky



Anmeldungsdatum: 06.01.2013
Beiträge: 68

BeitragVerfasst am: 29.05.2013, 17:37    Titel: Antworten mit Zitat

Zitat:
wenn du sowieso einen bestimmten Code im Bild verstecken willst, warum schreibst du dir da nicht leichter ein Computerprogramm, das diesen Code ins Bild einbaut?


Du meinst mit bsave?

@Eternal_pain Eine png konnte ich mit bload nicht öffnen, da kommt dann nur 0 raus.


Zum Glück hab ich den Beitrag noch nicht abgeschickt!
Zitat:
Mit GIMP kannst du den Alpha-Kanal bei BMPs speichern und das dann (z. B. in FreeBASIC) auch nutzen.

^^Jap habs hinbekommen, mit hinzugefügtem Aplhakanal und beim Exportieren "Erweiterte Optionen" auf "A8 R8 G8 B8" geklickt...
So liegt nun das Bild im Speicher:

Zitat:
3419984: 90
3419985: 90
3419986: C3
3419987: 70
3419988: 90
3419989: 90
3419990: C3
3419991: 70
...


3419984 Ist der Erste Pixel, Farbe ist in Gimp C39090 und Deckkraft vom Pinsel auf 44. Und da kann ich ja 100 mit 255 ins Verhältnis nehmen oder ggf. testen.

Also hat geklappt, danke!

Edit: Computerprogramme malen happy mich würde mal interessieren wie auf diese Art und Weiße größere Programme aussehen. grinsen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 29.05.2013, 18:51    Titel: Antworten mit Zitat

Eternal_pain hat Folgendes geschrieben:
tut er das ?

Hmm, scheinst Recht zu haben, was das Speichern angeht. Da scheint FreeBASIC auf Routinen zurückzugreifen, welche den Alphakanal ausschalten. Dann müsste man wohl doch per Direktzugriff auf die Datei schreiben. Prinzipiell lädt und schreibt BLOAD und BSAVE ja einfach den Speicherinhalt; wenn es aber einen BMP-Header erkennt, wird das auch als BMP behandelt (soweit mein aktueller Wissensstand).
Laden funktioniert jedenfalls, das hatte ich auch schon mal im Einsatz.

Zitat:
Edit: Computerprogramme malen happy mich würde mal interessieren wie auf diese Art und Weiße größere Programme aussehen. grinsen

Wenn du gerne Programme malst, würde ich doch eher Piet empfehlen. happy
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1839
Wohnort: [JN58JR]

BeitragVerfasst am: 30.05.2013, 01:43    Titel: Antworten mit Zitat

@Eternal_pain ... die Alpha-Probleme könnten auf ein (eventuell) BUG (maybe auch Fail Feature) in der fbgfxlib herrühren. (Die macht ALPHA PSET stat ALPHA Blending).


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz