Deutsch
Umfragen

Assemblerkenntnisse - ja oder nein?

 
Ich habe noch einiges vor und möchte mal insgesammt antesten, wie es mit des Kenntnissen um Assembler (ASM/MASM) hier im Forum so aussieht.

Keinen blassen Schimmer: Ihr habt noch nie großartig mit ASM zu tun gehabt und bislang selbst keine Quelltexte in ASM geschrieben. Auch die, die zwar im Prinzip einen Großteil eines ASM Textes lesen können, aber nicht dazu in der Lage sind, eigenen Code zu schreiben, sollten sich hier eintragen. Auch jemand, der zwar irgendwann einmal irgendein Tutorial durchgeackert hat, aber nie zum Schreiben gekommen ist, gehört hier hin. Vor etwa einer Woche hätte ich mich auf jedenfall hier eingetragen.

Habe Grundkenntnisse: Hier gehören alle hin, die zwar schon kleinere Codes in ASM geproggt haben, aber weit davon entfernt sind, die gesammt Syntax zu kennen. Auch alle Einsteiger in ASM Programmierung sollten sich hier angesprochen fühlen. Ich selbst habe mich auch hier verewigt.

Habe Erfahrung mit ASM: Das ist die richtige Stelle zum Ankreuzen für die Profis in ASM Programmierung (Frank Abbing würde ich zum Beispiel hier einordnen). Jeder, der schon einige größere Projekte mit ASM durchgeführt hat, aber längst noch nicht jeden Kniff kennt (wie z.B. Treiberprogrammierun oder das Erstellen von DLLs) und Leute, die zwar früher viel mit ASM herumgespielt, aber schon seit Jahren nichts mehr geproggt haben, sollten hier ihr Kreuz setzen.

Ich hätte es wirklich gerne, wenn jeder, der auf diese Umfrage stößt, sie auch beantworten würde. Wer besonders viel Zeit hat, kann auch einen kurzen Text darunterschreiben, was er bislang genau mit ASM gemacht hat.

Besten Dank

Andreas
 
06.11.2006  
 




RGH
Hallo Andreas,

ich schwanke zischen Punkt 2 (Grundkenntnisse) und Punkt 3 (Erfahrungen). Ich will es kurz begründen:

Auf den ersten Homecomputern (1981: ZX81 / 1982: ZX-Spectrum, danach Bit90, MSX, MSX2, CP/M-Betriebssystem) habe ich relativ viel mit Assembler gemacht, wobei es oft sogar reiner Maschinencode ohne die Hilfe eines Assemblers war: Der Assemblercode wurde aufs Papier (sic!) geschrieben, dann anhand des Gedächntnisses unter Zuhilfenahme von Tabellen und Büchern (Rodnay Zack Programmierung des Z80) in direkte Codes übersetzt und schließlich in den Rechner eingetippt. (So wurde dann aus z.B. LD HL, $4000 eben 2A0040 - man erkennt am Code: Z80-Prozessor). Einige meiner Spiele für den ZX81 benutzten überwiegend derartige Assembler-Routinen und meine erste Programmiersprache (RGH Speed-Basic für den ZX-Spectrum und später auch für MSX und CP/M) war komplett in Assembler geschrieben. Hier kam allerdings ein Z80-Assembler zum Einsatz.

Auch unter DOS habe ich dann einiges in Assembler gebastelt: Routinen für schnelle Bildbearbeitung, Animationen, Soundkarten-Absteuerung durch Turbobasic, etc. Da der 8086 eine Weiterentwicklung des 8-Bit Prozessors 8080 war, der auch Vorlage für den erweiterten Z80 war, war der Umstieg nicht schwer. Da DOS letztlich eine Erweiterung des 8-Bit-Betriebssystems CP/M war, stimmten selbst die Adressen der BIOS-Routinen. Ich schrieb damals einen einfachen Assembler für DOS und ein Konvertierungsprogramm, das Assemblerroutinen von 8080-Assembler nach 8086-Assembler übersetzte.

