84544
Goto Top

.Bat in .exe umwandeln

Hallo Leute,

ich benutze schon etwas länger Bat2Exe 1.5

Jedoch ist mir jetzt aufgefallen, das dieses Programm einfach nur die ORIGNALE Batchdatei ins temp\ kopiert und die dann im Order wo die exe liegt ablaufen lässt!
Das ist natürlich überhaupt nicht akzeptabel wenn man den Quellcode verstecken will. Zudem schlägt jedes mal der Virenscanner an wenn was im temp\ passiert.

Die Funktionen wie ICON und Version/Firma/Beschreibung usw. finde ich zwar eigentlich super, aber wenn dafür der Quellcode sichtbar wird kann ich darauf gerne verzichten!

Deshalb wollte ich fragen ob hier jemand ein Kompilierungstool kennt, das WIRKLICH eine .exe erstellt und nicht eine .exe, die nur eine temporäre .bat einfach ausführt?

Kann von mir aus auch ohne die oben genannten Funktionen sein. Der Kompiler darf aber auf keinen Fall irgendwo einfach die Batch "offen ablegen".


Wenn ich könnte würde ich selber nach einem Programm suchen, nur leider steht überall nur "Versteckt den Inhalt Ihrer Batchdateien" und das hilft nicht gerade weiter. Bzw. will ich nicht 20 Programme testen...

Bei Bat2Exe müsste es auf jeden Fall heißen "Versteckt Ihre Batchdateien im Temp Verzeichnis"


Ich danke schonmal im Vorraus für eure Hilfe

MFG
Marci
Kommentar vom Moderator Biber am Mar 03, 2010 um 15:22:06 Uhr
Beitrag geschlossen.

Content-Key: 136669

Url: https://administrator.de/contentid/136669

Printed on: April 24, 2024 at 22:04 o'clock

Mitglied: 45877
45877 Feb 23, 2010 at 15:42:24 (UTC)
Goto Top
Hallo,

schau dir mal pcwrunas an.
Member: jhinrichs
jhinrichs Feb 23, 2010 at 15:46:21 (UTC)
Goto Top
Hallo,
Batchdateien sind Skripte in einer sehr primitiven Skriptsprache, meines Wissens gibt es dafür keinen echten Compiler, die Mühe lohnt wohl auch nicht. Eigentlich gehört auch zur Definition einer Skriptsprache, dass sie interpretiert wird, allerhöchstens so eine Art "Laufzeitkompilierung" wie bei Perl durchgeführt wird. Es bleibt wohl nur der Weg, wenn man den Inhalt verstecken will (warum eigentlich?), eine echte Compilersprache zu nehmen, ggf. kann man ja da dann die Commandline-Befehle aufrufen, aber elegant ist was anderes...

Grüße

P.S.:
im Vorraus
Mit einem "r"! Mit einem "r"! Mit einem "r"! Mit einem "r"! Mit einem "r"! Mit einem "r"! Mit einem "r"! Mit einem "r"! Mit einem "r"! Mit einem "r"! Mit einem "r"! Mit einem "r"! Mit einem "r"! Mit einem "r"! Mit einem "r"! Mit einem "r"! Mit einem "r"! Mit einem "r"!
Ich glaube, ich muss meinen Nick in "Don Quichote" ändern.... face-wink
Mitglied: 84544
84544 Feb 23, 2010 at 15:50:01 (UTC)
Goto Top
Mal ne dumme Frage... was will ich damit?
Mitglied: 84544
84544 Feb 23, 2010 at 16:01:07 (UTC)
Goto Top
Also ich glaube schon, dass das irgendwie zu lösen ist. Ansonsten frage ich mich wo der Sinn eines .exe Compilers liegt.
Mitglied: 45877
45877 Feb 23, 2010 at 16:29:07 (UTC)
Goto Top
Zitat von @84544:
Mal ne dumme Frage... was will ich damit?

warumm willst du den inhalt deiner batch verstecken, wenn es nicht um ein passwort geht?
Member: Pjordorf
Pjordorf Feb 23, 2010 at 17:00:05 (UTC)
Goto Top
Hallo,

Also ich glaube schon, dass das irgendwie zu lösen ist. Ansonsten frage ich mich wo der Sinn eines .exe Compilers liegt.
Nur das eine Batchdatei nicht für einen Compiler gedacht ist. Ein Compiler erwartet deshalb auch einen Quelltext der seiner Syntax / Format entspricht.

Peter
Mitglied: 84544
84544 Feb 23, 2010 at 17:14:46 (UTC)
Goto Top
Was ist denn mit .com dateien??? Kann man die ohne entpacken der Originalen Batch ausführen?

BTW bei dem Bat2Exe.com zeigt er mir z.B. bei

