Shell Script als Binary erzeugen
-
- Anbieter
- Posts: 232
- Joined: 2005-07-14 14:13
Shell Script als Binary erzeugen
Hallo
vielleicht rede ich grad grossen Müll nur ist es möglich ein .sh datei irgend wie in eine Binary Datei umzuwandeln.
Was ich möchte ist das mann den quellcode der .sh datei nicht mehr sieht
oder was stehen mir da für andere möglichkeiten zur Auswahl
Vielen Dank für eure hinweise
Gruss
Brandmeir Gerhard
vielleicht rede ich grad grossen Müll nur ist es möglich ein .sh datei irgend wie in eine Binary Datei umzuwandeln.
Was ich möchte ist das mann den quellcode der .sh datei nicht mehr sieht
oder was stehen mir da für andere möglichkeiten zur Auswahl
Vielen Dank für eure hinweise
Gruss
Brandmeir Gerhard
-
- Posts: 2138
- Joined: 2002-12-15 00:10
- Location: Bergheim
Re: Shell Script als Binary erzeugen
Alles was man ausführen kann, kann man auch lesbar machen.Twisterchen wrote:Hallo
vielleicht rede ich grad grossen Müll nur ist es möglich ein .sh datei irgend wie in eine Binary Datei umzuwandeln.
Was ich möchte ist das mann den quellcode der .sh datei nicht mehr sieht
oder was stehen mir da für andere möglichkeiten zur Auswahl
Vielen Dank für eure hinweise
Gruss
Brandmeir Gerhard
-
- Anbieter
- Posts: 232
- Joined: 2005-07-14 14:13
Re: Shell Script als Binary erzeugen
Hmm versteh ich jetzt net ganz.oxygen wrote: Alles was man ausführen kann, kann man auch lesbar machen.
Ok lesen bestimmt aber doch dann nur mit lauter Hieroglyphen
Oder versteh ich da jetzt was falsch ich möchte doch nur den Quellcode unsichtbar machen.
Wenn ich doch Src Code compiliere dann ist er doch in der erstellten datei auch nicht direkt lesbar.
Bitte um weitere erklährung und Hilfe
Gruss
Brandmeir Gerhard
-
- Userprojekt
- Posts: 608
- Joined: 2005-12-16 17:57
Re: Shell Script als Binary erzeugen
Dann schreib ein kleines C-Programm und kompiliere dieses. Oder nimm Java und den GCJ...Twisterchen wrote: Wenn ich doch Src Code compiliere dann ist er doch in der erstellten datei auch nicht direkt lesbar.
-
- Posts: 9
- Joined: 2006-07-24 22:20
Re: Shell Script als Binary erzeugen
@Twisterchen
Vor genau diesem "Problem" stehe ich auch. Ein normales Bash-Skript soll nicht einsehbar sein (zwecks Code bzw. zwecks irgendwelcher Passwörter). Nur möchte ich das gesamte Shell-Script nicht nach C portieren (da ich in C relativ unerfahren bin). Oder kennt jmd vielleicht eine einfachere Lösung? Manchmal sieht man den Wald vor lauter Bäumen nicht.
MfG
Vor genau diesem "Problem" stehe ich auch. Ein normales Bash-Skript soll nicht einsehbar sein (zwecks Code bzw. zwecks irgendwelcher Passwörter). Nur möchte ich das gesamte Shell-Script nicht nach C portieren (da ich in C relativ unerfahren bin). Oder kennt jmd vielleicht eine einfachere Lösung? Manchmal sieht man den Wald vor lauter Bäumen nicht.
MfG
-
- Anbieter
- Posts: 232
- Joined: 2005-07-14 14:13
Re: Shell Script als Binary erzeugen
Hmm
also die .sh datei enthält eigentlich nur etliche if anweisungen ein par wget befehle
die if anweisungen dürften doch eigentlich gleich sein wie in c oder c++
Ich habe mal die .sh datei mit dem gcc laufen lasen und bekamm wie erwartet fehler
ok hier hab ich kein plan was ich mit der Fehlermeldung anfangen soll
und hier naja es gibt keine newline
das mir irgendwelche header dateien fehlen ok vielleicht habt ihr mir ja ne Anleitung wie ich eine .c datei aufbauen muss und beenden muss
Gruss
Brandmeir Gerhard
also die .sh datei enthält eigentlich nur etliche if anweisungen ein par wget befehle
die if anweisungen dürften doch eigentlich gleich sein wie in c oder c++
Ich habe mal die .sh datei mit dem gcc laufen lasen und bekamm wie erwartet fehler
Code: Select all
twister:/test # gcc install.c
Code: Select all
install.c:3: error: syntax error before string constant
Code: Select all
install.c:96:2: warning: no newline at end of file
das mir irgendwelche header dateien fehlen ok vielleicht habt ihr mir ja ne Anleitung wie ich eine .c datei aufbauen muss und beenden muss
Gruss
Brandmeir Gerhard
-
- Userprojekt
- Posts: 608
- Joined: 2005-12-16 17:57
Re: Shell Script als Binary erzeugen
Nein. Die Shell, vor allem die Bash arbeitet ganz anders!Twisterchen wrote: also die .sh datei enthält eigentlich nur etliche if anweisungen ein par wget befehle
die if anweisungen dürften doch eigentlich gleich sein wie in c oder c++
-
- Posts: 471
- Joined: 2005-09-10 17:52
- Location: Frankfurt am Main
Re: Shell Script als Binary erzeugen
Debcha wrote:@Twisterchen
Vor genau diesem "Problem" stehe ich auch. Ein normales Bash-Skript soll nicht einsehbar sein (zwecks Code bzw. zwecks irgendwelcher Passwörter). Nur möchte ich das gesamte Shell-Script nicht nach C portieren (da ich in C relativ unerfahren bin). Oder kennt jmd vielleicht eine einfachere Lösung? Manchmal sieht man den Wald vor lauter Bäumen nicht.
MfG
Ja z.B. mit Unix File Rechten arbeiten alla chmod 700
-
- Posts: 9
- Joined: 2006-07-24 22:20
Re: Shell Script als Binary erzeugen
@aubergine
Fällt leider aus wenn jenes Skript auf nem fremden System eingesetzt werden soll.
Fällt leider aus wenn jenes Skript auf nem fremden System eingesetzt werden soll.
-
- Posts: 471
- Joined: 2005-09-10 17:52
- Location: Frankfurt am Main
Re: Shell Script als Binary erzeugen
Selbst wenn du die Befehle des Scripts nach C portieren kannst und dieses dann compilierst, hast du auch C das Passwort im Quelltext übergeben und es ist auch nach dem Compilieren lesbar.
-
- Userprojekt
- Posts: 608
- Joined: 2005-12-16 17:57
Re: Shell Script als Binary erzeugen
Wir sollten das Problem an der Wurzel packen und fragen, was das Script macht. Wenn Passwörter drinstehen, dann lässt sich möglicherweise eine PublicKey-Auth verwenden?aubergine wrote:Selbst wenn du die Befehle des Scripts nach C portieren kannst und dieses dann compilierst, hast du auch C das Passwort im Quelltext übergeben und es ist auch nach dem Compilieren lesbar.
-
- Posts: 17
- Joined: 2006-08-30 17:32
Re: Shell Script als Binary erzeugen
Hi,
wie lang ist denn dein Shellskript? Poste es doch mal (mit veränderten Passwörtern), dann kann man eher sagen, ob und wie es Sinn macht.
Gruß
TK
wie lang ist denn dein Shellskript? Poste es doch mal (mit veränderten Passwörtern), dann kann man eher sagen, ob und wie es Sinn macht.
Gruß
TK
-
- Posts: 9
- Joined: 2006-07-24 22:20
Re: Shell Script als Binary erzeugen
@tk
Lässt sich leider nicht posten, firmenspezifisch. Lässt sich darüber vielleicht eine theoretische Aussage machen?
@aubergine
Ein C-binary kannst du ja nicht einfach mit nem Editor anschauen. Disassemblen/o.ä. mal ausgeschlossen ist es danach meines Wissens nicht mehr einsehbar.
Danke für eure Antworten
MfG
Lässt sich leider nicht posten, firmenspezifisch. Lässt sich darüber vielleicht eine theoretische Aussage machen?
@aubergine
Ein C-binary kannst du ja nicht einfach mit nem Editor anschauen. Disassemblen/o.ä. mal ausgeschlossen ist es danach meines Wissens nicht mehr einsehbar.
Danke für eure Antworten
MfG
-
- Userprojekt
- Posts: 608
- Joined: 2005-12-16 17:57
Re: Shell Script als Binary erzeugen
Lass mal über ein beliebiges Binary "strings" drüberlaufen...Debcha wrote:
@aubergine
Ein C-binary kannst du ja nicht einfach mit nem Editor anschauen. Disassemblen/o.ä. mal ausgeschlossen ist es danach meines Wissens nicht mehr einsehbar.
-
- Posts: 2138
- Joined: 2002-12-15 00:10
- Location: Bergheim
Re: Shell Script als Binary erzeugen
strings programname und schon hätte man das Passwort.Debcha wrote:@aubergine
Ein C-binary kannst du ja nicht einfach mit nem Editor anschauen. Disassemblen/o.ä. mal ausgeschlossen ist es danach meines Wissens nicht mehr einsehbar.
EDIT: pfff, da war doch glatt einer schneller
-
- Posts: 9
- Joined: 2006-07-24 22:20
Re: Shell Script als Binary erzeugen
Ok überzeugt *g
Man lernt nie aus. Danke für den Hinweis !
Man lernt nie aus. Danke für den Hinweis !
-
- Posts: 4
- Joined: 2006-10-11 09:54
Re: Shell Script als Binary erzeugen
Hallo
Das Problem:
Ich habe ein Schell script, indem rsync aufgerufen wird. Das geht alles hervorragend. Nur sobald man das ganze als cron-job anlegt geht es nicht mehr.
Zum Testen habe ich rsync mal direct in die crontab gepackt, aber auch das ging nicht.
Cron schickt ja mails an den benutzer, der etwas startet. Wenn ich rsync im script hatte, bekam ich eine eMail mit der hilfeseite von rsync und unten stand was von Syntax-fehler. Und bei rsync direkt in der crontab wurde aus <Benutzername>@<Host> <User-Home-Dir><Benutzername>@<Host> (also anstelle von rsync@192.168... stand da in der eMail das /home/rsync/rsync@192.168... nicht gefunden wurde und das kann so natürlich nicht gehen). Meine Hoffnung ist, das sowas bei einem binary nicht passiert.
Ich hab's auch schonmal anders versucht und anstelle von rsnc@... -e 'ssh -l rsync' benutzt, aber da passiert auch nichts sinnvolles.
System: SuSE 10 mit dem Kernel der ausgeliefert wurde, aber sonst ist alles aktuell. Es gibt da noch das Problem, das SuSE den Raid-Controller nach einem Kernel Update nicht erkennt, da der Treiber nach einem update nicht mehr geladen wird. Muss man sich mal mit befassen, aber später.
Auch ich bin auf der Suche nach soetwas - allerdings nicht um meinen Quellcode zu schützen, sondern um etwas zu umgehen, was ich für einen bug halte. Ich weiß, das es für DOS & Wwindows bat2exe gibt - sowas suche ich nun für shell-scripte.Twisterchen wrote:Hallo
vielleicht rede ich grad grossen Müll nur ist es möglich ein .sh datei irgend wie in eine Binary Datei umzuwandeln.
Das Problem:
Ich habe ein Schell script, indem rsync aufgerufen wird. Das geht alles hervorragend. Nur sobald man das ganze als cron-job anlegt geht es nicht mehr.
Zum Testen habe ich rsync mal direct in die crontab gepackt, aber auch das ging nicht.
Cron schickt ja mails an den benutzer, der etwas startet. Wenn ich rsync im script hatte, bekam ich eine eMail mit der hilfeseite von rsync und unten stand was von Syntax-fehler. Und bei rsync direkt in der crontab wurde aus <Benutzername>@<Host> <User-Home-Dir><Benutzername>@<Host> (also anstelle von rsync@192.168... stand da in der eMail das /home/rsync/rsync@192.168... nicht gefunden wurde und das kann so natürlich nicht gehen). Meine Hoffnung ist, das sowas bei einem binary nicht passiert.
Ich hab's auch schonmal anders versucht und anstelle von rsnc@... -e 'ssh -l rsync' benutzt, aber da passiert auch nichts sinnvolles.
System: SuSE 10 mit dem Kernel der ausgeliefert wurde, aber sonst ist alles aktuell. Es gibt da noch das Problem, das SuSE den Raid-Controller nach einem Kernel Update nicht erkennt, da der Treiber nach einem update nicht mehr geladen wird. Muss man sich mal mit befassen, aber später.
-
- Userprojekt
- Posts: 7066
- Joined: 2002-10-09 14:30
- Location: Dorsten
Re: Shell Script als Binary erzeugen
Fein! Wenns nach den Zeugen Jehovas ginge, gäb's uns alle schon längst nicht mehr. Anstatt blind solchen Theorien hinterher zu rennen, könntest du dich (z.B. per #!/bin/sh -x in der ersten zeile deines Scripts) mal mit ernsthaftem Debugging auseinandersetzen.Meine Hoffnung ist, das sowas bei einem binary nicht passiert.
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
-
- Posts: 427
- Joined: 2006-10-03 01:31
Re: Shell Script als Binary erzeugen
oder was stehen mir da für andere möglichkeiten zur Auswahl
Code: Select all
chmod 500
sonst 1. wahl:
perlcc
Aber was andere schon gesagt haben: Compilieren ist keine Methode, die irgendwie Sicherheit gegen Fremde bietet. Passwörter schützen durch Compilieren ist Sicherheitsrisiko Nr.1(neben Leuten die Server mit Spielzeug verwechseln).
Passwörter, die von einer Maschine benutzt werden, gehören in einfache Menschenlesbare Dateien an eine Stelle, an die niemand Unberechtigter hinkommt. Sonst kommt es zu den Fehler sich über Sicherheit keine gedanken zu machen. Du brauchst die nicht verschlüsseln, da ein Entschlüsselungsvberfahren in dem Falle ohnehin auf der Maschine sein muß. Im übrigen gibt es auch Leute, die sich so ein Progrämmchen nur im Hexeditor anschauen müssen um die Passworte zu finden. m.f.G.
@Hoschi Rechte überprüfen! und/oder *hihi* mal mit "bash -l" starten und wenn das hilft, diese pseudosicherheit abschalten.
-
- Posts: 4
- Joined: 2006-10-11 09:54
Re: Shell Script als Binary erzeugen
Da ändert sich nichts am Inhalt der eMail, die Cron erzeugt - es steht nach wie vor nur dies in der eMail:CaptainCrunch wrote:#!/bin/sh -x
Und mit -l passiert das genau so.Date: Thu, 12 Oct 2006 11:38:01 +0200 (CEST)
rsync version 2.6.6 protocol version 29
Copyright (C) 1996-2005 by Andrew Tridgell and others
<http://rsync.samba.org/>
Capabilities: 64-bit files, socketpairs, hard links, ACLs, symlinks, batchfiles,
inplace, IPv6, 64-bit system inums, 64-bit internal inums, SLP
rsync comes with ABSOLUTELY NO WARRANTY. This is free software, and you
are welcome to redistribute it under certain conditions. See the GNU
General Public Licence for details.
rsync is a file transfer program capable of efficient remote update
via a fast differencing algorithm.
Usage: rsync [OPTION]... SRC [SRC]... [USER@]HOST:DEST
or rsync [OPTION]... [USER@]HOST:SRC [DEST]
or rsync [OPTION]... SRC [SRC]... DEST
or rsync [OPTION]... [USER@]HOST::SRC [DEST]
or rsync [OPTION]... SRC [SRC]... [USER@]HOST::DEST
or rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]
or rsync [OPTION]... SRC [SRC]... rsync://[USER@]HOST[:PORT]/DEST
<Ich kürze das mal hier und mach dann mit dem Ende Weiter>
Use "rsync --daemon --help" to see the daemon-mode command-line options.
Please see the rsync(1) and rsyncd.conf(5) man pages for full documentation.
See http://rsync.samba.org/ for updates, bug reports, and answers
rsync error: syntax or usage error (code 1) at main.c(909)
-
- Userprojekt
- Posts: 7066
- Joined: 2002-10-09 14:30
- Location: Dorsten
Re: Shell Script als Binary erzeugen
Einfache Lösung: Script posten.
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
-
- Posts: 4
- Joined: 2006-10-11 09:54
Re: Shell Script als Binary erzeugen
Kann ich natürlich machen - aber wie gesagt: Nur als Cron-job funktioniert es nicht. Wenn man sich selbst per ssh anmeldet, kann man es so starten.
Wobei in der eMail nichts von dem steht, was vor oder nach rsync aufgerufen wird.
Ich hatte die Excludes auch mal so geschrieben: --exclude=/... und anstelle von -e 'ssh -l rsync' stand da -e ssh ... rsync@192.168....
Code: Select all
#!/bin/bash
echo "Removing old archives..."
find /home/rsync/archiv/ -mtime 7 -name "*.tar.bz2" -exec rm {} ;
echo "Done."
echo "Synchronising files..."
/usr/bin/rsync -e 'ssh -l rsync' -aRvcz --delete --exclude "/home/samba/base/austausch" --exclude "/home/samba/base/lost+found" --exclude "/home/samba/base/software" --exclude "/home/samba/base/publish" 192.168.1.195:/home/samba/base/ /home/rsync/sync
echo "Done."
echo "Creating new archive..."
DATUM=$(date "+%F_%T")
tar -cvpjf /home/rsync/archiv/backup-$DATUM.tar.bz2 /home/rsync/sync
Ich hatte die Excludes auch mal so geschrieben: --exclude=/... und anstelle von -e 'ssh -l rsync' stand da -e ssh ... rsync@192.168....
-
- Posts: 427
- Joined: 2006-10-03 01:31
Re: Shell Script als Binary erzeugen
Vielleicht habe ich heute Nacht zeit - keine ahnung, dann schaue ich nochmal.
Aber kurz: "bash -l" und nicht "ssh -l" war die Idee, ist aber fast vom Tisch.
Aber kurz: "bash -l" und nicht "ssh -l" war die Idee, ist aber fast vom Tisch.
-
- Posts: 4
- Joined: 2006-10-11 09:54
Re: Shell Script als Binary erzeugen
Inzwischen läuft das - da musste nur mal jemand rauf schauen, der sich noch keine Gedanken dazu gemacht hatte und der also nicht "voreingenommen" war.
Es war ein cron Problem, wie ich es vermutet habe, und die Tatsache, das der user den Namen eines Befehls hat sorgte für Verwirrung. Irgendwie bin ich in der falschen crontab gewesen! Es gibt ja eine globale und dann für jeden User eine. Ich dachte ich wäre in der globalen und da gibt es eine weitere Spalte für den user, der den Befehl dahinter ausführen soll. In der crontab für die User gibt es das nicht. Da es den user rsync aber auch als Befehl gibt wird "rsync /home/rsync/bin/backup.sh" gestartet und nicht "/home/rsync/bin/backup.sh" Damit sollte klar sein, wieso es da einen Syntaxfehler gab...
Ein echt dämlicher Fehler, der vermeidbar gewesen wäre. Und hätte der user nicht den Namen rsync gehabt wäre sehr schnell aufgefallen, was falsch ist. Aber den habe ich ja nicht selber angelegt und ich habe mir bei cron dann zu wenig Gedanken dazu gemacht. GAY!
Es war ein cron Problem, wie ich es vermutet habe, und die Tatsache, das der user den Namen eines Befehls hat sorgte für Verwirrung. Irgendwie bin ich in der falschen crontab gewesen! Es gibt ja eine globale und dann für jeden User eine. Ich dachte ich wäre in der globalen und da gibt es eine weitere Spalte für den user, der den Befehl dahinter ausführen soll. In der crontab für die User gibt es das nicht. Da es den user rsync aber auch als Befehl gibt wird "rsync /home/rsync/bin/backup.sh" gestartet und nicht "/home/rsync/bin/backup.sh" Damit sollte klar sein, wieso es da einen Syntaxfehler gab...
Ein echt dämlicher Fehler, der vermeidbar gewesen wäre. Und hätte der user nicht den Namen rsync gehabt wäre sehr schnell aufgefallen, was falsch ist. Aber den habe ich ja nicht selber angelegt und ich habe mir bei cron dann zu wenig Gedanken dazu gemacht. GAY!
Ist mir klar - ein kleines mißvertändnis Deinerseits: bash -l stand da mal und da es nicht funktioniert hat, habe ich es wieder raus genommen. und ssh -l ist um den user für die Remoteverbindung fest zu legen - anstelle von user@host.lucki2 wrote: Aber kurz: "bash -l" und nicht "ssh -l" war die Idee, ist aber fast vom Tisch.
-
- Posts: 427
- Joined: 2006-10-03 01:31
Re: Shell Script als Binary erzeugen
Freut mich, wenn es tut. Nur kurz, daß *hihi* war kein Rant sondern mehr: Manchmal rufen Kunden an, bei denen Cron- oder Firewallscripts nicht gehen und ich eigentlich auf Rechte tippen würde aber alles passt und irgendwann: "aaach, Scripts können nur von Loginshells gestarted werden"(bash -l). So far. Ich weiß auch, was ssh -l (im Gegensatz zu bash -l) macht, gerade deswegen der Kurzhinweis zwischen Tür und Angel - aber richtig da habe *ich* nicht richtig gelesen.