Toon posts:

[.NET] Decompile en recompile?

Pagina: 1
Acties:
  • 197 views sinds 30-01-2008

Verwijderd

Topicstarter
Ik heb hier een exe, die in vb .net is gemaakt, en die wil ik graag aanpassen. Nou kan ik em wel decompilen met bv decompiler.net of 9rays.net, maar hoe kan ik em editen en weer recompilen? weet iemand een tool daarvoor?

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Het zou een slechte zaak zijn als dat zomaar kon. Als ik een programma distrubueer en mijn geld daaran verdien, dan wil ik niet dat het eerste het beste scriptkiddie mijn exe pakt, hem decompilet en daarna zijn eigen programma erop schrijft. Gedecompileerde code is vaak compleet onleesbaar omdat je variabelenamen bijvoorbeeld verloren gaan, en bepaalde strucurten in assembly niet terugvertaald kunnen worden naar de VB.NET vorm. Zo kan het zijn dat je nergens in je code een for-loop tegenkomt, en in plaats daarvan allerlei while-constructies, ook als er in de oorspronkelijke code wel fors stonden.

Waarom wil je eigenlijk die exe reverse engineeren? Source code kwijt?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Topicstarter
:) jah heb ooit voor informatica lang geleden een appje gemaakt voor een internetcafe, maar nu kan ik dat mss weer gebruiken, moet alleen wel flink aangepast worden... is verder niet beveiligd, of obfuscated ofzo :)

Maar ik kom denk ik al een heel eind met IL DASM :)
als iemand een werkende methode kent, ik ben benieuwd

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 13-05 06:47
Editen met je favoriete editor, recompilen met de VB.NET compiler van Microsoft? Waarom zou dat niet lukken? Je hebt 'm al gedecompiled zeg je, dus dan beschik je over de broncode?

[ Voor 39% gewijzigd door Soultaker op 18-02-2005 00:45 ]


Verwijderd

Topicstarter
jah zo simpel lag et niet helemaal maar wel zon ongeveer idd :P
kon em omzetten naar een IL met ildasm, en dan idd gewoon met me favot editor...

thanx

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 13-05 06:47
Dat is alleen disassembleren (converteren naar assembly language) en niet decompileren (converteren naar een high-level programmeertaal).

  • whoami
  • Registratie: December 2000
  • Laatst online: 10:24
Soultaker schreef op vrijdag 18 februari 2005 @ 01:25:
Dat is alleen disassembleren (converteren naar assembly language) en niet decompileren (converteren naar een high-level programmeertaal).
En dat zou hij toch wel moeten merken als het echt z'n eigen source-code / applicatie is.
Verder vind ik het maar vaag dat je je eigen source-code niet meer hebt....

Kortom; ik geloof geen snars van je verhaal.

https://fgheysels.github.io/


  • RobLemmens
  • Registratie: Juni 2003
  • Laatst online: 13-05 23:06
Verwijderd schreef op vrijdag 18 februari 2005 @ 00:42:
:) jah heb ooit voor informatica lang geleden een appje gemaakt voor een internetcafe, maar nu kan ik dat mss weer gebruiken, moet alleen wel flink aangepast worden... is verder niet beveiligd, of obfuscated ofzo :)
Oftewel je lult uit je nek. :( .Net applicaties KUN je niet lang geleden geschreven hebben voor je informatica leraar. Die zijn der pas een paar jaar en als het echt een appje is dat flink aangepast moet worden dan heb je kun je toch beter opnieuw beginnen?

  • whoami
  • Registratie: December 2000
  • Laatst online: 10:24
RobLemmens schreef op vrijdag 18 februari 2005 @ 08:52:
[...]
Die zijn der pas een paar jaar en als het echt een appje is dat flink aangepast moet worden dan heb je kun je toch beter opnieuw beginnen?
Dat is ook weer niet weer.
Als ik het goed heb, ben ik reeds van in 2002 bezig met .NET.

https://fgheysels.github.io/


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 14-05-2024

OZ-Gump

terug van weggeweest

whoami schreef op vrijdag 18 februari 2005 @ 08:53:
[...]

Dat is ook weer niet weer.
Als ik het goed heb, ben ik reeds van in 2002 bezig met .NET.
Dat kan inderdaad kloppen, maar als je lang geleden iets voor een leraar in .Net hebt geschreven is er iets mis: iets moet minstens zijn sporen een jaar of 8 verdiend hebben voor een leraar ermee aan de slag wil ;)

[ Voor 3% gewijzigd door OZ-Gump op 18-02-2005 09:13 ]

My personal website


  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 08-05 18:46

Gerco

Professional Newbie

Je kan de reflector gebruiken om de boel om te zetten naar sourcecode (VB.NET, C# of Delphi.NET) en dan gebruik je visual studio om de boel weer te compileren.

Verder betwijfel ik ernstig of je dat zelf geschreven hebt als je niet weet hoe je het moet compileren.
iets moet minstens zijn sporen een jaar of 8 verdiend hebben voor een leraar ermee aan de slag wil ;)
I beg to differ. Op HBOs en bij LOI bijvoorbeeld wordt VB.NET al veel gebruikt als eerste kennismaking met programmeren. Voorheen was dat meestal Java of VB6, dus die ontwikkeling is zowel goed als slecht :)

[ Voor 35% gewijzigd door Gerco op 18-02-2005 09:23 ]

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 14-05-2024

OZ-Gump

terug van weggeweest

beg to differ. Op HBOs en bij LOI bijvoorbeeld wordt VB.NET al veel gebruikt als eerste kennismaking met programmeren. Voorheen was dat meestal Java of VB6, dus die ontwikkeling is zowel goed als slecht :)
Klopt.
Mijn voorbeeld was ook meer in de trant van 'overdrijven maakt de zaak duidelijk'. ;) Misschien heb ik het vroeger wel gewoon heel slecht gehad op mijn opleiding, omdat we nog met Delphi 4 werkten terwijl 6 al geruime tijd uit was. Overigens was dat bij ons de 'eerste kennismaking met programmeren': Delphi. Tegenwoordig fervent dotnetter.

My personal website


Verwijderd

Topicstarter
haha okeej..... ik vind 2002 lang geleden, en ik had et niet gemaakt voor mijn informaticaleraar, maar voor informatica (en et stelde ook geen reet voor), en samen met iemand die er wel verstand van had (en dus ook alles heeft gecompiled etc), hij heeft ook de source vast nog wel ergens, maar ik ben het contact met hem al lang verloren. Dus leek me dit makkelijker.
En dan ga ik nu met jullie goedkeuring het proberen in visual studio te krijgen ;)


edit:
en ik wil dit appje dus ook voor een groot deel gebruiken om weer een beetje de smaak te pakken te krijgen, kijken hoe we dat toen hadden gedaan

[ Voor 16% gewijzigd door Verwijderd op 18-02-2005 12:53 ]


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Verwijderd schreef op vrijdag 18 februari 2005 @ 12:51:
haha okeej..... ik vind 2002 lang geleden, en ik had et niet gemaakt voor mijn informaticaleraar, maar voor informatica (en et stelde ook geen reet voor), en samen met iemand die er wel verstand van had (en dus ook alles heeft gecompiled etc), hij heeft ook de source vast nog wel ergens, maar ik ben het contact met hem al lang verloren. Dus leek me dit makkelijker.
En dan ga ik nu met jullie goedkeuring het proberen in visual studio te krijgen ;)


edit:
en ik wil dit appje dus ook voor een groot deel gebruiken om weer een beetje de smaak te pakken te krijgen, kijken hoe we dat toen hadden gedaan
Waarom bouw je het niet opnieuw? Lijkt me veel verstandiger ;)

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Verwijderd

Topicstarter
jah dat zei ik in mijn edit, omdat ik gewoon weer een beetje "erin" wil komen en dat gaat makkelijker als ik zie hoe ik bepaalde dingen voorheen heb gedaan, als je het zelf hebt gemaakt kan je meestal beter begrijpen hoe et zit :) en dan kan ik altijd nog opnieuw beginnen.

  • markvt
  • Registratie: Maart 2001
  • Laatst online: 13-05 14:57

markvt

Peppi Cola

Waarom haal je niet een goed boek en begin je opnieuw leer je veel meer van en op planet source code zijn ook legio voorbeelden waar allerhande dingen duidelijk in gedaan zijn die je kan nazien.

van-tilburg.info -=- meka (sega emulator) - Proud MEDION fanclub member - KOPPIG VOLHOUDEN !


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 14-05-2024

OZ-Gump

terug van weggeweest

markvt schreef op vrijdag 18 februari 2005 @ 13:20:
Waarom haal je niet een goed boek en begin je opnieuw leer je veel meer van en op planet source code zijn ook legio voorbeelden waar allerhande dingen duidelijk in gedaan zijn die je kan nazien.
Voordeel daarvan is dat je het direct leert zoals het hoort, niet zoals jij het gedaan hebt. Misschien heb je in je vorige project nog dingen op de ouderwetse manier gedaan terwijl .Net daar veel makkelijkere, mooiere of betere oplossingen voor heeft.

Oftewel, zoals al door meer mensen gezegd: begin gewoon een nieuw project, pak er een mooi boek bij en have fun!

My personal website


Verwijderd

Dit verhaal kraakt aan alle kanten, zeg dan gewoon dat je een applicatie wilt decompilen om de source te bekijken. Je bent echt niet de eerste die dat wil doen :)

  • IceM
  • Registratie: Juni 2003
  • Laatst online: 12:08
Het kan aan mij liggen, maar een .net applicatie is toch niet zo maar te decompilen naar de source? Misschien naar assembly code, maar assembly code en vb.net/c# code is toch niet te vergelijken?
Of kun je .net applicaties zo decompilen naar originele (zonder commentaat etc) source code? Lijkt me frapant, maargoed.

...


  • sig69
  • Registratie: Mei 2002
  • Laatst online: 18:56
Ja, dat kan. Maar alleen als er geen afdoende maatregelen genomen zijn. (onfuscation etc)

Roomba E5 te koop


  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 08-05 18:46

Gerco

Professional Newbie

IceM schreef op vrijdag 18 februari 2005 @ 13:34:
Het kan aan mij liggen, maar een .net applicatie is toch niet zo maar te decompilen naar de source? Misschien naar assembly code, maar assembly code en vb.net/c# code is toch niet te vergelijken?
Of kun je .net applicaties zo decompilen naar originele (zonder commentaat etc) source code? Lijkt me frapant, maargoed.
Je kan .NET apps decompileren naar bijna originele code. Van je oorspronkelijke uitlijning, variabele namen en commentaar blijft niets over, maar de code is zeker wel goed leesbaar. Voorbeeldje uit System.RegistryKey.CreateSubKey()

Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Public Function CreateSubKey(ByVal subkey As String) As RegistryKey
      If (subkey Is Nothing) Then
            Throw New ArgumentNullException("subkey")
      End If
      If (subkey.Length >= 255) Then
            Throw New ArgumentException(Environment.GetResourceString("Arg_RegKeyStrLenBug"))
      End If
      Me.ValidateState(True)
      subkey = RegistryKey.FixupName(subkey)
      If Not Me.remoteKey Then
            Dim key1 As RegistryKey = Me.InternalOpenSubKey(subkey, True)
            If (Not key1 Is Nothing) Then
                  New RegistryPermission(RegistryPermissionAccess.Write, (Me.keyName & "\" & subkey & "\.")).Demand
                  Return key1
            End If
            New RegistryPermission(RegistryPermissionAccess.Create, (Me.keyName & "\" & subkey & "\.")).Demand
      Else
            New SecurityPermission(SecurityPermissionFlag.UnmanagedCode).Demand
      End If
      Dim ptr1 As IntPtr = RegistryKey.INVALID_HANDLE_VALUE
      Dim num2 As Integer = 0
      Dim num1 As Integer = Win32Native.RegCreateKeyEx(Me.hkey, subkey, 0, Nothing, 0, 131103, Nothing, ptr1, num2)
      If ((num1 = 0) AndAlso (ptr1 <> RegistryKey.INVALID_HANDLE_VALUE)) Then
            Dim key2 As New RegistryKey(ptr1, True)
            If (subkey.Length = 0) Then
                  key2.keyName = Me.keyName
                  Return key2
            End If
            key2.keyName = (Me.keyName & "\" & subkey)
            Return key2
      End If
      If (num1 <> 0) Then
            RegistryKey.Win32Error(num1, (Me.keyName & "\" & subkey))
      End If
      Return Nothing
End Function

Het leukste is nog wel dat deze method oorspronkelijk in C# geschreven is, maar hij kan decompilen naar VB.NET bijvoorbeeld :)

[ Voor 57% gewijzigd door Gerco op 18-02-2005 13:55 ]

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


  • whoami
  • Registratie: December 2000
  • Laatst online: 10:24
Nuja, als die andere gast het in debug - mode gebuild heeft, en je hebt de pdb files.....

https://fgheysels.github.io/


  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 01-05 19:09

pjvandesande

GC.Collect(head);

whoami schreef op vrijdag 18 februari 2005 @ 13:55:
Nuja, als die andere gast het in debug - mode gebuild heeft, en je hebt de pdb files.....
In .NET worden toch ook de variable namen in je assambly gezet als je als release compiled?

  • whoami
  • Registratie: December 2000
  • Laatst online: 10:24
questa schreef op vrijdag 18 februari 2005 @ 15:01:
[...]


In .NET worden toch ook de variable namen in je assambly gezet als je als release compiled?
Ik bedoelde: als je in debug build gebuld hebt, en je hebt de pdb files ook nog, dan kan je je applicatie runnen, VS.NET opstarten, je debugger attachen aan je applicatie en tada.

https://fgheysels.github.io/


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 17:13

.oisyn

Moderator Devschuur®

Demotivational Speaker

Reverse engineering van software is verboden bij de wet

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.

Pagina: 1

Dit topic is gesloten.