Da aber mit Turbo-Pascal und Turbo-Basis die Hochsprachen immer mächtiger und auch schneller wurden, geriet die reine Assemblerprogrammierung immer mehr in den Hintergrund und beschränkte sich auf einige Routinen mit dem Inline-Assembler der jeweiligen Programmiersprache. Das führte dazu, dass mir die Erweiterungen, die mit dem 80286 und den folgenden Prozessoren beim Assebler für den PC hinzukamen, kaum oder gar nicht geläufig sind.

XProfan enthält nur noch einige wenige Inline-Assembler-Routinen. XProfan ist in Delphi geschrieben und gerade Borlands Compiler sind ja für einen schnellen, optimierten Code bekannt, dessen Geschwindigkeit sehr nah an Assembler liegt, so dass Inline-Assembler-Routinen oft nur wenig Tempo-Zuwachs bringen.

Andreas, was sollte ich nun Deiner Meinung nach ankreuzen?

Gruß
Roland
(mal wieder zwischen den Stühlen)
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
06.11.2006  
 




Jörg
Sellmeyer
Ich habe tatsächlich keinen blassen Schimmer, obwohl ich zumindest mal das eine oder andere Buch dazu gelesen habe. Allerdings finde ich diese ganzen Kürzel total abstrakt und das mit den Registern will auch irgendwie nicht in meinen Schädel. Wahrscheinlich muß man nur einfach mal anfangen aber dazu fehlt mir i.M. die Ruhe.

Interessant finde ich in diesem Zusammenhang, daß Du Frank hier als Assemblerprofi bezeichnest, obwohl ich mir sicher bin, daß er weder Informatik studiert hat, noch auch nur irgendeinen Schein in Assemblerprogrammierung vorweisen kann.
Ich glaube Du mußt Deine eigene Definition von Profi/Experte doch nochmal überdenken

Gruß
Jörg
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
06.11.2006  
 



Hallo Jörg...

Genauso gings mir auch - da ist wirlich nur das Anfangen das Problem.

@Roland: Das würde ich eigentlich schon Erfahrung nennen.
 
06.11.2006  
 




Frank
Abbing
[quote:39dd4449cf]Interessant finde ich in diesem Zusammenhang, daß Du Frank hier als Assemblerprofi bezeichnest, obwohl ich mir sicher bin, daß er weder Informatik studiert hat, noch auch nur irgendeinen Schein in Assemblerprogrammierung vorweisen kann.[/quote:39dd4449cf]

Das ist richtig.
Ich sehe mich selber auch nicht als Profi, weil es noch genügend Dinge gibt, die ich gar nicht oder nur unzureichend beherrsche, z.B. Die Makro-Programmierung. Fortgeschrittener - ja. Profi - nein.
Als Fortgeschrittenen betrachte ich hierbei jemanden, der öfter gefragt wird, als das er selber jemanden fragen müsste.
 
06.11.2006  
 



[quote:091d15b84d=Jörg Sellmeyer]
Interessant finde ich in diesem Zusammenhang, daß Du Frank hier als Assemblerprofi bezeichnest, obwohl ich mir sicher bin, daß er weder Informatik studiert hat, noch auch nur irgendeinen Schein in Assemblerprogrammierung vorweisen kann.
Ich glaube Du mußt Deine eigene Definition von Profi/Experte doch nochmal überdenken

Gruß
Jörg[/quote:091d15b84d]
Kein Profi, sondern jemand mit Erfahrung. Diese Formulierung habe ich absichtlich gewählt. Ich habe mir einige Artikel von Leuten durchgelesen, die ich als Experten bezeichnen würde (u.a. von Professoren und Doktoren) um hinter manche Spezialitäten der Programmierung zu blicken. Ich bin in der Regel froh wenn ich etwa ein viertel von einem dieser Artikel überhaupt verstehe - nicht weil sich schlecht geschrieben sind, sondern weil mir einfach eine Masse an Wissen fehlt, die dort einfach als das muß schon mal grundsätzlich vorhanden sein vorausgesetzt wird. Was macht mich, Frank oder irgendjemand anderen hier für dich genau zu einem Experten?

Ich habe im letzten Jahr mal die Shatter Attack etwas genauer unter die Lupe genommen. Allein um diese paar Zeilen Quelltext zu programmieren, ist ein Umfang an Wissen und ein Verständnis von Windows nötig, was hier bislang noch keiner gezeigt hat - und auch da gab es damals in der Öffentlichkeit Diskussionen, ob es sich bei diesem Programmierer wirklich um einen Experten handelt. ;D

