Assemblerroutinen in BlitzBasic 2D einbinden?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Jamagin

Betreff: Assemblerroutinen in BlitzBasic 2D einbinden?

BeitragMi, Okt 13, 2004 9:22
Antworten mit Zitat
Benutzer-Profile anzeigen
hallo an alle,

ist es möglich von blitzbasic 2d heraus auf assembler-routinen zuzugreifen?
besonders interessieren würde mich, ob man auf den chain4 mode zugreifen kann?

für infos wäre ich sehr dankbar

lg. Jamagin
Bevor du etwas neues beginnst, erledige das alte

bruZard

BeitragMi, Okt 13, 2004 9:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein, ist direkt nicht möglich.
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32

User posted image

Jan_

Ehemaliger Admin

BeitragMi, Okt 13, 2004 10:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein, es ist fast nciht möglich.

Irgendjemand, hatte es mal mit der Überziehung eines Strings geschafft, Compilten Asm Code, auszufürhren.
between angels and insects

Vertex

BeitragMi, Okt 13, 2004 13:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Was willst du mit chain4 mode? Dir ist schon klar, das blitz pageflipping von haus aus unterstützt ?oder
Ansonsten kannst du Assemblercode nur über DLL einbinden, genauer über CallDll.
Über Bufferoverflows Assembler zu integrieren ist ja nicht gerade die feine Art Smile
mfg olli
vertex.dreamfall.at | GitHub

joachim_neu

BeitragMi, Okt 13, 2004 14:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Vertex hat Folgendes geschrieben:
Was willst du mit chain4 mode? Dir ist schon klar, das blitz pageflipping von haus aus unterstützt ?oder
Ansonsten kannst du Assemblercode nur über DLL einbinden, genauer über CallDll.
Über Bufferoverflows Assembler zu integrieren ist ja nicht gerade die feine Art Smile
mfg olli


kommt doch net auf den weg, sondern das ergebniss an, oder Wink
wo gibts den code, mit dem man ASM-Code ausführen kann?
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de

Jan_

Ehemaliger Admin

BeitragMi, Okt 13, 2004 14:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Im verlorenen Forum :-/

Der war in dem alten Forum drinne, was ja verloren ging.
between angels and insects

joachim_neu

BeitragMi, Okt 13, 2004 19:56
Antworten mit Zitat
Benutzer-Profile anzeigen
hat sich das keiner aufgeschrieben???
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de

TheShadow

Moderator

BeitragMi, Okt 13, 2004 21:20
Antworten mit Zitat
Benutzer-Profile anzeigen
>>>>Über Bufferoverflows Assembler zu integrieren ist ja nicht gerade die feine Art

Hm dabei ist BB so "stabil" - ich wüsste jetzt nicht direkt wie ich einen buffer overflow erzwingen könnte - mit banks evtl oder mit dim's...
Und wenn das auch tatsächlich geht, dann ist es keine Garantie, dass es überall läuft. Auf einem 64-Bit-Prozessor (und einem OS, das extended mem bits unterstützt - oder wie die hiessen) wird ein programm automatisch terminiert, wenn es zu einem buffer overflow kommt und ein code aus dem datenbereich ausgeführt werden soll...

Es ist echt schon scheiße mit dem Speicher. Als die Computer erfunden waren, hat man nicht so an sicherheit gedacht - im gegenteil, hat man es sogar als vorteilan gesehen, dass maschinencode und daten im selben speicher liegen (so kann sich ein programm selbstständig "umschreiben"). Sowas wurde aber nie wirklich genutzt und ist jetzt seit dem "entdecken" von buffer overflows zu gigantischen sicherheitslücken mutiert. Am idealsten wäre natürlich ein getrennter speicher für maschinencode und für programmdaten - das ist aber kaum noch machbar. Darum hat man bei 64-Bit prozessoren einen Trick eingeführt und "execution data" wird jetzt mit einem bit markiert - eine software kann nun erkennen, wenn es zu bufferoverflow kommt und ein falscher Code ausgeführt wird...
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2

Vertex

BeitragMi, Okt 13, 2004 21:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Man muss sich ersteinmal klar werden, wie der Speicher aufgebaut ist.

Der erste Teil ist das Betriebsystem, dann kommen die einzelnen Programme. Die Programme werden untergliedert in Programmsegement und Datensegment. Im Datensegment stehen die ganzen Variablen im Programmsegement der ausführbare Machinencode. Alles was nach dem Programm ist nennt man Heap(in ihm werden Allokationen wie z.B. CreateBank durchgeführt). Da jedoch Programme in den freien Speicher geladen werden, verschiebt sich der Heap. Das Datensegment des vorhergehenden Programmes besteht ja aus Variablen z.B. auch aus Strings. Der vordefinierte Wert eine Strings hat eine feste länge. Nun greift der Programmierer auf ein Element auserhalb des Strings zu. Wenn man Glück hat, ist es nur der Heap, wenn man Pech hat, ist es das Programmsegment des nächsten Programms. Dieses Prüfen der Überschreitung eines Strings bzw. des Buffers kostet Zeit. Deswegen hat C/C++ nicht diese Überprüfung (es sei denn es kann beim Kompiliervorgang festgestellt werden). Java z. B. hat diese Überprüfung ist jedoch auch bedeutend langsamer. Nach der Programmiersprache selber trägt das OS, das ja für die Speicherverwaltung zuständig ist, dafür Sorge soetwas zu verhindern. Wir als Windows User haben jedoch nur ein Micky Maus OS zur Verfügung, das nur schlechte Übrwachung besitzt. Deswegen muss sich der Programmierer selbst weitestgehend vor Bufferoverlows schützen.
mfg olli
vertex.dreamfall.at | GitHub
 

Dreamora

BeitragMi, Okt 13, 2004 21:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Den letzten Satz würde ich "vor .NET Zeiten" beschränken. Deswegen wir ja Longhorn auch in die Richtung entwickelt und .NET Kenntnisse auf Windowsseite langsam zu einer Standardanforderung wenn Softwareentwickler etc gesucht werden.

[ot]
Die Frage ist, inwiefern wir jemals die Matrix erschaffen wollen, wenn sich unsere Programme nicht mehr selbst intelligenter und bugfreier machen können Wink[/ot]
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group