Регистрация Главная Сообщество
Сообщения за день Справка Регистрация
Навигация
Zhyk.org LIVE! Реклама на Zhyk.org Правила Форума Награды и достижения Доска "почета"

Ответ
 
Опции темы
Старый 27.06.2012, 20:02   #1
 Разведчик
Аватар для NorickNew
 
NorickNew никому не известный тип
Регистрация: 27.06.2012
Сообщений: 2
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Защита и взлом програм написанных на c#

Взял с моего блога...
Возможно допустил ошибки, но времени читать то что написал нету, если что-то неправильно поправьте !

Здравствуйте,это моя первая статья для этого блога который я создал 1 день назад =)
Если вы только начинаете изучать c# то она будет для вас полезна!
Представим случай: вы уже изучили половину книги и написали алгоритм программы, ну и выложили программу на форум а тут нашёлся вася которому ваша программа понравилась и он захотел «Сделать» такую, он берёт в руки «открывашку» и вскрывает исходный код!
Потом делает по исходному коду такую-же программу и выкладывает уже на другой форум, и он фактически будет считаться автором!
Сейчас я расскажу вам о взломе и защите !

Для взлома мы можем использывать программы типа- .Net Reflector!
Просто нажимаем в ней- Опен-опен файл- указываем файл-в таблицие находим нашу программу и тыкаем + рядом и находим FORM1 рядом тыкаем + и там будет «Имя_клик_номер» тыкаем на неё и смотрим код этого действия!

Для защиты мы можем пользыватся «Пакером», хоть их и можно спокойно взломать настоящему крякеру,но новичку это усложнит намнооооого жизнь =))))))))
Названия пакера- .Net Reactor!
Все файлы вы можете скачать ниже!
В нём всё очень просто,тыкаем нев проект,находим кнопку опен справа,внизу ставим все галки,слева тыкаем протект и она защищаеться,вам выдаст окно с текстом и слева кнопка «Броувзер» тыкаем и нас перенесёт к проге =)

Можете меня извинить за ошибки,пишу быстро, надо ещё привязку делать =)
Кстати в начала кода можем ещё маленькую криптовчку для защиты добавить:

private string Crypt(string text)
{
string rtnStr = string.Empty;
foreach (char c in text) // Цикл, которым мы и криптуем «текст»
{
rtnStr += (char)((int)c ^ 15); //Число можно взять любое.
}
return rtnStr; //Возвращаем уже закриптованную строку.
}

Вставить после:

public Form1()
{
InitializeComponent();

}

...
[Ссылки могут видеть только зарегистрированные пользователи. ]
Скачать .Net Rector(защита)Рядом есть кряк,сначала прогу устанавливаем а потом файл с названием типа «Регистер»(не помню просо) — [Ссылки могут видеть только зарегистрированные пользователи. ] (пароль: virus-onli.ru)


Скачать .Net Reflector(взлом) — [Ссылки могут видеть только зарегистрированные пользователи. ]

Последний раз редактировалось NorickNew; 27.06.2012 в 20:08.
  Ответить с цитированием
Старый 27.06.2012, 20:40   #2
Читер-спонсор
 Рыцарь-защитник
