Сохранение имён контролов в исполняемом модуле

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Sun07
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 355
Зарегистрирован: 17.02.2006 (Пт) 21:27

Сохранение имён контролов в исполняемом модуле

Сообщение Sun07 » 27.06.2006 (Вт) 13:02

Скажите пожалуйста, как можно сделать так, чтобы имена контролов в исполняемом модуле (exe) не были такими, как в исходнике. Ведь это повышает читабельность кода для крекера, а мне не удобно называть контролы непонятными именами. Нужно, чтобы имена заменялись на что-то вроде X00001, X00002 и т.д. Можно это сделать средствами самого компилятора или надо писать прогу преобразования имён? Почему компилятор сохраняет имена? Слава богу, имена переменных и констант в exe не светятся.

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 27.06.2006 (Вт) 13:12

Имхо, ерундой маешься.
Быть... или не быть. Вот. В чём вопрос?

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 27.06.2006 (Вт) 18:20

имена контролов в исполняемом модуле (exe) не были такими, как в исходнике
Почему компилятор сохраняет имена?
Скажи мне, где же они сохраняются? А самое главное, как это может облегчить работу крякеру?
А я все практикую лечение травами...

Sun07
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 355
Зарегистрирован: 17.02.2006 (Пт) 21:27

Сообщение Sun07 » 27.06.2006 (Вт) 18:28

Hу, если я обзываю текстбокс txtPwd, то в ехе это имя сохраняется, и это название вам ни о чём не говорит?

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 27.06.2006 (Вт) 18:30

Сохраняется просто строка. Ни какой пользы крякеру от этого нет.
А я все практикую лечение травами...

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 27.06.2006 (Вт) 18:32

Ну сделай ты отдельно txtPwd, а пароль храни в другом месте.
Если так боишься, что сам факт наличия в коде программы строки txtPwd автоматически делает её уязвимой к взлому.
По-моему, так это блажь.
Изображение

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 27.06.2006 (Вт) 18:34

tyomitch
Интересно, а если прямо в готовом EXE поменять эту строку, к примеру, на "123456", EXE работать будет? Кажись должен...
А я все практикую лечение травами...

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 27.06.2006 (Вт) 18:47

А какой смысл её менять?
Как будто бы злой хакер без этой строки не сможет понять, в каком из текстбоксов пароль.
Изображение

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 27.06.2006 (Вт) 18:50

А какой смысл её менять?
Для успокоения Sun07... :) Но вопрос в силе, ехе будет работать?
А я все практикую лечение травами...

Sun07
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 355
Зарегистрирован: 17.02.2006 (Пт) 21:27

Сообщение Sun07 » 27.06.2006 (Вт) 22:50

Twister писал(а):Сохраняется просто строка. Ни какой пользы крякеру от этого нет.
Для чего она сохраняется? Разве после декомпиляции парольному текстбоксу не присвоится это имя? Как-то легкомысленно вы к этому отнеслись. Это просто я привёл пример. Парольного текстбокса у меня и нету. Просто когда я даю названия контролам, я вижу, что осмысленные названия могут помочь крэкеру, они дают ему информацию о их назначении. А давать неосмысленные названия самому накладно. Итак, кто-то мне даст полезный совет?

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 27.06.2006 (Вт) 23:26

Какая, к чёрту, декомпиляция?
Ты хоть примерно представляешь, о чём говоришь? :-?
Изображение

Sun07
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 355
Зарегистрирован: 17.02.2006 (Пт) 21:27

Сообщение Sun07 » 28.06.2006 (Ср) 0:17

я так называю перевод из кода exe в код Бейсика

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 28.06.2006 (Ср) 0:38

Такое невозможно.
Изображение

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 28.06.2006 (Ср) 7:34

Если очент хочется заниматься глупостями, то ищи по строке "обсфукаторы".
Lasciate ogni speranza, voi ch'entrate.

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 28.06.2006 (Ср) 8:18

Twister писал(а):
А какой смысл её менять?
Для успокоения Sun07... :) Но вопрос в силе, ехе будет работать?

Как минимум в одном из случаев - нет.
Если не ошибусь, имена контролов используются при "общении" с формой по IDispatch соотвтественно если таковое общение происходит, то изменение имен приведет к неработоспособности программы:)
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Сообщение jangle » 28.06.2006 (Ср) 9:05

Sun07 - пиши свой обсфукатор, который будет менять в *.frm файлах все имена контролов на бесмысленные. Хотя это мало поможет. VB EXE очень хорошо подходят для реверсинга, даже после компиляции в Native Code можно с 90% вероятностью восстановить исходный код. Рекомендую поискать на WASM.RU декомпиляторы VB экзешников

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 28.06.2006 (Ср) 9:09

jangle, на этом форуме уже тестировались какие-то "декомпиляторы", и ни один ничего путного сделать не смог.
Если утверждаешь противное -- то хочется конкретных примеров, а не только слухов и эмоций.
Изображение

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Сообщение jangle » 28.06.2006 (Ср) 9:30

