Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

.xls -> (unknackbare?) .exe @ Johannes D.

Betrifft: .xls -> (unknackbare?) .exe @ Johannes D. von: ioannis
Geschrieben am: 14.06.2008 13:13:00

Hallo nochmal und Danke für die Antwort.

Ich habe gerade eine test.exe mit meinem Compiler erzeugt und bin gespannt ob sie tatsächlich unknackbar ist (glaube ich kaum...). Würde mich sehr freuen, wenn jemand zu den Modulen gelangt...

Ist aber 400 KB gezipt, ich kann sie nicht uploaden. Gibt es einen anderen Weg?

Beste Grüsse
Ioannis

  

Betrifft: AW: .xls -> (unknackbare?) .exe @ Johannes D. von: Tino
Geschrieben am: 14.06.2008 13:19:26

Hallo,
Teilarchiv erzeugen.

Gruß Tino


  

Betrifft: AW: .xls -> (unknackbare?) .exe @ Johannes D. von: ioannis
Geschrieben am: 14.06.2008 13:30:58

Hallo,

wie geht das?

MfG
Ioannis


  

Betrifft: AW: .xls -> (unknackbare?) .exe @ Johannes D. von: Tino
Geschrieben am: 14.06.2008 13:39:35

Hallo,
bei mir kann ich dies einstellen.



Gruß Tino


  

Betrifft: AW: .xls -> (unknackbare?) .exe @ Johannes D. von: ioannis
Geschrieben am: 14.06.2008 14:25:51

Das Problem ist, ich kann Teil rar archive erzeugen, die ich aber wieder nicht uploaden darf...


  

Betrifft: AW: .xls -> (unknackbare?) .exe @ Johannes D. von: Johannes D.
Geschrieben am: 14.06.2008 14:29:58

Hallo,

schicks mir mal via Email und ich stells dann oeffentlich zur Verfuegung.
hannes #AT# plasticdreams #DOT# de

Bin gespannt! :-)

Gruesse,
Johannes


  

Betrifft: AW: .xls -> (unknackbare?) .exe @ Johannes D. von: Reinhard
Geschrieben am: 14.06.2008 13:37:13

Hi Ioannes,

http://www.badango.com

und Teilarchive wird man "irgendwo" beim Zip-Programm einstellen können. Wie weiß ich auch nicht.

Gruß
Reinhard


  

Betrifft: AW: .xls -> (unknackbare?) .exe @ Johannes D. von: ioannis
Geschrieben am: 14.06.2008 14:32:09

So sollte es wahrscheinlich einfacher funktionieren...

http://www.badongo.com/file/9883108

Wie gesagt, die Module sollen unknackbar (?) sein...

MfG
Ioannis


  

Betrifft: AW: .xls -> (unknackbare?) .exe @ Johannes D. von: Tino
Geschrieben am: 14.06.2008 15:28:37

Hallo,
brauche nur noch den VBA Code zu knacken und alles wäre offen, dafür gibt es eine menge Tools.




Gruß
Tino


  

Betrifft: AW: .xls -> (unknackbare?) .exe @ Johannes D. von: Matthias G
Geschrieben am: 14.06.2008 15:38:15

Hallo Tino,

so weit wie du auf dem Screenshot war ich auch, aber weiter bin ich nicht gekommen...
Mein Versuch bzgl. VB-Schutz ging in die Richtung, mit einem HEX-Editor aus "DPB" ein "DBx" zu machen... ohne Erfolg.

Gruß Matthias


  

Betrifft: AW: .xls -> (unknackbare?) .exe @ Johannes D. von: Tino
Geschrieben am: 14.06.2008 16:55:27

Hallo,
gebe auf bin eben kein Hacker, viel Spaß noch beim tüfteln habe keine Lust mehr.


Gruß Tino

www.tinomargit.com




  

Betrifft: AW: .xls -> (unknackbare?) .exe @ Johannes D. von: Dieterlem
Geschrieben am: 14.06.2008 16:24:56