Аватар для Nickitee
 
Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(
Регистрация: 28.08.2009
Сообщений: 603
Популярность: 19129
Золото Zhyk.Ru: 500
Сказал(а) спасибо: 84
Поблагодарили 602 раз(а) в 321 сообщениях
 
По умолчанию Re: Защита и взлом програм написанных на c#

1. Твою привязку обойдут.
2. .Net Reactor 4.0.0.0 легко снимается.

Добавлено через 5 минут
Для крипта строки я бы посоветовал такой метод:
Код:
        private static byte[] EncryptString(byte[] clearText, byte[] Key, byte[] IV)
        {
            MemoryStream ms = new MemoryStream();
            Rijndael alg = Rijndael.Create();
            alg.Key = Key;
            alg.IV = IV;
            CryptoStream cs = new CryptoStream(ms, alg.CreateEncryptor(), CryptoStreamMode.Write);
            cs.Write(clearText, 0, clearText.Length);
            cs.Close();
            byte[] encryptedData = ms.ToArray();
            return encryptedData;
        }
        public static string EncryptString(string clearText, string Password)
        {
            byte[] clearBytes = System.Text.Encoding.Unicode.GetBytes(clearText);
            PasswordDeriveBytes pdb = new PasswordDeriveBytes(Password, new byte[] { 0x49, 0x76, 0x61, 0x6e, 0x20, 0x4d, 0x65, 0x64, 0x76, 0x65, 0x64, 0x65, 0x76 });
            byte[] encryptedData = EncryptString(clearBytes, pdb.GetBytes(32), pdb.GetBytes(16));
            return Convert.ToBase64String(encryptedData);
        }
        private static byte[] DecryptString(byte[] cipherData, byte[] Key, byte[] IV)
        {
            MemoryStream ms = new MemoryStream();
            Rijndael alg = Rijndael.Create();
            alg.Key = Key;
            alg.IV = IV;
            CryptoStream cs = new CryptoStream(ms, alg.CreateDecryptor(), CryptoStreamMode.Write);
            cs.Write(cipherData, 0, cipherData.Length);
            cs.Close();
            byte[] decryptedData = ms.ToArray();
            return decryptedData;
        }
        public static string DecryptString(string cipherText, string Password)
        {
            byte[] cipherBytes = Convert.FromBase64String(cipherText);
            PasswordDeriveBytes pdb = new PasswordDeriveBytes(Password, new byte[] { 0x49, 0x76, 0x61, 0x6e, 0x20, 0x4d, 0x65, 0x64, 0x76, 0x65, 0x64, 0x65, 0x76 });
            byte[] decryptedData = DecryptString(cipherBytes, pdb.GetBytes(32), pdb.GetBytes(16));
            return System.Text.Encoding.Unicode.GetString(decryptedData);
        }
Как юзать:
Код:
MessageBox.Show(String.Format("This is normal text: {0}, \nThis is crypted text: {1}, \nThis is decrypted text: {2}", "Hello!", EncryptString("Hello!", "123"), DecryptString(EncryptString("Hello!", "123"), "123")));

Последний раз редактировалось Nickitee; 27.06.2012 в 20:45. Причина: Добавлено сообщение
  Ответить с цитированием
Пользователь сказал cпасибо:
Roch (28.06.2012)
Старый 27.06.2012, 21:31   #3
 Разведчик
Аватар для Norick
 
Norick неизвестен в этих краяхNorick неизвестен в этих краях
Регистрация: 03.05.2012
Сообщений: 10
Популярность: -113
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Re: Защита и взлом програм написанных на c#

Цитата:
Сообщение от NickiteeПосмотреть сообщение
1. Твою привязку обойдут.
2. .Net Reactor 4.0.0.0 легко снимается.

Добавлено через 5 минут
Для крипта строки я бы посоветовал такой метод:
Код:
        private static byte[] EncryptString(byte[] clearText, byte[] Key, byte[] IV)
        {
            MemoryStream ms = new MemoryStream();
            Rijndael alg = Rijndael.Create();
            alg.Key = Key;
            alg.IV = IV;
            CryptoStream cs = new CryptoStream(ms, alg.CreateEncryptor(), CryptoStreamMode.Write);
            cs.Write(clearText, 0, clearText.Length);
            cs.Close();
            byte[] encryptedData = ms.ToArray();
            return encryptedData;
        }
        public static string EncryptString(string clearText, string Password)
        {
            byte[] clearBytes = System.Text.Encoding.Unicode.GetBytes(clearText);
            PasswordDeriveBytes pdb = new PasswordDeriveBytes(Password, new byte[] { 0x49, 0x76, 0x61, 0x6e, 0x20, 0x4d, 0x65, 0x64, 0x76, 0x65, 0x64, 0x65, 0x76 });
            byte[] encryptedData = EncryptString(clearBytes, pdb.GetBytes(32), pdb.GetBytes(16));
            return Convert.ToBase64String(encryptedData);
        }
        private static byte[] DecryptString(byte[] cipherData, byte[] Key, byte[] IV)
        {
            MemoryStream ms = new MemoryStream();
            Rijndael alg = Rijndael.Create();
            alg.Key = Key;
            alg.IV = IV;
            CryptoStream cs = new CryptoStream(ms, alg.CreateDecryptor(), CryptoStreamMode.Write);
            cs.Write(cipherData, 0, cipherData.Length);
            cs.Close();
            byte[] decryptedData = ms.ToArray();
            return decryptedData;
        }
        public static string DecryptString(string cipherText, string Password)
        {
            byte[] cipherBytes = Convert.FromBase64String(cipherText);
            PasswordDeriveBytes pdb = new PasswordDeriveBytes(Password, new byte[] { 0x49, 0x76, 0x61, 0x6e, 0x20, 0x4d, 0x65, 0x64, 0x76, 0x65, 0x64, 0x65, 0x76 });
            byte[] decryptedData = DecryptString(cipherBytes, pdb.GetBytes(32), pdb.GetBytes(16));
            return System.Text.Encoding.Unicode.GetString(decryptedData);
        }
Как юзать:
Код:
MessageBox.Show(String.Format("This is normal text: {0}, \nThis is crypted text: {1}, \nThis is decrypted text: {2}", "Hello!", EncryptString("Hello!", "123"), DecryptString(EncryptString("Hello!", "123"), "123")));

ммм...
1.Мою привязку? Я только показал как сгенерировать ключ, а базу можно и негрузитьа поступить по вашему гайду заменив лишь коды генерации ключа
Т.к многие жаловлись что айди железа легко сменить =)
2.Если конечно у вас не "супер-крутой-мега алгоритм" то этот способ сойдёт, т.к открытием занимаются в основном просто те кто нашёл прогу на форуме, а людям со стажем ваша маленькая программа и не нужна, так вы спасёте себя от нубов с рефлекторами =)
Разумеется лучше пользыватся платным пакером, т.к у них хороший алгоритм
Спасибо за криптовку,но у меня есть получше просто выкладывать думаю неправильно(т.к лежало под хайдом на одном форуме)
  Ответить с цитированием
