Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/35: Рейтинг темы: голосов - 35, средняя оценка - 4.54
28 / 28 / 11
Регистрация: 08.08.2011
Сообщений: 1,173

Можете взломать мою программку?

04.07.2012, 21:52. Показов 6935. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!

Написал несколько программок на c# и теперь думаю, как бы защитить их код.

Под взломом я понимаю открытие кода или фрагмента кода. Если у вас получится, придется делать какую-то другую защиту.

Добавлено через 5 часов 55 минут
Что, не получается взломать? Видимо, хорошая защита
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.07.2012, 21:52
Ответы с готовыми решениями:

Кому слабо взломать прогу мою?
Просто интересно можно ли ее взломать... Вот файл *.exe вот файл

У меня подозрения что кто-то хочет взломать мою почту
Здравствуйте! Случился инцедент. У меня в фаерфоксе несколько паролей от почты хранятся и я они из базы фаерфокса сами подставляются когда...

Как можно было взломать мою анкету на одном из социальных сайтов ?
Меня интересует как можно было взломать мою анкету на одном из социальных сайтов, чтобы прочесть всю личную переписку. Но еще меня...

19
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
04.07.2012, 22:09
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от Suppir Посмотреть сообщение
Что, не получается взломать?
Вы знаете анекдот про Неуловимого Джо?
15
 Аватар для Петррр
6721 / 3570 / 900
Регистрация: 28.10.2010
Сообщений: 5,937
04.07.2012, 22:12
Form1:
C#
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.IO;
using System.Text;
using System.Windows.Forms;
namespace Поиск_опечаток_в_NSR
{
    public class Form1 : Form
    {
        private delegate void button1_Click(Form1, object sender, EventArgs e);
        private delegate void button2_Click(Form1, object sender, EventArgs e);
        private delegate void button3_Click(Form1, object sender, EventArgs e);
        private delegate void button4_Click(Form1, object sender, EventArgs e);
        private delegate void button5_Click(Form1, object sender, EventArgs e);
        private delegate void dataGridView1_KeyDown(Form1, object sender, KeyEventArgs e);
        private delegate void Form1_FormClosing(Form1, object sender, FormClosingEventArgs e);
        private delegate void dataGridView1_CellContentDoubleClick(Form1, object sender, DataGridViewCellEventArgs e);
        private delegate void button6_Click(Form1, object sender, EventArgs e);
        private delegate void Form1_Load(Form1, object sender, EventArgs e);
        private delegate void Form1_Resize(Form1, object sender, EventArgs e);
        private new delegate void Dispose(Form1, bool disposing);
        private delegate void InitializeComponent(Form1);
        private bool stop;
        private string HomeDir = Path.GetDirectoryName(Application.ExecutablePath);
        private List<string> UserDic = new List<string>();
        private int BadWordsCount;
        private int AllWordsCount;
        private IContainer components;
        private Button button1;
        private DataGridView dataGridView1;
        private Button button2;
        private Button button3;
        private Button button4;
        private Button button5;
        private Label label1;
        private CheckBox checkBox1;
        private CheckBox checkBox2;
        private Label label2;
        private ProgressBar progressBar1;
        private GroupBox groupBox1;
        private GroupBox groupBox2;
        private CheckBox checkBox3;
        private Button button6;
        private DataGridViewTextBoxColumn Column1;
        private DataGridViewTextBoxColumn Column2;
        private DataGridViewTextBoxColumn Column3;
        public Form1()
        {
            this.InitializeComponent();
            this.button2.Enabled = false;
            this.progressBar1.Visible = false;
            this.label1.Text = "Положите несколько NSR в одну директорию с программой и нажмите \"Пуск\"";
            ToolTip toolTip = new ToolTip();
            toolTip.SetToolTip(this.button1, "Проверить все NSR, которые находятся\nв одной директории с программой");
            toolTip.SetToolTip(this.button2, "Остановить проверку");
            toolTip.SetToolTip(this.button3, "Сохранить список опечаток в файл");
            toolTip.SetToolTip(this.button4, "Очистить список с опечатками");
            toolTip.SetToolTip(this.button5, "Информация о программе");
            toolTip.SetToolTip(this.button6, "Полезные советы по работе с программой");
            toolTip.SetToolTip(this.checkBox1, "Пропускать редакции документов");
            toolTip.SetToolTip(this.checkBox2, "В моноширинном тексте из-за переноса\nслов на следующую строку находится\nочень много лишних опечаток");
            toolTip.SetToolTip(this.checkBox3, "Если в список выпадает много фамилий,\nто можно исключать слова с большой буквы");
            if (File.Exists(this.HomeDir + "\\словарь.txt"))
            {
                File.Copy(this.HomeDir + "\\словарь.txt", this.HomeDir + "\\словарь.bak", true);
                StreamReader streamReader = new StreamReader(this.HomeDir + "\\словарь.txt", Encoding.Default);
                string item;
                while ((item = streamReader.ReadLine()) != null)
                {
                    this.UserDic.Add(item);
                }
                streamReader.Close();
            }
        }
        private void button1_Click(object sender, EventArgs e)
        {
            ((Form1.button1_Click)<Module>.Invoke(18))(this, sender, e);
        }
        private void button2_Click(object sender, EventArgs e)
        {
            ((Form1.button2_Click)<Module>.Invoke(19))(this, sender, e);
        }
        private void button3_Click(object sender, EventArgs e)
        {
            ((Form1.button3_Click)<Module>.Invoke(20))(this, sender, e);
        }
        private void button4_Click(object sender, EventArgs e)
        {
            ((Form1.button4_Click)<Module>.Invoke(21))(this, sender, e);
        }
        private void button5_Click(object sender, EventArgs e)
        {
            ((Form1.button5_Click)<Module>.Invoke(22))(this, sender, e);
        }
        private void dataGridView1_KeyDown(object sender, KeyEventArgs e)
        {
            ((Form1.dataGridView1_KeyDown)<Module>.Invoke(23))(this, sender, e);
        }
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            ((Form1.Form1_FormClosing)<Module>.Invoke(24))(this, sender, e);
        }
        private void dataGridView1_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            ((Form1.dataGridView1_CellContentDoubleClick)<Module>.Invoke(25))(this, sender, e);
        }
        private void button6_Click(object sender, EventArgs e)
        {
            ((Form1.button6_Click)<Module>.Invoke(26))(this, sender, e);
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            ((Form1.Form1_Load)<Module>.Invoke(27))(this, sender, e);
        }
        private void Form1_Resize(object sender, EventArgs e)
        {
            ((Form1.Form1_Resize)<Module>.Invoke(28))(this, sender, e);
        }
        protected override void Dispose(bool disposing)
        {
            ((Form1.Dispose)<Module>.Invoke(29))(this, disposing);
        }
        private void InitializeComponent()
        {
            ((Form1.InitializeComponent)<Module>.Invoke(30))(this);
        }
    }
}
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
05.07.2012, 03:49
Лучший ответ Сообщение было отмечено как решение