Hi,

was ist das für ein Compiler?


Gruß
Dieterlem


  

Betrifft: AW: .xls -> (unknackbare?) .exe @ Johannes D. von: Reinhard
Geschrieben am: 14.06.2008 16:50:44

Hi Dieter,

wenn man sie startet steht was von

DoneEx XCell Compiler

Gruß
Reinhard


  

Betrifft: AW: .xls -> (unknackbare?) .exe @ Johannes D. von: MichaV
Geschrieben am: 15.06.2008 01:15:04

Hallo,

Wie Du schon sagtest, wo ein Wille ist....

http://www.decryptum.com/ hat eine Kopie der Datei in 2 Minuten geknackt. Habe mir aber das Ergebnis nicht runtergeladen, sind 21$ fällig.

Gruß- Micha


  

Betrifft: AW: .xls -> (unknackbare?) .exe @ Johannes D. von: ioannis
Geschrieben am: 15.06.2008 12:38:19

Hallo,

ich habe es gerade auch so versucht, er nimmt keine .exe Dateien an. Habe dann die Erweiterung in .xls geändert, geht auch nicht...

Freundliche Grüsse
Ioannis


  

Betrifft: AW: .xls -> (unknackbare?) .exe @ Johannes D. von: MichaV
Geschrieben am: 15.06.2008 15:17:18

Hallo,

du musst eine Kopie der offenen xls speichern. Auch wenn Du denkst das es nicht geht, es geht :o)

Gruß- Micha


  

Betrifft: So schwer wars garnicht ... von: Johannes D.
Geschrieben am: 15.06.2008 07:02:25

Hi Ioannis.

in nem Thread 15mal meinen Namen zu lesen - nett - zuviel der Ehre. *duck* :-)
Also so ueberzogen einfach, wie ichs im Betreff hingeschmettert hab, wars dann doch nicht. Wenn man die Grundzuege von Compilern, bzw. die dahinterstehende Theorie kennt, kommt man der Sache schon irgendwann auf die Schliche.

Meine Theorie war, dass dieser komische Compiler, den du da hast, was seltsames zusammenflickt, das aus *.exe (Containeranwendung), Payload (Excelworkbook) und bisschen verschleierndem Zeug besteht. Wie sichs rausgestellt hat, lag ich garnicht so falsch. Zuerst hab ich deine "Anwendung" in eine Sandbox (Wikipedia) befoerdert, um zu sehen was da alles vor sich geht:



Aha! Im Temp wird also irgendeine Instanz deiner Anwendung abgelegt - mit irgendeiner komischen dll, die jetzt mal nicht weiter interessieren soll. Noch dazu eine ~DFxxxx.tmp (temporaeres Abbild deines Workbooks), die aber deine Anwendung sofort wieder loescht (Spuren beseitigen - wie ich meine). Den Hexeditor angeworfen und mich einfach in die laufende Instanz, direkt im RAM, eingeklinkt - é voilà:



Jetzt noch im richtigen Zeichensatz formatiert exportieren und fertig ist die Wurst! Die restlichen Dinge die dieser seltsame Compiler tut ist so gut es geht zu verschleiern. Setzt zur Laufzeit noch paar Policies, dass mir alle Mittel im VBA Editor genommen werden und weitere Einschraenkungen.
Ich bin mir nicht sicher, ob sich der Kauf einer solchen Software wirklich auszahlt, weil sie bestimmt auch genug Schattenseiten mit sich bringt, die Excel an Funktionalitaeten berauben. Ich konnte z.B. nicht speichern, ich konnte die Mappe nicht freigeben - mir erschliesst sich einfach der Sinn dessen. Wenn das ganze Szenario nur zum Makros verstecken dient, dann gaebe es wohldosiertere und professionellere Moeglichkeiten. Dennoch musste ich da wirklich viel "kriminelle Energie" an den Tag legen was sicher der 0815 User in der Form nicht tun wird. :-) Noch dazu bin ich mir nicht sicher, ob ich das in dieser Form reproduzieren koennte, wenn die Makros beliebig komplex werden.


Gruesse,
Johannes

Ach - fast vergessen:

Attribute VB_Name = "Modul1"

Sub test()

   MsgBox "Hallo"

End




  

Betrifft: AW: So schwer wars garnicht ... von: ioannis
Geschrieben am: 15.06.2008 10:51:22

Hallo Johannes,

erstmal Vielen Dank für den grossen Aufwand. Ich bin seit mehreren Monaten auf der Suche nach einem vernuftigen Schutzmechanismus für Excel Tabellen. DoneEx ist die erste Firma, die ich gefunden habe, die einen direkten, allgemeingültigen und auf Knopfdruck funktionierenden Schutz für die VBA Module bietet (bieten solltet...). Übrigens, speichern erlauben, oder nicht, ist eine Möglichkeit die man vor der Kompilierung einstellen kann, und die zumindest wurde nicht geknackt :-)

Mir wurde vorgeschlagen, der einzig wirklich sichere Weg ist über VSTO. In diesem Fall müsste ich mein Code von Anfang an in .NET wieder schreiben, soweit ich weiß einen automatischen Übersetzer gibt es nicht...

Ist das die wohldosiertere und professionellere Möglichkeit die Du meinst?

Freundliche Grüsse
Ioannis


  

Betrifft: AW: So schwer wars garnicht ... von: Nepumuk
Geschrieben am: 15.06.2008 12:56:33

Hallo Ioannis,

also, wenn ich eine zweite Excelmappe öffne, kann ich von der aus sehr wohl eine Kopie der Mappe als .xls speichern. Direkt ran, an die Makros komme ich dann noch nicht, denn diese ist mit einem Lese- Schreibschutzkennwort gesichert. Aber um das zu knacken, gibt es ausreichend Firmen im Netz die so etwas anbieten.

Wirklich sicher wird der Code nur, wenn du es als DLL kompilierst. Die lässt sich zwar auch wieder dekompilieren, aber das liefert nur eine Art Assemblercode welcher nicht so einfach in VBA übersetzbar ist. Da habe ich das ganze schneller nachprogrammiert.

Bei der ganzen Sache ist auch zu bedenken, dass viele Firmen es gar nicht gerne sehen, wenn jemand ausführbaren Code in ihr Netzwerk stellen will. Viele IT - Abteilungen haben schlechte Erfahrungen sammeln müssen und reagieren darum hochpanisch, wenn du mit eine .exe oder einer .dll ankommst. Und wenn du das schon machst, warum dann überhaupt noch Excel benutzen? Dann schreib das ganze doch direkt in VB oder C und speichere die Daten in einer Datenbank. Das ist dann wenigstens zu 99% sicher. Irgendwelcher Hacker mit entsprechender krimineller Energie (oder staatlicher Förderung) wird es immer geben, welche auch das knacken.

Hier ist deine Datei ohne den ganzen Krimskrams: https://www.herber.de/bbs/user/53091.xls

Das Kennwort zu knacken war mir jetzt zu aufwendig, aber ich denke nicht, das ich länger als einen Tag dafür benötige, ich hab hier genügend Rechner stehen, welch so etwas gerne für mich erledigen. ;-)

Gruß
Nepumuk


  

Betrifft: AW: So schwer wars garnicht ... von: ioannis
Geschrieben am: 15.06.2008 17:00:52

Hallo zusammen,

dann müsste ich vielleicht das Öffnen anderer Mappen unterbinden,

For Each w In Workbooks
If w.Name <> ThisWorkbook.Name Then
w.Close savechanges:=True
End If
Next w
End If

oder irgendsowas in der Richtung. Wenn ich Euch richtig verstanden habe, lässt sich dadurch die Applikation nicht als .xls speichern...

Freundliche Grüsse
Ioannis


  

Betrifft: AW: So schwer wars garnicht ... von: MichaV
Geschrieben am: 15.06.2008 19:59:48

Hallo,

du brauchst keine zweite Excelmappe. Einfach im Direktfenster thisworkbook.savecopyas("irgendwas.xls") eingeben.

Das kannst Du auch nicht durch Makros unterbinden.

Gruß- Micha


  

Betrifft: AW: So schwer wars garnicht ... von: ioannis
Geschrieben am: 15.06.2008 20:49:38

Hallo,

in diesem Fall dass einzige was mir einfällt ist das Direktfenster auch zu unterbinden,

Set ctrls = _
Application.CommandBars.FindControls(ID:=1695) 'Visual-Basic Editor

If ctrl Is Nothing Then Exit Sub

For Each ctrl In ctrls
If ctrl Is Nothing Then Else ctrl.Enabled = False
Next ctrl

...oder?

Freundliche Grüsse
Ioannis


  

Betrifft: AW: So schwer wars garnicht ... von: MichaV
Geschrieben am: 15.06.2008 21:07:53

Hallo,

das Direktfenster öffnet sich z.B. mit Alt+F11 und dann STRG+G, da kannst Du soviel Menüpunkte ausblenden wie Du willst.

Gruß- Micha


  

Betrifft: Ergo! von: Johannes D.
Geschrieben am: 15.06.2008 21:44:30

Irgendwie gehts dann immer ... die Frage ist nur, wie aufwaendig das Reengineeren ist und ob man sich das zeitlich antun will. ;-)

Gruesse,
Johannes


  

Betrifft: AW: Ergo! von: MichaV
Geschrieben am: 15.06.2008 21:55:07

Hallo,



welcher Zeitfaktor? Wir reden hier von 5 Minuten bis Du die Mappe ohne Passwort herunterladen kannst. Die Frage ist, ob man dafür 20 Dollar ausgeben will. Aber wenn ich so an einen Code rankomme, für den Du 10 Tage geschrieben hast, warum nicht? Und in 2..3 Jahren gehts das sicher auch mit Freeware.



Ansonsten siehe Nepumuk. Vergiss es oder mach es nicht in Excel :o)



Gruß- Micha


  

Betrifft: AW: Ergo! von: Johannes D.
Geschrieben am: 15.06.2008 23:24:40

Hallo Micha,

meine Aussage war eher ein Summary zur allgemeinen Situation, als zur konkreten Problemstellung. Es ist doch - wie ueberall - ein weg- und hinterherlaufen. Auch statisch kompilierte Projekte in Form einer DLL wuerden sich reengineeren lassen ... aber vielleicht existiert ja auch ein Dienstleister, der das fuer $20 erledigt. *SCNR* Ich fass das einfach mal als "Ich will das letzte Wort haben"-Statement auf. ;-)))

Ansonsten ja, siehe Nepomuk. Alle Interpretersprachen-Quelletexte, die zur Laufzeit kompiliert werden (VBA, Java, etc.), sind quasi ausgeliefert.

Gruesse,
Johannes


  

Betrifft: AW: So schwer wars garnicht ... von: Nepumuk
Geschrieben am: 15.06.2008 21:45:55

Hallo Ioannis,

da gibts einfach zu viele Möglichkeiten. Ich hab z.B. einfach mal von Word auf die Mappe zugegriffen, schon kann ich mit ihr mehr oder weniger alles machen was ich will. Das kann diese Art von Schutz nicht verhindern.

Gruß
Nepumuk


  

Betrifft: AW: So schwer wars garnicht ... von: ioannis
Geschrieben am: 15.06.2008 21:47:30

Hallo nochmal,

dann das auch noch

Private Sub AlleTastenkombinationenAus()
Dim intz As Integer

    On Error Resume Next
    For intz = 1 To 255
        Application.OnKey "^" & Chr(intz), ""
        Application.OnKey "%{F" & intz & "}", ""
    Next intz
End Sub




Ich denke (hoffe), somit kann ich mir sicher sein, dass es einen direkten .exe -> .xls Weg nicht gibt...

Freundliche Grüsse
Ioannis