Hallo!
Ich möchte gerne ein Batchfile kompilieren.
Im Batch werden die Netzwerklaufwerke zum Samba-Server mittels net
use-Befehlen verbunden und das Passwort steht halt auch dabei.
Jetzt gibt es im www etliche batch - compiler.
Könnt Ihr einen seriösen empfehlen?
Danke und schöne Ostern!
Stefan
Batchfile kompilieren? Häh?
OK, du meinst wohl irgendwelche Programme die aus dem Batchfile ne
ausführbare Datei erzeugen. Egal welches du nimmst, das Passwort bekommt
man trotzdem raus wenn man es drauf anlegt. U.U. reicht da schon ein
Blick mit dem Hexeditor.
Uhu Uhuhu schrieb:> Das macht die Shell, bevor sie das Ding ausführt, da mußt du dich nicht> darum kümmern.
da wird nix compiliert.
Das ist ein Interpreter
Vlad Tepesch schrieb:> da wird nix compiliert.> Das ist ein Interpreter
Und was ist der Unterschied zwischen einem Compiler und einem
Interpreter?
Der Interpreter compiliert - wie auch immer - den Code, d.h. ersetzt ihn
in ausführbare Strukturen um und führt die direkt aus.
Der Compiler führt sie nicht aus, sondern speichert sie für spätere
Ausführung ab.
Der Interpreter ist also eine Zusammenfassung aus Compiler und
ausführender Maschine.
Eingabe ist bei beiden z.B. Text.
dur irrst. lies nochmal nach.
Uhu Uhuhu schrieb:> Der Interpreter compiliert - wie auch immer - den Code, d.h. ersetzt ihn> in ausführbare Strukturen um und führt die direkt aus.
das ist falsch
Vlad Tepesch schrieb:> das ist falsch
Ich habe mich wirklich lange genug mit Interpretern beschäftigt. Ein
Interpreter, der Text interpretiert, setzt den in einen Strom von
Funktionsaufrufen um. Ob diese Funktionsaufrufe direkt ausgeführt
werden, oder in Form eines Stroms von Pseudo- oder nativem Maschinencode
in einem Puffer geschrieben und dann ausgeführt werden, ist nur ein
gradueller Unterschied, vergleichbar etwa mit dem Unterschied zwischen
Ein- und Zweipaß-Compiler.
Klar ist jedoch, daß Quelltext nicht ohne Compilationsschritt ausgeführt
wird. Die Frage ist nur, ob das in einem, oder mehreren Pässen passiert.
Interpreter, die auf Effizienz ausgelegt sind, compilieren praktisch
immer - entweder in einem der Ausführung vorgelagerten Compilationslauf,
oder just-in-time, wie z.B. Java und heben das Compilat für weitere
Benutzung mindestens bis zum Programmende auf.
Hallo,
ich vermute, dass Stefan durchaus bewusst ist, dass
Stapelverarbeitungsdateien normalerweise nicht kompiliert werden,
sondern über den Interpreter des jeweiligen Betriebssystems ausgeführt
werden.
Stefan sucht wohl ein *.bat to *.exe Konverter. Insbesondere "sucht" er
Eure Erfahrungen zu einem dieser Konverter.
Mit freundlichen Grüßen
Guido
Uhu Uhuhu schrieb:> Klar ist jedoch, daß Quelltext nicht ohne Compilationsschritt ausgeführt> wird.
nein ist es nicht. Ein Compilationsschritt erzeugt "neuen Code" das
passiert bei einem interpreter nicht. Er nutzt nur vorhanden code.
Peter II schrieb:> Ein Compilationsschritt erzeugt "neuen Code" das passiert bei einem> interpreter nicht.
"Neuer Code" ist nichts anderes, als eine Aneinanderreihung von
Referenzen auf bereits existierenden Code - egal, ob der von einer in
Software, oder in Silizium realisierten Maschine interpretiert wird. Wie
der Interperter diesen "neuen Code" aufbauen soll, steht im Eingabetext.
Wäre es kein "neuer Code", was der Interpreter intern produziert, dann
würde er stupide immer nur dasselbe machen.
Guido C. schrieb:> Stefan sucht wohl ein *.bat to *.exe Konverter.
Diese Dinger verschleiern bestenfalls den .bat-Text - letztlich
ausführen wird das dann command.com oder einer seiner Nachfolger. Ein
guter Paßwortschutz ist das nicht - man muß dem Teil nur einen gefakten
Kommandointerpreter unterschieben und schon hat man den .bat-Text.
Hallo,
Uhu Uhuhu schrieb:> Diese Dinger verschleiern bestenfalls den .bat-Text - letztlich> ausführen wird das dann command.com oder einer seiner Nachfolger.
Diese Vermutung hatte ich auch. Da ich "Diese Dinger" jedoch nur vom
Hörensagen kenne habe ich mich mit dieser Vermutung zurückgehalten.
Uhu Uhuhu schrieb:> Ein> guter Paßwortschutz ist das nicht - man muß dem Teil nur einen gefakten> Kommandointerpreter unterschieben und schon hat man den .bat-Text.
Ich denke das ist eine Aussage, mit der Stefan schon eher geholfen ist.
Mit freundlichen Grüßen
Guido
Uhu Uhuhu schrieb:> "Neuer Code" ist nichts anderes, als eine Aneinanderreihung von> Referenzen auf bereits existierenden Code - egal, ob der von einer in> Software, oder in Silizium realisierten Maschine interpretiert wird. Wie> der Interperter diesen "neuen Code" aufbauen soll, steht im Eingabetext.
nein, ein interpreter interpretiert den Code Befehl für Befehl.
Er ist im einfachsten Fall nicht mehr als eine verschachtelte Switch
Case Anweiseung.
Ein Compiler wandelt eine Eingabesprache in eine Ausgabesprache um.
Bei Modernen Scriptsprachen verschwimmen die Unterschiede, da sie über
einen JIT Compiler verfügen, der atsächlich das Programm zuerst in
nativen Code umwandelt und diesen dann ausführt.
So das wars von mir. Das ganze ist Informatik-Basiswissen. Ich hab keine
Lust länger Trolle zu füttern.
Vlad Tepesch schrieb:> nein, ein interpreter interpretiert den Code Befehl für Befehl.
Au weia, das scheint ja furchtbar schwierig zu sein:
> Er ist im einfachsten Fall nicht mehr als eine verschachtelte Switch> Case Anweiseung.
Und was macht eine case-Anweisung? Sie ordnet einer Bedingung ein Stück
Code zu - m.a.W.: sie setzt den Quellcode in ein Stück ausführbaren Code
um, der direkt ausgeführt wird, also eine Übersetzung, gefolgt von
Ausführung - der Compilationspaß und die Interpretation laufen in einem
Paß.
> Ein Compiler wandelt eine Eingabesprache in eine Ausgabesprache um.
Die Eingabesprache ist der .bat-Text, die Ausgabesprache des
Compilationpasses das Codeschnipsel, das anschließend ausgeführt wird.
Der Befehlsdecoder in einem Prozessor ist auch eine Art Compiler, der
die sehr einfach strukturierte Eingabesprache "Maschinencode" in
Aktionen im Silizum umsetzt.
Sogar in jeder Körperzelle spielt sich dieses Muster ständig bei der
Genexpression ab: Die DNA wird abgelesen - sogar über die
Zwischensprache RNA, also mit einem "Zweipaß-Compiler" - und danach
werden Proteine produziert, die die ausführende Maschne bilden.
Die Frage ist immer nur, wann das Compilat erzeugt wird und wie lange es
vorgehalten wird.
> Bei Modernen Scriptsprachen verschwimmen die Unterschiede, da sie über> einen JIT Compiler verfügen, der atsächlich das Programm zuerst in> nativen Code umwandelt und diesen dann ausführt.
Aha, sag ich doch die ganze Zeit.
Mensch Vlad, du solltest es doch eigentlich besser wissen!!!
Jedes Kind weiß doch, dass Uhu per Definition immer Recht hat, und alles
weiß! Egal, was fürn schmarrn er Erzählt!
Uhu hat halt den Blick fürs große Ganze. Ungeachtet allgemein
akzeptierter Konventionen und Festlegungen ist doch eigentlich alles nur
zunehmende Entropie.
Heiliger Strohsack!
Schon merkwürdig wenn eine einfache Frage, die vielleicht nicht ganz
präzise formuliert war, sofort auf den ganz Informatikfachschleim
zerlegt wird.
(Obwohl jeder weiß was gemeint war)
Leute, das ist doch ein ganz alltägliches Problem welches nach einer
pragmatischen Lösung sucht.
Klar ist das was diese Batchcompiler oder bat2exe erzeugen alles wieder
angreifbar oder nicht state of the art.
Aber allemal besser als ein .bat mit Klartextpasswörtern oder?
Mir ging es rein um evtl. vorhandene Erfahrungen und auftauchende
Probleme mit dem ein oder anderen Tool.
So long
Stefan
Hi,
evt. schon mal daran gedacht den interessanten Teil des Batchfiles als
ganz normales Programm zu realisieren (via Compiler) und das dann in
deiner Batch-Datei aufzurufen? Mit den Batch-"Compilern" wird es dann
auch sicherlich irgendwie möglich sein, das Ganze zusammen zu packen.
Stefan schrieb:> Im Batch werden die Netzwerklaufwerke zum Samba-Server mittels net> use-Befehlen verbunden und das Passwort steht halt auch dabei.
Gib's zu, du wolltest den Beitrag doch rund 29 Stunden später absenden,
oder?
Mit linux wäre das nicht passiert ;)
Obwohl linux natürlich jetzt schon fast mainstream ist. Wir sollten Jörg
Wunsch befragen: "Mit OpenBSD wäre das erst recht nicht passiert" ;)
Stefan schrieb:
>>> Im Batch werden die Netzwerklaufwerke zum Samba-Server mittels net>>> use-Befehlen verbunden und das Passwort steht halt auch dabei.>> Gib's zu, du wolltest den Beitrag doch rund 29 Stunden später absenden,>> oder?> ???
Der Gedanke an Batchfiles mit Passwörtern führt uns fast automatisch an
eine Weggabelung.
Die eine Verzweigung lässt uns unmittelbar an die kalendarischen
Besonderheiten denken, die mit dem Beginn des vierten Monats
einhergehen.
Die Fachpresse bietet da einige durchaus interessante Einblicke.
Eine große Gruppe von Menschen machen diesen Tag zu etwas Besonderem,
wiewohl auch dieser Tag den Menschen große Freude bereitet.
Die andere Verzweigung gibt uns eher etwas Rätselartiges, Symbolhaftes
vor, etwas wie eine stilisierte, wehende Flagge welche in den vier
Vierteln eine Farbpalette - nicht unähnlich den vier Grundfarben Ewald
Herings - beinhaltet.
Auch hier stellt man sich auch unmittelbar eine Gruppe von Menschen vor,
...
Wir wollen aber an einem solchen Tage nicht unsere Verantwortung den
Anderen gegenüber vergessen.
Und so schließt sich der Kreis und führt uns zur Fragestellung zurück.
Wie kann ich sicherstellen, das meine Brüdern und Schwestern nicht
meiner Daten ansichtig werden?
Das können wir nur bewerkstelligen indem wir sichere
Verschlüsselungsmethoden verwenden.
Eine wunderbare und ähnlich sichere Methode wie die oben bereits
Aufgeführte, wäre zB. das double ROT13 Verfahren. Auch die 'inverted
keyboard sticker' Methode wurde in Fachkreisen schon ausführlich
kryptografisch untersucht.
Zur weiteren Vertiefung vielleicht noch:
http://phoenix.clifford.at/~ak/2rot13.pdf
Stefan schrieb:> Im Batch werden die Netzwerklaufwerke zum Samba-Server mittels net> use-Befehlen verbunden und das Passwort steht halt auch dabei.
Sinnvoll wäre es übrigens, keine Passwörter zu verwenden, sondern den
Samba-Server so zu konfigurieren, daß ihm das jeweils aktuelle
Benutzerkonto mitsamt seines aktuellen Passwortes bekannt ist.
Dann braucht man auch keine Passwörter in Batchdateien.