Решение

Suppir,
Особенности языка

- Компиляция в промежуточный язык.
- Достаточно низкий порог вхождения. Человеку, обученному C++ и тем более имеющему опыт с Java, освоить язык для полноценного его использования не составит труда, а то и вовсе не потребуется.
- НИКАКАЯ защита кода. Если программа на С++ поддаётся декомпиляции только при глубоких познаниях в (диз-)ассемблере и Дао, то в C# исходный код программы легко и просто получается программками типа Reflector в доли секунды и декомпилируется без ошибок вплоть до названия переменных. Полученная декомпиляция отличается от авторской разве что отсутствием комментариев — такой вот Open Source поневоле. Единственная защита — сторонние программы-обфускаторы, знатно унавоживающие код бесполезными инструкциями, после чего рабочий исходник компилируется в тормозное г**но, но абсолютно не читабелен и выглядит как г**но же.
3
215 / 215 / 20
Регистрация: 18.05.2010
Сообщений: 865
05.07.2012, 12:04
C# после компиляции превращяется в CLR который далек от нативного экзешника. разобраться в CLR не составит большого труда кроме того есть программисты которые отлично знают CLR. Однако существуют так называемые обфускаторы которые просто напрост запутают код. Исходного кода вы все равно получите но только слишком запутанные и не возможно в нем разобраться. И наконец не существует защиты которая не взламывается. Другое дело, тут очень кстати напомнили про анекдот неуловимого джо))) стоит ли игра свеч взламывать программу типа Hello World.
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
05.07.2012, 13:13
Башир, только не CLR (Common Language Runtime), а IL (Intermediate Language) или CIL (Common Intermediate Language).
0
215 / 215 / 20
Регистрация: 18.05.2010
Сообщений: 865
05.07.2012, 23:33
Да верно
0
 Аватар для phoenfix
39 / 39 / 8
Регистрация: 30.04.2012
Сообщений: 128
06.07.2012, 00:56
раньше был xenocoder, вот нормальный, если стоящее приложение, то даже очень опытным придется сильно постараться
0
28 / 28 / 11
Регистрация: 08.08.2011
Сообщений: 1,173
10.07.2012, 11:46  [ТС]
Петррр, вы взломали form1, то там нет никаких функций и алгоритмов.

А сами функции не получается достать?

Добавлено через 1 минуту
Можете взломать функцию, которая здесь исполняется?

C#
1
2
3
4
private void button1_Click(object sender, EventArgs e)
        {
            ((Form1.button1_Click)<Module>.Invoke(18))(this, sender, e);
        }
0
213 / 139 / 8
Регистрация: 18.08.2010
Сообщений: 1,018
10.07.2012, 14:12
Suppir, скорее всего Петррр вам показал лишь кусок кода, как пример того, что "взлом", как вы это называете, осуществляется очень легко. Не думайте, что так тяжело "взломать" всю программу..
0
Почетный модератор
Эксперт .NET
 Аватар для NickoTin
8726 / 3678 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
10.07.2012, 14:16
Suppir, достать можно, нужно разобрать VM ILProtector'а, за просто так я сомневаюсь что это будет кто-то делать но при желании достать код можно Можно его сдампить попробовать...
0
 Аватар для Петррр