Ich persönlich finde es ziemlich arrogant in einer Liga spielen zu wollen, in die man einfach nicht hineingehört. Vor talentierten Laien habe ich wesentlich mehr Respekt, als vor selbsternannten Experten. Wer sich hier selbst in die Liga der Experten katapultiert, ohne dies nachweislich zu sein, zeigt damit nicht nur, daß er von großen Bereichen der Windowsprogrammierung gar keine Ahnung hat,, sondern auch, daß sein Horizont so beschränkt ist, daß er
in keiner Weise wahrnimmt, daß diese Bereiche überhaupt existieren.

Vor jemandem, der in der Liga der Experten mitspielen kann oder könnte habe ich ebenfalls großen Respekt - ich persönlich kann das nicht, denn mir fehlt jegliches Grundwissen dazu - nämlich das eines Studiums oder einer fundierten Ausbildung im Bereich Informatik. Da mir dieses Grundwissen komplett fehlt, kann mein Wissen nur Laienwissen sein, da ich, wie gesagt, immer nur ein viertel der Artikel wirklich verstehe, die ich mir da durchlese.
Aus dem gleichen Grund kann ich von dem Rest nur denken, das ich den verstanden habe, denn mein Wissen wurde niemals auf seine Richtigkeit hin überprüft.

PS: Frank Abbing wollte ich hier nicht als Experten bezeichnen, sondern nur darstellen, wo er und die Profis in ASM Programmierung sich einordnen sollen. Ob Frank ein Profi ist, kann ich beim besten Willen nicht beurteilen - ich kann aber sehr genau sagen, wo ich ihn in meiner Umfrage gerne sehen würde.
 
07.11.2006  
 



Das sieht ja ziemlich gut aus ...

Grund meiner Umfrage: Ich habe vor, demnächst hier noch einiges über Treiberprogrammierung in ASM fallen zu lassen (falls das auf fruchbaren Boden trifft). Nachsehen sollte man da öfters mal unter den Umfragen zur Treiberprogrammierung und den Native-APIs.
Mit diesen gesammelten Infos sollte es dann selbst für einen Einsteiger in ASM kein Problem sein, eigene Treiber in ASM zu entwickeln, um die Funktionalität seiner Profanprogramme zu erweitern.

Voraussetungen sind grobe Grundkenntnisse (Habe Grundkenntnisse) in ASM - wer sich hier unter Erfahrungen verewigt hat, wird gar keine Probleme haben das umzusetzen.
Die Leute, die hier keinen blassen Schimmer angekreuzt haben, sollten sich vorerst mal einige Tage lang in ASM einarbeiten und gute Kenntnisse in API-Programmierung mitbringen.

Besteht Interesse an solchen Infos?
 
07.11.2006  
 




Frank
Abbing
[quote:465e0bc041]Besteht Interesse an solchen Infos?[/quote:465e0bc041]
Bevor du das fragst, solltest du zunächst mal erklären, was mit einem Treiber möglich ist, dass ein normales Programm nicht kann. Ich denke, das scheinbare Desinteresse im Zusammenhang mit deinem Vorhaben liegt auch darin begründet, dass viele einfach nicht wissen, was mal damit überhaupt anfangen kann...
 
07.11.2006  
 



[quote:0ad6364bce=Frank Abbing][quote:0ad6364bce]Besteht Interesse an solchen Infos?[/quote:0ad6364bce]
Bevor du das fragst, solltest du zunächst mal erklären, was mit einem Treiber möglich ist, dass ein normales Programm nicht kann. Ich denke, das scheinbare Desinteresse im Zusammenhang mit deinem Vorhaben liegt auch darin begründet, dass viele einfach nicht wissen, was mal damit überhaupt anfangen kann...[/quote:0ad6364bce]
OK, ich versuchs mal zu erklären. Zunächst mal etwas, was gar nichts mit Treiberprogrammierung zu tun hat:

