Как достать текст из DLL, созданной на VB6?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Хемуль
Начинающий
Начинающий
 
Сообщения: 22
Зарегистрирован: 29.06.2005 (Ср) 9:32

Как достать текст из DLL, созданной на VB6?

Сообщение Хемуль » 26.07.2005 (Вт) 16:12

В DLL-ке в функциях храню тексты запросов. DLL-ка выполняет запросы и возвращает только результаты. Насколько сложно будет недругам "выковырить" тексты запросов из DLL?

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

Сообщение GSerg » 26.07.2005 (Вт) 16:19

Недруги откроют dll блокнотом, поищут S E L E C T и всё найдут.
Лучше уж запросы хранить в защищённой паролем базе. Например.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Хемуль
Начинающий
Начинающий
 
Сообщения: 22
Зарегистрирован: 29.06.2005 (Ср) 9:32

Сообщение Хемуль » 26.07.2005 (Вт) 16:30

Может я не так открываю? И блокнотом, и с помощью IE (с разными кодировками). Такая чушь - кажется, что ничего нельзя разобрать...

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

Сообщение GSerg » 26.07.2005 (Вт) 16:36

Блокнот писал(а):р@    @ яяяяР@ ь@  и@ яя ѓЂ ? Project1 Form1 d'qј>юЩ’G ЂH*я{'qј>юЩ’G ЂH*яc'qј>юЩ’G ЂH*яz'qј>юЩ’G ЂH*я:O­3™fП· Є `У“Form .=ыьъ h§8 +3qµC:\Program Files\Microsoft Visual Studio\VB98\VB6.OLB VB \@  l@ ¤@ Р"@ 0‚_ @ B S E L E C T * F R O M T a b l e W H E R E f i e l d = 5 VBA6.DLL __vbaFreeStr __vbaStrCopy ф d@ @ °@ Ш  @ –@ @
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Хемуль
Начинающий
Начинающий
 
Сообщения: 22
Зарегистрирован: 29.06.2005 (Ср) 9:32

Сообщение Хемуль » 26.07.2005 (Вт) 16:55

А у меня в тексте запроса много русских букв, поэтому вцелом выглядит так: (можно ли это раскодировать?)

‹Eдj hШ# ЌMФPQї я
‹UА‰Q ‹U?‹Мѓм‰ёё$ ‰Q‹•xя
ѓм SVW‰eфЗEш  ‹E‹Иѓ

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

Сообщение GSerg » 26.07.2005 (Вт) 17:01

Это у тебя блокнот такой...
Хранится всё одинаково.

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

Хемуль
Начинающий
Начинающий
 
Сообщения: 22
Зарегистрирован: 29.06.2005 (Ср) 9:32

Сообщение Хемуль » 26.07.2005 (Вт) 17:04

SELECT есть...А какой блокнот нужен? Чтобы я сам убедился...

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

Сообщение GSerg » 26.07.2005 (Вт) 17:10

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

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

Сообщение Twister » 27.07.2005 (Ср) 6:45

Есть вариант - кодируй текст запроса в программе, например каждый символ увеличивай на 1.

2 GSerg
Недруги откроют dll блокнотом, поищут S E L E C T и всё найдут.
Лучше уж запросы хранить в защищённой паролем базе. Например.

Где-то валялся пример, просто убирающий пароли с MDB 97. Недруги откроют базу и все найдут... :wink:
А я все практикую лечение травами...

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

Сообщение alibek » 27.07.2005 (Ср) 8:21

Павлов Максим писал(а):Есть вариант - кодируй текст запроса в программе, например каждый символ увеличивай на 1.

Вот уж точно бред.

Недруги ничего в базе не найдут, если база будет не локальным MDB, а нормальной СУБД.
Lasciate ogni speranza, voi ch'entrate.

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

Сообщение Twister » 27.07.2005 (Ср) 8:27

2 alibek
Недруги ничего в базе не найдут, если база будет не локальным MDB, а нормальной СУБД.

Знаю. А если MDB?
И не такой уж это и бред...
А я все практикую лечение травами...

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

Сообщение alibek » 27.07.2005 (Ср) 8:29

"Шифровать" запрос? Бред это.
Если хочется скрыть запросы, то используются хранимые процедуры и сохраненные запросы. Если нужно разграничить доступ, то используются СУБД.
Lasciate ogni speranza, voi ch'entrate.

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

Сообщение Twister » 27.07.2005 (Ср) 8:36

Почему бред? Поясни.
Что от этого пострадает и почему это нельзя делать?

Если человеку нужен именно MDB, а не Oracle или Мускул?
А я все практикую лечение травами...

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

Сообщение alibek » 27.07.2005 (Ср) 8:49

Бред потому, что в такой "шифровке" нет смысла.
Такое кодирование вскрывается на раз. Если разработчику нужно обеспечить конфиденциальность содержимого скриптов, то этот метод имеет надежность 0 целых 0 десятых. Это раз. Этот способ будет давать ошибки для символа с кодом 255 (буква "я" кириллическая). Это два. Этот способ сильно затрудник разработчику доработку и отладку программы, если в ней придется разбираться. Это три.
Даже использование нормальных криптоалгоритмов не сильно улучшит ситуацию -- разработчику нужно будет вводить запросы в тексте программы, а значит ему нужно будет вводить криптованный текст. Мало того, что это будет неудобно, так еще совершенно невозможно будет разобраться в таком запросе, если понадобится его проанализировать.

Даже если нужна локальная база (MDB), все-равно лучше хранить запросы в базе и шифровать базу.
Lasciate ogni speranza, voi ch'entrate.

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

Сообщение Twister » 27.07.2005 (Ср) 8:58

2 alibek:
Такое кодирование вскрывается на раз

Это был пример, надо пользовать другие алгоритмы.
Этот способ будет давать ошибки для символа с кодом 255 (буква "я" кириллическая).

Если код символа переводить в Byte, то 254 + 10 = 8, а возвратить символ 8 - 10 = 254.
Даже использование нормальных криптоалгоритмов не сильно улучшит ситуацию -- разработчику нужно будет вводить запросы в тексте программы, а значит ему нужно будет вводить криптованный текст. Мало того, что это будет неудобно, так еще совершенно невозможно будет разобраться в таком запросе, если понадобится его проанализировать.

Посмотреть на запрос дело одной функции: MsgBox (Decrypt(strQuery))
А я все практикую лечение травами...

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

Сообщение Twister » 27.07.2005 (Ср) 9:00

А шифрование базы замедляет работу, как минимум, процентов на 40!!!
А я все практикую лечение травами...

Хемуль
Начинающий
Начинающий
 
Сообщения: 22
Зарегистрирован: 29.06.2005 (Ср) 9:32

Сообщение Хемуль » 27.07.2005 (Ср) 10:02

Огромная просьба! Если кому не трудно - посмотрите блокнотом http://www.snif.ru/Test.dll (30Кб)
Может у вас блокноты волшебные... Я ничего там конструктивного не вижу.... Например, в исходном тексте кода есть слова: EvalExpr,RecordSet,ПолучитьРезультатыВ_ТЗ,СоздатьОбъект

Буду признателен если вы там увидите или не увидите эти слова и скажете мне.

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

Сообщение Twister » 27.07.2005 (Ср) 10:09

У меня XP Prof, я искал слово "select" блокнотом, вордпадом и вордом - ни чего не нашел :!:
А я все практикую лечение травами...

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

Сообщение GSerg » 27.07.2005 (Ср) 10:17

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

Хемуль
Начинающий
Начинающий
 
Сообщения: 22
Зарегистрирован: 29.06.2005 (Ср) 9:32

Сообщение Хемуль » 27.07.2005 (Ср) 10:28

Вот фрагмент кода:
RecordSet.Отладка 0
RecordSet.Открыть ("SELECT * FROM $Справочник.Фирмы as Фирмы (nolock)")
Set TZR = V7.EvalExpr("СоздатьОбъект(""ТЗР"")")
RecordSet.ПолучитьРезультатыВ_ТЗ TZR.ПолучитьБазовыйКласс(), 1
Set retVal = TZR

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

Сообщение GSerg » 27.07.2005 (Ср) 10:36

Отладка нашёл.
СоздатьОбъект("ТЭР") нашёл.
Остальное тоже.

Не блокнотом, правда, а dos navigator'ом :) Русский текст в Юникоде, представленный в виде ANSI, выглядит совершенно особенным образом, не узнать невозможно :)

Дизасмить ради получения указателя на строку, передаваемую в RecordSet.Открыть, неохота :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Хемуль
Начинающий
Начинающий
 
Сообщения: 22
Зарегистрирован: 29.06.2005 (Ср) 9:32

Сообщение Хемуль » 27.07.2005 (Ср) 10:53

GSerg, а как думаешь - целиком работающий код можно выудить таким макаром или только огрызки текста?

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

Сообщение GSerg » 27.07.2005 (Ср) 11:13

Целиком работающий код получается путём дизасма.
Вопрос только в том, захочет ли кто-то в нём разбираться.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Хемуль
Начинающий
Начинающий
 
Сообщения: 22
Зарегистрирован: 29.06.2005 (Ср) 9:32

Сообщение Хемуль » 27.07.2005 (Ср) 11:34

Ну вот, кажется я получаю то , о чем грезил :) Мне просто нужно чтобы никто в моё отсутствие не смог вносить изменения в тексты запросов.

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

Сообщение GSerg » 27.07.2005 (Ср) 12:01

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

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

Сообщение Andrey Fedorov » 27.07.2005 (Ср) 12:05

Павлов Максим писал(а):Почему бред? Поясни.
Что от этого пострадает и почему это нельзя делать?


Скажем так - а чего ты этим добъешься?

Если мне нужны данные, то мне хватит таблиц (текст твоих запросов мне не особо и нужен)... То бишь я открываю твою mdb-шку и смотрю непосредственно таблицы - твои SELECT-ы из программы мне даром не нужны.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

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

Сообщение alibek » 27.07.2005 (Ср) 12:10

Andrey Fedorov, не пробовал просмотреть базу 1С работая с DBF-файлами? Вот где геморой :)
Lasciate ogni speranza, voi ch'entrate.

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

Сообщение Twister » 27.07.2005 (Ср) 12:27

2 Andrey Fedorov
Если мне нужны данные, то мне хватит таблиц (текст твоих запросов мне не особо и нужен)... То бишь я открываю твою mdb-шку и смотрю непосредственно таблицы - твои SELECT-ы из программы мне даром не нужны.


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

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

Сообщение Andrey Fedorov » 27.07.2005 (Ср) 12:39

alibek писал(а):Andrey Fedorov, не пробовал просмотреть базу 1С работая с DBF-файлами? Вот где геморой :)


Пробовал.
Но в 99.9% случаев все-же таблицы в базе не такие. :lol:
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

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

Сообщение Andrey Fedorov » 27.07.2005 (Ср) 12:41

Павлов Максим писал(а):Я с тобой полностью согласен, но вопрос стоял именно так: как защитить запросы в экзешнике

Тогда шифруй - хотя бы простейшим способом...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

След.

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

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

Сейчас этот форум просматривают: Google-бот, SemrushBot и гости: 117

    TopList