GDN: Copmpiling and Decompiling
От: Аноним  
Дата: 28.07.04 02:29
Оценка:
Я хочу здесь по подробнее обсудить проблему которая на мой взгляд затрагивает всех, кто работает над комерческими пректами.

1. Проблема заключается в том что сейчас докучи развелось всякого рода декомпмляторы, с помощью которых можно декомпилить любые проги сделанные на VS .Net
Я не спорю вещь весьма полезная и нужная, когда тебе что то надо декомпилить
Не полный перечень декомпиляторов (для тех кто не в курсе):
— Anakrino9
— Salamander
— 9Raise.Net
— Net Reflector
Которые выдают очень даже не плохой код, который чуток подправил и он работает.

Только не надо говорить, что есть обусификаторы. Это все фигня. Я сам обзываю переменные как А1, А2, А3 ...., а классы Raznoe1, Raznoe2 и т.д.
(шучу конечно, но рачше так и делал) поэтому не вижу ни каких проблем в разборе обуфицированного кода.

2. Я считаю что выход только один: компилировать в Native exe

3. А пока я обхожусь так: зашифровываю те файлы которые хочу защитить от декомпилинга, а запускаю я их так:

Friend Sub RunCrypt(ByVal File As String)

        Dim FS2 As New IO.FileStream(File, IO.FileMode.Open)
        Dim CS2 As Security.Cryptography.CryptoStream = GetIO(FS2, Security.Cryptography.CryptoStreamMode.Read)
        Dim BR As New IO.BinaryReader(CS2)
        Dim a As String = BR.ReadString
        Dim L As Long = BR.ReadInt64
        Dim B() As Byte = BR.ReadBytes(L + 1)
        BR.Close()

        Dim ModType As Type
        Dim Asm As Reflection.Assembly
        Asm = System.Reflection.Assembly.Load(B, Nothing)
        ModType = Asm.GetType("Nimnul.Base.FormMain", True, True)
        Dim Obj As Object = Asm.CreateInstance(ModType.FullName)
        Obj.show()
    End Sub
    ' 
    Private Function GetIO(ByVal FS As IO.FileStream, ByVal Mode As Security.Cryptography.CryptoStreamMode) As Security.Cryptography.CryptoStream
        Dim Des As New System.Security.Cryptography.DESCryptoServiceProvider
        Dim K(7) As Byte
        Dim V(7) As Byte
        K(0) = 132
        K(1) = 55
        K(2) = 34
        K(3) = 88
        K(4) = 23
        K(5) = 1
        K(6) = 254
        K(7) = 187
        V(0) = 26
        V(1) = 56
        V(2) = 78
        V(3) = 255
        V(4) = 37
        V(5) = 143
        V(6) = 201
        V(7) = 5
        Des.Key = K
        Des.IV = V

        Dim Trans As System.Security.Cryptography.ICryptoTransform
        If Mode = Security.Cryptography.CryptoStreamMode.Write Then
            Trans = Des.CreateEncryptor
        Else
            Trans = Des.CreateDecryptor
        End If
        Dim C As New Security.Cryptography.CryptoStream(FS, Trans, Mode)
        Return C
    End Function


У кого еще какие мнения?


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.