6721 / 3570 / 900
Регистрация: 28.10.2010
Сообщений: 5,937
10.07.2012, 14:21
Suppir, вообще не пойму к чему все эти понты. Хотите что бы Вашу программу никто не смог "взломать" пишите на С/С++
0
28 / 28 / 11
Регистрация: 08.08.2011
Сообщений: 1,173
10.07.2012, 16:20  [ТС]
Петррр, Хотите что бы Вашу программу никто не смог "взломать" пишите на С/С++

Да нет. Никаких понтов. Я на c# совсем недавно стал писать, раньше был Perl и AutoIt. На c++ переходить точно времени нет. Хочется на c# подобрать бесплатную защиту, чтобы хотя бы на начальном уровне защищала от обычных программистов (не хакеров). Понятно, что перед серьезным натиском ни одна защита не устоит. Тему можно считать закрытой.

Кстати, на форуме хакеров попросил оценить серьезность такой защиты кода c#, они тоже открыли код Form1, а остальной код не смогли. Но говорят, при желании все возможно сделать. К тому же, когда ilprotector станет популярным, к нему быстро выпустят анпак.

Добавлено через 6 минут
Цитата Сообщение от SSTREGG Посмотреть сообщение
достать можно, нужно разобрать VM ILProtector'а,
там, кстати, написано, что ILProtector "is protected by himself".
0
 Аватар для phoenfix
39 / 39 / 8
Регистрация: 30.04.2012
Сообщений: 128
10.07.2012, 16:21
Цитата Сообщение от Suppir Посмотреть сообщение
Петррр, Хотите что бы Вашу программу никто не смог "взломать" пишите на С/С++

Да нет. Никаких понтов. Я на c# совсем недавно стал писать, раньше был Perl и AutoIt. На c++ переходить точно времени нет. Хочется на c# подобрать бесплатную защиту, чтобы хотя бы на начальном уровне защищала от обычных программистов (не хакеров). Понятно, что перед серьезным натиском ни одна защита не устоит. Тему можно считать закрытой.

Кстати, на форуме хакеров попросил оценить серьезность такой защиты кода c#, они тоже открыли код Form1, а остальной код не смогли. Но говорят, при желании все возможно сделать. К тому же, когда ilprotector станет популярным, к нему быстро выпустят анпак.

Добавлено через 6 минут


там, кстати, написано, что ILProtector "is protected by himself".

я для взлома пользовался программкой, она выдавала почти все, но выдавала естественно не по классам, а только сплошным кодом, поэтому код из других классов просто иногда нужно поискать
0
28 / 28 / 11
Регистрация: 08.08.2011
Сообщений: 1,173
10.07.2012, 16:26  [ТС]
phoenfix, а что за программкой вы пользовались?
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
10.07.2012, 16:43
Петррр, а можешь починить мне утюг?
1
 Аватар для Петррр
6721 / 3570 / 900
Регистрация: 28.10.2010
Сообщений: 5,937
10.07.2012, 17:58
SatanaXIII, без проблем.
1
 Аватар для phoenfix
39 / 39 / 8
Регистрация: 30.04.2012
Сообщений: 128
12.07.2012, 01:22
Цитата Сообщение от Suppir Посмотреть сообщение
phoenfix, а что за программкой вы пользовались?
хз, но последняя была IDA, с помощью нее я разобрал свое приложение "по ниточкам", разбирал так же программку тоже .net, чтобы узнать ip, каюсь

Добавлено через 59 секунд
Цитата Сообщение от SatanaXIII Посмотреть сообщение
Петррр, а можешь починить мне утюг?
Цитата Сообщение от Петррр Посмотреть сообщение
SatanaXIII, без проблем.
о, у меня чайник электрический как раз накрылся =)
0
Почетный модератор
Эксперт .NET
 Аватар для NickoTin
8726 / 3678 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
26.07.2012, 19:29
ILProtector пал...

[код удалён по просьбе ТС]

dе4dоt was used...
2
87 / 73 / 6
Регистрация: 11.09.2011
Сообщений: 118
26.07.2012, 19:40
SSTREGG, очень жаль, я так на него рассчитывал. Расскажите, как вам это удалось?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.07.2012, 19:40
Помогаю со студенческими работами здесь

Как поместить мою программку по "верх" окон ?
Доброго всем времени суток !!! Помогите пожалуйста чайнику ... нужно чтоб моя програмка (окно програмки) распологалось по верх других...

Взломать RSA
Здравствуйте! Помогите пожалуйста решить решить задачку по взлому RSA. У меня имеется открытый ключ (e и n), числа очень большие, так...

Как взломать wi-fi
как взломать wi-fi???Пробовал с помощью программы wifislax 4.4,но не очень умею пользоваться ею и всегда дело не доходит до конца,может кто...

Взломать игру
Простой исполнительный файл написанный на Borland Delphi 4.0 - 5.0. Необходимо обойти регистрацию. &lt; где то тут &gt; Вот ссылка на...

Реально ли взломать Wi-Fi?
я не спрашиваю как взломать вафлю если че , запрещено обсуждение . вот много читал про взлом паролей вайфай и что уйдут годы чтоб...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru