Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   dekompilieren der MSIL (https://www.delphipraxis.net/116784-dekompilieren-der-msil.html)

DelphiAndreas 6. Jul 2008 14:59


dekompilieren der MSIL
 
Hallo!

Ich habe ein Problem mit einem VB.net-Programm, von dem mir leider der Code verloren gegangen ist (sicherungskopie hätte geholfen, ich weiß, darüber ärgere ich mich auch schon länger). Hat jemand einen Decompiler, der nachweislich und gut funktioniert? Ich habe etwas gefunden, leider produziert der ziemlich unbrauchbare Dateien...

Grüße
Andreas

Khabarakh 6. Jul 2008 15:07

Re: dekompilieren der MSIL
 
Versuche es einmal mit Lutz Roeders Reflector + http://www.denisbauer.com/NETTools/F...assembler.aspx

DelphiAndreas 6. Jul 2008 15:17

Re: dekompilieren der MSIL
 
genau den habe ich benutzt, das gibt aber 45 Fehler beim erneuten kompilieren und die designs der einzelnen forms zeigt er mir auch nicht mehr an, nur einen Fehler. Kann das unter Umständen am verwendeten .net-Framework liegen? Ich habe aber auch schon probiert die Dateien mit 3.5 zu kompilieren, das ändert nichts. Sonst bleibt mir wohl nur der Weg alle Fehler von Hand zu bearbeiten...

Khabarakh 6. Jul 2008 17:08

Re: dekompilieren der MSIL
 
Zitat:

Zitat von DelphiAndreas
das gibt aber 45 Fehler beim erneuten kompilieren [...] Kann das unter Umständen am verwendeten .net-Framework liegen?

:glaskugel: ?
Generell ist der Reflector umwerfend gut, der erzeugte Code aber auch nicht zum Neukompilieren gedacht. Wenn beispielsweise Lambda-Expressions benutzt werden, wirst du einige unkompilierbare Methodennamen finden, die solltest du aber einfach löschen können.

DelphiAndreas 6. Jul 2008 17:22

Re: dekompilieren der MSIL
 
wenn der code nicht zum neukompilieren gedacht ist, wie löse ich dann am besten mein Problem? Ich möchte das Programm nicht komplett neu schreiben...
Lambda-Expressions habe ich nicht verwendet, soweit ich weiß gibt es die erst ab .net 3.0 und das Programm ist noch mit 2.0 geschrieben.
Die Fehler sind ähnlich diesem hier:
Code:
Catch obj1 As Object When (?)
                ProjectData.SetProjectError(DirectCast(obj1, Exception))
                goto Label_00BC
            End Try
gibt folgende Fehlermeldung
Code:
'Catch' cannot catch type 'Object' because it is not 'System.Exception' or a class that inherits from 'System.Exception'. (BC30392) - C:\...]\frmExport.vb:288
und wenn ich das Design öffnen will:
Code:
Syntax errors in C:\[...]\frmExport.vb:
-- line 288 col 40: invalid SimpleNonInvocationExpression
Achso, ich benutze SharpDevelop, aber daran kann es doch nicht liegen, oder?

Khabarakh 7. Jul 2008 17:39

Re: dekompilieren der MSIL
 
Zitat:

Zitat von DelphiAndreas
Code:
Catch obj1 As Object When (?)
                ProjectData.SetProjectError(DirectCast(obj1, Exception))
                goto Label_00BC
            End Try
gibt folgende Fehlermeldung
Code:
'Catch' cannot catch type 'Object' because it is not 'System.Exception' or a class that inherits from 'System.Exception'. (BC30392) - C:\...]\frmExport.vb:288

Das könnte wirklich ein Bug im Reflector sein. Da bleibt dir wohl nichts anderes übrig, als alle Stellen (ggf. mithilfe der C#-Übersetzung, die dürfte im Allgemeinen verlässlicher sein) von Hand auszubügeln.

DelphiAndreas 13. Jul 2008 09:23

Re: dekompilieren der MSIL
 
danke für deine Hilfe!

ich bin gerade beim beheben der Fehler, die catch-fehler habe ich schon beseitigt, aber es gibt einen weiteren Fehlertyp:
Code:
Me.PlanArray = DirectCast(Utils.CopyArray(DirectCast(Me.PlanArray, Array), New String(5  - 1, (num2 + 1) - 1) {}), String(0 To .,0 To .)(,))
liefert:
Code:
Array bounds cannot appear in type specifiers. (BC30638) - C:\[...]\frmExport.vb:799
Da weiß ich noch nicht genau, was das Problem ist, kann mir da jemand helfen?

Grüße
Andreas


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:00 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz