Reverse engineering (rekayasa balik) toolnya disebut decompiler yang akan mengubah file yang sudah dikompilasi (.exe, .dll) menjadi source code asal. Aplikasi .NET dan Java lebih mudah didekompilasi daripada aplikasi PE(kompiler VB6 dll) karena aplikasi dikompilasi menjadi bahasa antara (.class Java dan msil .NET) semacam assembler daripada bahasa mesin (PE).
Decompiler .NET ada beberapa tiga diantaranya adalah:
1. .NET Reflector, freeware versi terakhir .5.1.6.0 (http://www.red-gate.com/products/reflector/)
.NET Reflector enables you to easily view, navigate, and search
through, the class hierarchies of .NET assemblies, even if you don't
have the code for them. With it, you can decompile and analyze .NET
assemblies in C#, Visual Basic, and IL.
2. Salamander .NET
decompiler, harga $1099, versi terakhir .3.0 (http://www.remotesoft.com/salamander/)
Salamander is a .NET
decompiler that converts executable files (.EXE or .DLL) from Intermediate
Language (IL, MSIL, CIL) binary format to high-level source codes, such as C#, managed C++,
Visual Basic.NET
3. Dis#, harga $399, versi terakhir .3.1.4 (http://netdecompiler.com/)
Saya punya Dis# ,ini contoh source code dari aplikasi Instant VB (converter kode C# ke VB)
Private Sub z_b9(ByVal z_c0 As Object, ByVal z_c1 As EventArgs)
Dim saveFileDialog1 As SaveFileDialog = New SaveFileDialog
saveFileDialog1.DefaultExt = ".txt?"
saveFileDialog1.Title = "Save Conversion Messages?"
saveFileDialog1.Filter = "Log Files (*.txt)|*.txt|All Files (*.*)|*.*?"
saveFileDialog1.RestoreDirectory = True
saveFileDialog1.AddExtension = True
saveFileDialog1.OverwritePrompt = True
If saveFileDialog1.ShowDialog(Me) <> DialogResult.OK Then
GoTo label_0
End If
Dim s1 As String = saveFileDialog1.FileName
Dim s2 As String = "?"
Dim s3 As String = z_b3.Columns(0).Text
Dim s4 As String = z_b3.Columns(1).Text
Dim s5 As String = z_b3.Columns(2).Text
Dim listViewItem1 As ListViewItem
For Each listViewItem1 In z_b3.Items
Dim s6 As String = s2
s2 = s6 + s3 + ": ?" + listViewItem1.SubItems(0).Text + z_a254.z_a259 + s4 + ": ?" + listViewItem1.SubItems(1).Text + z_a254.z_a259 + s5 + ": ?" + listViewItem1.SubItems(2).Text + z_a254.z_a259 + "--------------------------------------------------------------------------------------?" + z_a254.z_a259
Next
Dim streamWriter1 As StreamWriter = New StreamWriter(s1, False, Encoding.Default)
streamWriter1.Write(s2)
streamWriter1.Close()
End Sub