tyomitch - Общедоступные декомпиляторы действительно не восстанавливают исходный код. Они выдают только структуру, названия форм, контролов, классов, ассемблерный код. Связка такого декомпилятора + OllyDbg позволяет колоть защиту VB программ как орехи. Кроме этого существуют "приватные" тулзы, ты никогда не найдешь их в сети. Их пишут настоящие "монстры" крекинга, для конвеерного взлома VB софта, они восстанавливают так называемый "VB псевдокод", некоторое ограниченное подмножество Basic языка с конкретной привязкой к адресам памяти. Читая такой псевдокод, ты сразу видешь защитный механизм, и адреса где надо его патчить. В свое время, один из "васмовцев" развлекал там народ, ломая мои хитроумные VB крякмисы буквально за 5-10 мин, при этом выкладывая алгоритм на VB! Он как раз использовал такой "приватный" декомпилятор, на предложение продать сие чудо за $$$ он ответил твердым отказом, и его понять можно, обладая этим чудным инструментом, он заработтает на взломах гораздо больше..

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 28.06.2006 (Ср) 9:47

jangle
Я думаю, твои крякмисы можно было сломать без всяких чудных инструментов.
См., к примеру, http://bbs.vbstreets.ru/viewtopic.php?p=6585698#6585698
Там тоже минут 5-10 было, несмотря на "Модифицированый алгоритм КС Флетчера + MD5 + String Reversing + Алгорит раскидования + много чего".

Отказался продать, видимо, ввиду отсутствия такового.

Так реальные свидетельства есть-то?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Сообщение jangle » 28.06.2006 (Ср) 10:12

Я думаю, твои крякмисы можно было сломать без всяких чудных инструментов.


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

p.s. Кстати, я обладатель диплома за первое место в "Конкурсе защиты программ от взлома", на SOURCES.RU за 2005 год. Мой алгоритм защиты сломать так и не смогли :oops:

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 28.06.2006 (Ср) 10:16

Что понимается под "нормальной защитой"?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Сообщение jangle » 28.06.2006 (Ср) 10:33

Что понимается под "нормальной защитой"?


Динамическая рашифровка собственного кода "на лету" + защита от отладки и сдампливания

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 28.06.2006 (Ср) 10:55

jangle писал(а):p.s. Кстати, я обладатель диплома за первое место в "Конкурсе защиты программ от взлома", на SOURCES.RU за 2005 год. Мой алгоритм защиты сломать так и не смогли :oops:

Вспоминается рассказ про Неуловимого Джо...
Lasciate ogni speranza, voi ch'entrate.

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Сообщение jangle » 28.06.2006 (Ср) 11:13

Вспоминается рассказ про Неуловимого Джо...


Может сам попробуешь взломать мою защиту? Только боюсь зубки обломаешь! :D :wink:

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 28.06.2006 (Ср) 12:20

tyomitch писал(а):jangle, на этом форуме уже тестировались какие-то "декомпиляторы", и ни один ничего путного сделать не смог.
Если утверждаешь противное -- то хочется конкретных примеров, а не только слухов и эмоций.
http://www.vb-decompiler.net/index.php?p=Download
Восстанавливает *.vbp, дизайн форм, юзерконтролов, названия классов, public и friend методов и свойств, обработчиков событий. Native дезассемблирует (кроме кода в модулях), P-code декомпилирует в... не знаю как это назвать. Наверное исходник P-кода :)
Вот так выглядят оригинал и соответственно декомпилированный пикод.

Код: Выделить всё
Private Sub cmdCancel_Click()
    Unload Me
End Sub

  loc_478B4C: ILdRf arg_8
  loc_478B4F: FStAdNoPop
  loc_478B53: ImpAdLdRf unk_404A51
  loc_478B56: NewIfNullPr
  loc_478B59: GetTypeInfo
  loc_478B5E: FFree1Ad var_88
  loc_478B61: ExitProcHresult


Конечно не то, что ты имел ввиду, но этот - единственный из трёх, опробованных мной, который хотя бы заработал. Судя по скриншотам с сайта, Pro версия может декомпилировать пикод и в читаемый исходник.
Вложения
decomp.GIF
Скриншот
(74.14 Кб) Скачиваний: 25
Лучший способ понять что-то самому — объяснить это другому.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 28.06.2006 (Ср) 14:01

jangle писал(а):Кроме этого существуют "приватные" тулзы, ты никогда не найдешь их в сети. Их пишут настоящие "монстры" крекинга, для конвеерного взлома VB софта, они восстанавливают так называемый "VB псевдокод", некоторое ограниченное подмножество Basic языка с конкретной привязкой к адресам памяти. Читая такой псевдокод, ты сразу видешь защитный механизм, и адреса где надо его патчить.

Вот о том и речь, что о "декомпиляторах в исходный код" одни только слухи.
А в том, что прогу можно дизассемблировать, VB ничем не отличается от остальных языков.
Изображение

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 28.06.2006 (Ср) 17:38

ANDLL писал(а):
Twister писал(а):Но вопрос в силе, ехе будет работать?

Как минимум в одном из случаев - нет.
Если не ошибусь, имена контролов используются при "общении" с формой по IDispatch соотвтественно если таковое общение происходит, то изменение имен приведет к неработоспособности программы:)

В подавляющем большинстве случаев даже при общении через IDispatch ничего от изменения имени в exe не сломается.
Может сломаться, только если в коде были извраты типа Form.Controls("Text" & i).Text
Изображение

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 29.06.2006 (Чт) 11:05

Тут все ведь дюже примитивно:

Если охота заниматься такой ерундой, то просто добавляй на пустую форму контролы динамически - через Controls.Add. При этом и имена им можно так-же динамически задавать, полной абракадаброй ибо программа отлично может обойтись и без имен.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 25

    TopList  
cron