Mit der Anwendung [...]  kann man unter anderem durch Ändern der Zugriffsrechte des Policy- und Account-Objektes unter Windows2000 die Zugriffsrechte dieser Objekte so setzen, das ein anderer Admin meinem Account zwar Privilegien hinzufügen, dies aber nie wieder löschen kann. Zur Zeit ist mir keine Möglichkeit bekannt, den Security Descriptor dieser Objekte über die API zu öffnen - wie mache ich das aber dann? Ich greife direkt auf den Security Descriptor dieser Objekte in der Registry zu und ändere ihn dort! Ich mache also mit direktem Zugriff etwas, was eigentlich gar nicht möglich ist.

Mit TNT kann ich im Userbereich, d.h. in virtuellen
Speicherbereichen bis 2GB fremder Prozesse, nach Objekten im Speicher suchen, diese auslesen und direkt ändern. Ein Beispiel für direktes Auslesen einer solchen Struktur ist die kleine Spielerei in [...] , bei der ich Fehlercodes anderer Prozesse auslese.
Wo dieser Fehlercode genau steht, habe ich mir mit TNT herausgesucht - nirgendwo nachgelesen oder abgeschrieben. Ich bin also durch direkten Zugriff auf Speicherbereiche dazu in der Lage, mich von dem komplett zu lösen, was irgendwo erklärt oder beschrieben ist und vielleicht ganz neue Sachen zu entwickeln - nicht nur Sachen in schlechterer Form nachzuproggen.

Eine Sache, die im Augenblick beim Treiberschreiben im Vordergrund für mich steht, ist direkter Lese- und Schreibzugriff auf Speicherbereiche oberhalb von 2GB.
Was das heißt ist wohl jetzt klar: Komplettes Lösen von dem was irgenwo beschrieben oder erklärt ist, selbst nachsehen und direkt ändern um damit Sachen zu machen, die anders nicht gehen - und zwar bezogen auf den gesammten virtuellen Speicher jedes laufenden Prozesses!

Beispiel: Strukturen, die ich dort vermute, sind u.a. der Access-Token und bestimmte Sicherheitsbeschreibungen. Für einen Admin ist es kein Problem, die Sicherheitsbeschreibungen auf einem Rechner so zu setzen, das er alles lesen, löschen und ändern kann. Wenn zwei Admins an einem Rechner arbeiten, will der eine aber vielleicht nicht, das der andere alles lesen oder löschen kann...

Wie gesagt: was ein Treiber unter anderem kann, ist mir die Möglichkeit geben selbst in alle Bereiche des virtuellen Prozeßspeichers aller Prozesse zu blicken und diese nach belieben zu ändern.
 
07.11.2006  
 




Frank
Abbing
Speicherschnüffler...
 
07.11.2006  
 



Jau, Speicherschnüffeln, wie in AntiVir, der zur Zeit auf deinem Rechner läuft, zum Beispiel . AntiVir startet ebenfalls einen Treiber, den du weder sehen noch beenden kannst und der im Kernel nach Viren sucht.
.
Mir geht es dabei um das Speicherschnüffeln im eigenen Rechner, um durch direkte Zugriffe und direktes Auslesen und Nachsehen von Sachverhalten die Grenzen von API-Programmierung abschütteln zu können und im Endeffekt nicht mehr auf das angewiesen zu sein, was mir Microsoft in seinen Dokumentationen über sein Betriebsystem verraten will. Es geht darum Sachen zu tun, die normalerweise nur wirkliche Experten tun. Es geht darum, direkt hinter die Sachen zu blicken, von denen die Artikel handeln, die ich mir in meiner Freizeit durchlese und die von den Leuten geschrieben wurden, die ich Experten nennen würde....
 
07.11.2006  
 




Frank
Abbing
Also ich habe Interesse an den Infos. Bin aber zur Zeit sehr eingespannt.

[quote:9c7a872a1f]Jau, Speicherschnüffeln, wie in AntiVir, der zur Zeit auf deinem Rechner läuft, zum Beispiel .[/quote:9c7a872a1f]
Nene, bei mir läuft der nicht (mehr). Bei mir passt seit einiger Zeit Avast! auf...
 
07.11.2006  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

10.043 Betrachtungen

Unbenanntvor 0 min.

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie