Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

NASM-kompatibel und 64 Bit?

3 views
Skip to first unread message

shylock

unread,
Feb 19, 2006, 10:43:08 AM2/19/06
to
Hi,

ich habe folgendes Problem: Ich muss in einem Assembler-Kurs den Bogen
von DOS über Windows bis zu Linux spannen. Dabei will ich nach
Möglichkeit nur einen Assembler oder zumindest zu einander kompatible
Assembler verwenden, um bei den Grundlagen einen roten Faden aufbauen
zu können.

Wichtiges Thema ist natürlich auch 64-Bit-Programmierung unter Windows
und Linux.

Ich bin ziemlich MASM/TASM- und AT&T-lastig. NASM hat mir gute Dienste
im 32-Bit-Umfeld beim Ausarbeiten von Exploits geleistet. Im
64-Bit-Umfeld habe ich bislang nur "Spezialanfertigungen" von
Prozessorherstellern oder andere Exoten verwendet.

Da ich einen ziemlichen Bogen spannen muss, wäre NASM mit seiner
Plattformvielfalt natürlich genial.

Aber, um endlich auf den Punkt zu kommen... ;-)

Es wird viel über 64 Bit und NASM im Internet gesprochen: Mal kann er
es, mal kann er es nicht. Jetzt meine Frage: Ist NASM 64-Bit-fähig
oder nicht? (Die Doku sagt ja nichts zu... heißt ja aber bekanntlich
nicht immer etwas. Papier - auch wenn's elektronisch ist - ist ja
bekanntlich geduldig.)

Eine Alternative wäre YASM. Er unterstützt AMD64. Doch wie sieht es
hier in Richtung Intels IA64 aus? Kann er damit auch umgehen? Hat hier
jemand Erfahrung?

Kurz gesagt: Ich bräuchte eine Empfehlung. :-) Hat jemand in diesem
Punkt Erfahrung? Kann mir jemand einen Rat geben?

Vielen Dank im Voraus.

cu,
shylock

Sebastian Biallas

unread,
Feb 19, 2006, 11:25:02 AM2/19/06
to
shylock wrote:
> Es wird viel über 64 Bit und NASM im Internet gesprochen: Mal kann er
> es, mal kann er es nicht.

nasm wird nicht mehr gepflegt und hat unter Windows komische Bugs. yasm
ist der Nachfolger.

> Jetzt meine Frage: Ist NASM 64-Bit-fähig
> oder nicht?

Nein.

>
> Eine Alternative wäre YASM. Er unterstützt AMD64.

Ja, allerdings kannst Du die gnu-Toolchain unter 64 bit Windows nicht
benutzen, brauchst also sowieso irgendso ein Visual-Dingsbums.

> Doch wie sieht es
> hier in Richtung Intels IA64 aus? Kann er damit auch umgehen?

Nein.

> Hat hier
> jemand Erfahrung?
>
> Kurz gesagt: Ich bräuchte eine Empfehlung. :-) Hat jemand in diesem
> Punkt Erfahrung? Kann mir jemand einen Rat geben?

Kommt drauf an, was Du genau machen willst.

>
> Vielen Dank im Voraus.
>
> cu,
> shylock
>


--
Gruß,
Sebastian

shylock

unread,
Feb 20, 2006, 3:41:00 PM2/20/06
to
Sebastian Biallas wrote:
> shylock wrote:
> > Es wird viel über 64 Bit und NASM im Internet gesprochen: Mal kann er
> > es, mal kann er es nicht.
>
> nasm wird nicht mehr gepflegt und hat unter Windows komische Bugs. yasm
> ist der Nachfolger.

Hat YASM unter Windows immer noch seltsame Bugs?
Hast Du bereits mit YASM unter Windows Erfahrungen?

> > Eine Alternative wäre YASM. Er unterstützt AMD64.
>
> Ja, allerdings kannst Du die gnu-Toolchain unter 64 bit Windows nicht
> benutzen, brauchst also sowieso irgendso ein Visual-Dingsbums.

Genau das will ich vermeiden. :-)

> > Hat hier
> > jemand Erfahrung?
>
> > Kurz gesagt: Ich bräuchte eine Empfehlung. :-) Hat jemand in diesem
> > Punkt Erfahrung? Kann mir jemand einen Rat geben?
>
> Kommt drauf an, was Du genau machen willst.

Es geht darum, Leuten Assembler-Programmierung zu vermitteln.
Der Kurs splittet sich auf meinere Plattformen (DOS, Windows, Linux)
auf.
Bei Windows und Linux je 32 und 64 Bit.

Nach Möglichkeit soll der gleiche Assembler oder zumindest kompatible
Assembler für alle Plattformen verwendet werden.

Zum Glück scheint jetzt DOS rauszufallen. :-) DOS fand ich bei dem
Kurs
etwas daneben:

Es ist ein mehrstufiger Kurs. Themenspektrum: Einführung in die
Assembler-Programmierung. Danach darauf aufbauen Assembler unter Linux
und Windows. Wenn die Grundlagen stehen, geht es in Richtung Security,
also Ausarbeiten von Exploits (Overflows, Shellcode etc.).

Es geht um die Ausbildung von Security-Fachleuten.

Um möglichst in den auf einander aufbauenden Einzelkursen einen
roten Faden hin zu bekommen, habe ich jetzt folgende Anforderungen
an den Assembler:

- Er muss 32 und 64 Bit (AMD64 und EM64T) unterstützen.
- Er muss auf Windows und Linux laufen und dort brauchbaren
Object-Code produzieren.
- Er muss frei sein.

Sollte DOS doch noch gewünscht sein, sollte der Assembler auch
16-Bit-Code
produzieren können und unter DOS laufen... %)

Hast Du eine Empfehlung?

Ich spiele derzeit mit dem Gedanken flat assembler zu verwenden.
Bin da allerdings noch skeptisch. Hast Du mit dem schon mal gearbeitet?

cu,
shylock

chaoscode

unread,
May 18, 2006, 10:54:47 AM5/18/06
to
ich nehme den fasm schon seit langer zeit.
der läuft unter windows,linux und dos und compiliert auch für die.
der kann
-16 bit code
-32 bit code
-64 bit code(amd + intel +sse (1-3))
-coff dateien rausgeben
-.exe
-.obj
-das linux elf format..
-auch binäre dataeine rausgeben. (ohne header von windows oder linux.)
-ist immer noch in entwicklung.

shylock schrieb:

0 new messages