set zeit=%date:~0,2%.%date:~3,2%.%date:~8,4% %time:~0,2%:%time:~3,2%:%time:~6,2%

immer ein Error an!

http://www.computerhope.com/dutil.htm
http://www.computerhope.com/download/utility/bat2exe.com
Member: Pjordorf
Pjordorf Feb 23, 2010 at 17:47:53 (UTC)
Goto Top
Hallo,

Was ist denn mit .com dateien??? Kann man die ohne entpacken der Originalen Batch ausführen?
Nein. Es hat nichts mit .com oder .exe zu tun. Der Compiler kann einfach keine Batchdateien als Quelltext verarbeiten Der Compiler versteht nicht, was in der Batchdatei drin steht. Es hat nichts mit der ausführbaren Datei zu tun.

Du brauchst schone eine an dem Compiler angepasste Programmiersprache. Eine Lister der programmiersprachen findest du hier.

Du könntest ja mit Visiual Basic von MS anfangen.

Peter
Mitglied: 84544
84544 Feb 23, 2010 at 18:02:19 (UTC)
Goto Top
Ich habe eben gelesen, dass man die Batchbefehle einfach in C# reinschreiben kann....
Ich müsste nur noch wissen wie ich das hinbekomme irgendwie: system ("batchbefehl")
Es ist natürlich nur die Frage was dann da passiert (ich fange gerade erst mit C# an).
Sendet die kompilierte C# dann einfach die Befehle an CMD oder wie läuft das???

Auf jeden Fall scheint das der einzige (und wahrscheinlich einzige) Weg zu sein ein Batchdatei richtig zu schützen!
Selbst kostenpflichtige Programme machen so ein Versteckspiel im Tempordner....

Wenn mir einer sagen kann ob und wie das funktioniert und ob das wirklich sehr sicher ist (Reverse Engineering), dann wär das Problem gelöst und derjenige bekommt von mir ein Bussi^^
Member: Pjordorf
Pjordorf Feb 23, 2010 at 18:18:03 (UTC)
Goto Top
Hallo,

Auf jeden Fall scheint das der einzige (und wahrscheinlich einzige) Weg zu sein ein Batchdatei richtig zu schützen!
Eine Batchdatei kannst du nicht "richtig" schützen. Wenn diese abgearbeitet werden soll, dann entweder als Datei irgendwo im Dateisystem oder nur im RAM. Aber auch dort kann (und wird dann wohl auch wenn so Geheime Daten da drin stehen) gefunden und ausgelesen. Selbst wenn die schon abgearbeitet wurde, kann die noch lange im RAM stehen.

Selbst kostenpflichtige Programme machen so ein Versteckspiel im Tempordner....
Wie denn auch sonst.

Wenn mir einer sagen kann ob und wie das funktioniert und ob das wirklich sehr sicher ist (Reverse Engineering), dann wär
das Problem gelöst und derjenige bekommt von mir ein Bussi^^
Lösungswege wurden dir doch schon reichlich genannt. Programmiersprache / Compiler / Linker / Verschlüsselung der Ausführbaren Dateien usw.

Peter
Member: jhinrichs
jhinrichs Feb 24, 2010 at 11:23:41 (UTC)
Goto Top
Nochmal zu den Grundlagen:
Eine CPU "versteht" weder Batch- noch Perl- noch C- noch irgendwas Befehle, sondern nur die sogenannte "Maschinensprache", das sind zunächst einmal 8-,16-,32-,...Bit-Zahlen. Für diese Zahlen gibt es nun etwas menschenlesbarere Ausdrücke, die sogenannten Assemblerbefehle, die eine 1:1-Übersetzung dieser Maschinenbefehle in "Worte" sind. Aber auch damit ist das Programmieren schwierig. Also hat man Programmiersprechen, wozu im weitesten Sinne auch die Skriptsprachen gehören, entwickelt. Diese Befehle (Batch, Basic, Pascal, Algol,...) müssen nun, damit der Computer (die CPU) damit etwas anfangen kann, in Maschinenbefehle übersetzt werden. Das kann man entweder bei jeder Ausführung des Programmes Befehl für Befehl tun (Interpreter) oder einmal komplett (Compiler), so dass dann der Maschinencode direkt vorliegt, was natürlich in der Regel eine viel schnellere Programmausführung bedeutet. Der Sinn eines Compilers ist es also nicht, den Quelltext irgendwie zu "schützen", sondern, die Programmausführung zu beschleunigen. Da es sich bei Skriptsprachen (und insbesondere bei der "Batch"-Sprache) um Sprachen zur Automatisierung kleinerer, nicht laufzeitkritischer (ok, ok, Perl, Python & Co. entwickeln sich da gerade anders, aber sind das wirklich noch Skriptsprachen?) Aufgaben handelt, warum sollte sich da jemand die Mühe machen, einen Compiler zu entwickeln?
Abgesehen davon ist das Konzept, Quellcode zu "schützen", sowieso fragwürdig.
Member: Biber
Biber Feb 24, 2010 at 13:34:01 (UTC)
Goto Top
Moin Marci3xXx,

ich sehe wenig Chancen, dass deine eigentliche Frage, sofern sie denn aus deinem Eröffnungsbeitrag eindeutig hervorgeht, hier sinnvoll beantwortet werden kann und wird.

Wie du merkst, gibt es hier grundsätzliche Vokabel-Verständnisprobleme und ganz ganz unterschiedliche Kontextbezüge bei dir auf der einen Seite und allen anderen Kommentatoren (entsprechend auf je irgendeiner anderen Seite).

Ich versuch mal den Ball etwas flacher zu halten:
Deshalb wollte ich fragen ob hier jemand ein Kompilierungstool kennt, das WIRKLICH eine .exe erstellt und nicht eine .exe, die nur eine temporäre .bat einfach ausführt?

Nein, wird und kann keine/r kennen, weil es keins geben kann.
Eine Batch-Datei ist halt immer nur eine unformatierte Plain-Text-Datei mit Inputbefehlen für ein ablauffähiges Programm (die CMD.exe).
Diese CMD.exe MUSS selbst alle Befehle in dieser Text-Datei ausführen und dazu MÜSSEN die Befehle wiederum als klar & unverschlüsselt vorliegende lesbare UND physikalisch im Dateisystem vorhandene Datei vorliegen.

Bei "physikalisch im Dateisystem vorliegende Datei" ist dann doch wirklich egal, ob im %temp%-Verzeichnis, ob in einem dafür angelegten (versteckten) Ordner oder gleich im Papierkorb. Es liegt für jeden, der nicht genauso unbeholfen ist wie mein nichtsnutziger Schwiegerneffe Klaus-Bärbel, offen auf der Platte rum.

--> Wenn damit die eigentliche Frage abgefrühstückt ist: bitte Haken dran.

--> Wenn jemand Interesse hat an einem Thread "Sind so genannte Batch-Compiler sinnvoll oder ein Treppenwitz der IT-Geschichte?". dann macht einen neuen Beitrag auf bitte.
Gern auch im Bereich Entwicklung, denn diese Fragen nach diesen Tools kommen ja doch immer hier rein.

Grüße
Biber
Mitglied: 84544
84544 Feb 24, 2010 at 15:01:16 (UTC)
Goto Top
Also das mit dem Compiler hat sich sozusagen für mich erledigt.
Andere Programmiersprache kommt erstmal auch nicht in Frage, da ich Batch am besten kann und (leider) gerade erst mit C# anfange.

Obwohl, was ich ja weiter oben genannt habe ich mir eine Compilierung von Batchbefehlen in C# gut vorstellen.
Dabei sollte ja theoretisch keine Bat. extrahiert werden. Und somit ein einsehen erschwert werden.


Wenn keiner weis wie man so etwas umsetzen kann[, dass am besten einfach nur (wie oben geschrieben) "system (.......)" dazu muss und das bei allen verfügbaren Befehlen,]wäre das Thema wohl erstmal abgeschlossen
Member: thommy75
thommy75 Feb 24, 2010 at 21:35:00 (UTC)
Goto Top
Hallo Marci3xXx,

Um solche Kleinigkeiten zu erledigen, ohne dass mir jemand "in die Karten schaut" nehme ich immer AutoIT !
Ist eine leicht und schnell zu erlernende Script-Sprache und kann in eine exe-Datei kompiliert werden.

Schau es Dir mal an!

Gruss, thommy75
Mitglied: 45877
45877 Feb 25, 2010 at 10:49:18 (UTC)
Goto Top
Zitat von @thommy75:
Hallo Marci3xXx,

Um solche Kleinigkeiten zu erledigen, ohne dass mir jemand "in die Karten schaut" nehme ich immer
AutoIT !
Ist eine leicht und schnell zu erlernende Script-Sprache und kann in eine exe-Datei kompiliert werden.

Schau es Dir mal an!

Gruss, thommy75

*möööp*

autoit decompiler
http://blog.nerdbucket.com/autoit-decompiler-for-v3-2-6/article
Member: jhinrichs
jhinrichs Feb 25, 2010 at 15:43:20 (UTC)
Goto Top
Hatte ich es schon gesagt? Welchen Sinn hat es, ein Skript zu "schützen"? Vor wem? Oder was?
Würde es gerne verstehen.....
Member: thommy75
thommy75 Feb 25, 2010 at 20:09:10 (UTC)
Goto Top
Au S......e!

@45877
Hab's gerade ausprobiert - funktioniert wirklich problemlos....
Bei AutoIt habe ich Forum mal gelesen, dass es früher möglich war, (ganz bewusst) eine exe wieder in das au3-Script umzuwandeln, dies wurde jedoch vor ein paar Releases entfernt.
Da habe ich mich eigentlich in Sicherheit gewogen, was das "einfache" Auslesen des Quell-Codes anbelangt. Aber nach den paar Mausklicks von gerade eben kann das ja ein jeder Laie...
Auf jeden Fall mal danke für den Hinweis!

@jhinrichs
Also bei einem ordinären Skript wüsste ich auf Anhieb eigentlich nur einen Grund, den Quellcode zu verstecken: Passwörter oder Benutzernamen im Klartext (z.B. bei net use o.ä.).
Ich schütze (oder besser gesagt 'schützte') meinen Code, da es z.T. kleine Programme sind, deren Quellcode man eigentlich nicht gerne weitergibt - kostet mich schliesslich auch eine Menge Zeit. Aber diese haben nichts mehr mit einem Skript zu tun...

Gruss, thommy75
Member: mrtux
mrtux Feb 25, 2010 at 20:34:02 (UTC)
Goto Top
Hi !

Zitat von @jhinrichs:
Hatte ich es schon gesagt? Welchen Sinn hat es, ein Skript zu "schützen"? Vor wem? Oder was?

Naja...vielleicht könnte jemand dahinter kommen, dass man doch nicht so der absolute "Batchelor" ist ... :-P

mrtux
Mitglied: 84544
84544 Feb 25, 2010 at 20:49:58 (UTC)
Goto Top
Wie thommy75 sagt: "kleine Programme sind, deren Quellcode man eigentlich nicht gerne weitergibt " obwohl man bei dem kleine bei mir eher große sagen könnte xD

@mrtux: Damit meintest du wohl hoffentlich nicht mich^^
Member: jhinrichs
jhinrichs Feb 26, 2010 at 07:42:26 (UTC)
Goto Top
Hallo,
zu dem Thema Passwörter etc.: Klartextpasswörter in Skripten und sind keine gute Idee, selbst bei einem "kompiliertem" Skript/Programm wäre dass Passwort per Hex-Editor auslesbar. Hier ist die Standardlösung, die Zugangsdaten in eine separate Datei zu schreiben und diese dann mit seeeeeeeeeeehr eingeschränkten Leserechten auszustatten.
Was den "Schutz geistigen Eigentums" angeht, ist zunächst einmal zu klären, wie "schützenswert" das wirklich ist, also wieviel eigenständige Leistung da dokumentiert ist. Oder vielleicht gerade, wieviel "geklaut" ist...? Wenn es wirklich ein geniales Schnipselchen Quelltext ist, wird das auch bei Offenlegung angemessen bewundert werden können (s. hier im Forum insbes. die Beiträge von Biber und Bastla, aber auch von anderen Schnipslern), und alle lernen etwas dazu (auch die Codeschreiber). Man stelle sich vor, Linus Torvalds habe seinen Quelltext "schützen" wollen....
Grüße
Member: BluePanther
BluePanther Mar 02, 2010 at 16:03:04 (UTC)
Goto Top
Ohne mich jetzt in die Tiefen der Diskussion zu begben, lang lang ist's her, da habe ich das 'Problem' mit bat2com 'gelöst'. Man konnte ein paar kB auf der Diskette sparen und ein bissl Eindruck machen face-wink Wer ein bissl Ahnung hat wird mit Hexeditor und Debugger immer rauskriegen was du eigentlich aufrufst. Wenn es um Sicherheit geht, mußt du dir schon was anderes einfallen lassen. No security by obscurity. Um eine pfiffige Batch-Konstruktion zu 'schützen' sollte es aber reichen. (Wobei das schade wäre, die Welt braucht guten Code.)

-BP-
Member: Biber
Biber Mar 03, 2010 at 15:17:23 (UTC)
Goto Top
Also nee....

jetzt hat es dieser Beitrag in die Top-Beiträge des Monats geschafft... was ein Irrsinn.

Ich war der Hoffnung, dass jetzt zumindest mehrheitlich akzeptiert worden wäre, dass
  • Batch-Skripte nicht zu Exe-Dateien kompiliert & gelinkt werden können und
  • Jungfrau kein in der gesamten EU anerkannter Ausbildungsberuf ist und werden wird.

Bitte @Marcys: Mach einen "Beantwortet"-Haken dran, danach (oder ggf. auch ohne Haken) schließe ich den Thread Done.

Und gerne an @allediskussionsfreudigen: Macht meinetwegen einen neuen Beitrag auf zum Thema "Sinn und Unsinn eines Batch-Compilers", damit wir irgendwann mal auf einen Referenz-Beitrag verweisen können.

Grüße
Biber