Hallo Leute,
also zunächst mal möchte ich sagen, dass ich nicht wirklich ein Experte bin, was C und shellcode angeht. (Also kann es durchaus sein, dass hier ein dummer Fehler liegt)
Ich arbeite auf Gentoolinux über eine SSH-Shell und verwende den gcc compiler.
Ich habe mir einen Assemblercode geschrieben:
Diesen habe ich dann mit nasm kompiliert und mit hexdump -C gehexdumpt ^^.
Dann konnte ich mir daraus diesen Shellcode basteln:
Soweit so gut, das sollte bis hier auch alles richtig sein.
So, dieses charset möchte ich jetzt gerne in meiner klasse main verwenden, um eine neue shell zu öffnen, also hab ich ein:
So ich will das ganze jetzt ausführen, aber:
Ich habe mal gehört, das dieser L-Wertfehler irgendwas mit der gcc version zu tun hat, habe aber eigentlich keine Ahnung wie ich damit verfahren soll.
Ich hab den Code dann jemandem geschickt zum ausprobieren. Der meinte dieser Code würde bei ihm einwandfrei laufen.
Ich hab das ganze dann auf Anraten nochmal so probiert:
Alles anzeigen
Allerdings macht es das noch schlimmer...
Und hier seit Ihr, die weisen Meister der C Programmierung gefragt ;).
Lg Max
P.S.: Ja ich bin mir durchaus bewusst, das man mit diesen Shellcodes unanständige Sachen anstellen kann....und genau das habe ich eigentlich vor ... allerdings durch eine ausdrückliche Bitte und auf meinem eigenen Laptop...
Ich weiß klingt in diesem Zusammenhang wahrscheinlich etwas albern, aber es ist so.
also zunächst mal möchte ich sagen, dass ich nicht wirklich ein Experte bin, was C und shellcode angeht. (Also kann es durchaus sein, dass hier ein dummer Fehler liegt)
Ich arbeite auf Gentoolinux über eine SSH-Shell und verwende den gcc compiler.
Ich habe mir einen Assemblercode geschrieben:
Diesen habe ich dann mit nasm kompiliert und mit hexdump -C gehexdumpt ^^.
Dann konnte ich mir daraus diesen Shellcode basteln:
Soweit so gut, das sollte bis hier auch alles richtig sein.
So, dieses charset möchte ich jetzt gerne in meiner klasse main verwenden, um eine neue shell zu öffnen, also hab ich ein:
So ich will das ganze jetzt ausführen, aber:
Ich habe mal gehört, das dieser L-Wertfehler irgendwas mit der gcc version zu tun hat, habe aber eigentlich keine Ahnung wie ich damit verfahren soll.
Ich hab den Code dann jemandem geschickt zum ausprobieren. Der meinte dieser Code würde bei ihm einwandfrei laufen.
Ich hab das ganze dann auf Anraten nochmal so probiert:
Quellcode
Allerdings macht es das noch schlimmer...
Quellcode
- m_giesel@alexandria ~/xpl1 $ gcc -o shell shell.c
- shell.c:9: Fehler: expected »)« before »*« token
- shell.c: In Funktion »main«:
- shell.c:12: Fehler: »sub_cdecl« nicht deklariert (erste Benutzung in dieser Funktion)
- shell.c:12: Fehler: (Jeder nicht deklarierte Bezeichner wird nur einmal aufgeführt
- shell.c:12: Fehler: für jede Funktion in der er auftritt.)
- shell.c:12: Fehler: expected »)« before »code«
- m_giesel@alexandria ~/xpl1 $
Und hier seit Ihr, die weisen Meister der C Programmierung gefragt ;).
Lg Max
P.S.: Ja ich bin mir durchaus bewusst, das man mit diesen Shellcodes unanständige Sachen anstellen kann....und genau das habe ich eigentlich vor ... allerdings durch eine ausdrückliche Bitte und auf meinem eigenen Laptop...
Ich weiß klingt in diesem Zusammenhang wahrscheinlich etwas albern, aber es ist so.
Mit Logik kommt man nicht weit, irgendwann muss man aussteigen und zu Fuß weitergehen.