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
ссылка на оригинальное сообщение
GDN: Copmpiling and Decompiling
От: Аноним  
Дата: 28.07.04 02:36
Оценка:
Да к стати этот массив с ключюм, с помощь декомпилятора тоже можно подсмотреть, и как этого избежать я не знаю!!!!


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re: Copmpiling and Decompiling
От: VladD2 Российская Империя www.nemerle.org
Дата: 29.07.04 23:03
Оценка: :)))
Здравствуйте, vb95, Вы писали:

V> Только не надо говорить, что есть обусификаторы. Это все фигня. Я сам обзываю переменные как А1, А2, А3 ...., а классы Raznoe1, Raznoe2 и т.д.

V>(шучу конечно, но рачше так и делал) поэтому не вижу ни каких проблем в разборе обуфицированного кода.


Ну, тогда я тебя успокою. Твой код никому и нафиг не упал.
... << RSDN@Home 1.1.4 beta 2 >>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Copmpiling and Decompiling
От: ForestLabs Россия  
Дата: 30.07.04 03:14
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, vb95, Вы писали:


V>> Только не надо говорить, что есть обусификаторы. Это все фигня. Я сам обзываю переменные как А1, А2, А3 ...., а классы Raznoe1, Raznoe2 и т.д.

V>>(шучу конечно, но рачше так и делал) поэтому не вижу ни каких проблем в разборе обуфицированного кода.


VD>Ну, тогда я тебя успокою. Твой код никому и нафиг не упал.


Грубо. Но правильно.
Re[3]: Copmpiling and Decompiling
От: VladD2 Российская Империя www.nemerle.org
Дата: 30.07.04 06:15
Оценка:
Здравствуйте, ForestLabs, Вы писали:

VD>>Ну, тогда я тебя успокою. Твой код никому и нафиг не упал.


FL>Грубо. Но правильно.


А что еще можно ответить человеку не стеснющемуся говорить, что он переменным осмысленные имена не дает?
... << RSDN@Home 1.1.4 beta 2 >>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Copmpiling and Decompiling
От: ForestLabs Россия  
Дата: 30.07.04 06:25
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, ForestLabs, Вы писали:


VD>>>Ну, тогда я тебя успокою. Твой код никому и нафиг не упал.


FL>>Грубо. Но правильно.


VD>А что еще можно ответить человеку не стеснющемуся говорить, что он переменным осмысленные имена не дает?


А вот идея шифрования сборок что-то с собой несет... Много думаю. Тут и электр.ключи присобачить можно.
Re[5]: Copmpiling and Decompiling
От: VladD2 Российская Империя www.nemerle.org
Дата: 01.08.04 01:46
Оценка:
Здравствуйте, ForestLabs, Вы писали:

FL>А вот идея шифрования сборок что-то с собой несет... Много думаю. Тут и электр.ключи присобачить можно.


Некоторые абфускаторы так и делают. Только не так приметивно. Щифруют еще метаданные и расщифровывают уже в памити (когда сборка грузится).
... << RSDN@Home 1.1.4 beta 2 >>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: Copmpiling and Decompiling
От: Аноним  
Дата: 25.12.06 13:13
Оценка:
VD>Некоторые абфускаторы так и делают.
Скажите, пожалуйста, какие например?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.