Старый 20.07.2012, 22:11   #4
 Разведчик
Аватар для Gogia
 
Gogia никому не известный тип
Регистрация: 20.07.2012
Сообщений: 2
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Защита и взлом програм написанных на c#

Цитата:
Сообщение от NickiteeПосмотреть сообщение
2. .Net Reactor 4.0.0.0 легко снимается.

Хотелось бы где-нибудь почитать про это. Дайте ссылочку, пожалуйста.
  Ответить с цитированием
Старый 20.07.2012, 23:25   #5
 Старший сержант
Аватар для .AsTex.
 
.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания
Регистрация: 17.04.2010
Сообщений: 200
Популярность: 1972
Сказал(а) спасибо: 95
Поблагодарили 271 раз(а) в 105 сообщениях
 
По умолчанию Re: Защита и взлом програм написанных на c#

Да 97% обфускаторов снимаются дампом.
Сегодня(именно сегодня) искал в гугле ".net rector unpacker" но на ткнулся на анпакер для Smart Assembly, и что в итоге? PBDO бот, все что нужно - взломано
  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Программа] Генератор паролей (защита и взлом в одном литце) dats2 Общение и обсуждение 5 12.03.2011 07:31
[Статья] Защита кода программ написанных на .net witcherD Школа Читера 0 04.08.2010 13:19

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 09:01.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net