IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Программирование (https://www.imho.ws/forumdisplay.php?f=40)
-   -   Выдирание стрингов из компилированного exe (https://www.imho.ws/showthread.php?t=98564)

Stasik 12.01.2006 23:24

Выдирание стрингов из компилированного exe
 
Привет, помогите пожалуйста....

ситуация...

Visual Basic 6, в проге есть Стринг, скажем Password = "abcd"; прога написана, компилирую, получаю .ехе... открываю .ехе блокнотом и среди ушлых значков вижу abcd... что делать.... паковать upx так он же под w 2000 темп файлы создаёт да и распаковать можно..... писать функйию криптования? т.е. Password = "asAsafdSAewfasf"; Password = decode(Password) или можно более элегантнее?

Спасибо!

Madness 13.01.2006 00:12

Stasik
Можно старым upx иль есть еще куча пакеров.
А вообще если хочешь как минимум скрыть строку, то да, надо хотя бы какое то подобие функции шифрования написать, а то ведь "глупый" компилятор так пароль открытым текстом и положит.

Stasik 13.01.2006 00:39

упаковщики - не надёжное дело, спасибо

helldomain 13.01.2006 09:23

Stas, a kak naschet heshei tipa MD5 ili SHA1?

Stasik 13.01.2006 20:33

ну закодирую я его в хеш... раскодировать то не смогу... помоему же в M$SQL нельзя хешем логиниться, только голым текстом или?

Naked 13.01.2006 20:41

Цитата:

Stasik:
ну закодирую я его в хеш... раскодировать то не смогу
хех, зачем же проверять пароль именно так: ВВЕДЕННЫЙ ПАРОЛЬ=РЕАЛЬНЫЙ ПАРОЛЬ, можно же ХЭШ(ВВЕДЕННЫЙ ПАРОЛЬ)=ХЭШ(РЕАЛЬНЫЙ ПАРОЛЬ), тогда нужно просто взять хэш от введенного пароля, а если тебе логинится нужно, то зачем проверять сначала на правильность пароля, или я что-то недопонимаю. И еще ХЭШ - не обязательно функция md5 или sha, можно свою написать, которая имеет обратную, или заюзать известную уже rsa или что-нибудь похожее, тогда просто ключик будет там хранится... но думаю до него никто не докопается:)

Stasik 14.01.2006 14:57

да мне проверять не надо.... мне именно логинится надо... буду писать криптование тогда.. upx кстати под 2000/xp же сразу в оперативку разжимает или в темп фаил... просто интересно...

Madness 14.01.2006 18:30

Stasik
А ты не проверяй пароль, а под введенным логинься сразу, ну иль какой-нить примитивный хеш по нему считай (сумму букв иль начало проверяй), а проверяй уже результат логина.
А upx, как и все нормальные пакеры распаковывает в память.

Snick 14.01.2006 20:44

закодируй строку по base64, присвой перемнной, а перед использованием декодируй

Naked 14.01.2006 20:51

Цитата:

Stasik:
да мне проверять не надо
?? а зачем тогда проверяешь, вернее зачем тебе пароль в коде? пусть пользователь вводит пароль, а затем его передавай сразу, чего-то я не пойму...
Цитата:

Snick:
закодируй строку по base64
не знаю, если требуется достаточно хороший уровень безопасности, то это не самое лучшее - строка в base64 достаточно легко определяется... написать rsa элементарно, библиотеку для работы с большими числами берешь на algolist'e, а сам алгоритм - несколько срочек, формулы и все... и раскодировать напрямую тяжело, а ключики можно уже в base64;)

Stasik 14.01.2006 22:08

дик программка в сети, телефонная книга... а sql сервер корпоративний.... понимайете в чем дело? напишу простое декодирование.. спасибо

/7y3uK 15.01.2006 02:42

мда... до чего, однако, дошел прогресс :)
Собсно, есть известный паттерн на этот случай - кто мешает не зашивать в прогу логин с пассом, а, скажем, положить рядом с exe файлом или в известной директории XML файл с настройками коннекта? Это позволит менять без перекомпиляции настройки ДатаСоурс, позволит не зашивать в сам exe приватную инфу, позволит каждому клиенту иметь свой датасоурс... ну много вобщем чего... а в этом XML ты можешь организовать данные как хошь - хоть закодированные - хоть нет...

Stasik 15.01.2006 22:00

проблема в хреновом Novell server... он работает как ФТП сервер, т.е. программа на всех одна...

AGoncharov 20.01.2006 02:25

По-моему можно и "на коленке", т.е. без заморочек с шифрованием решить (от хорошего хакера не спасёт, но от него и так ничего не спасёт :biggrin: ):
1. записать пароль в String по простенькой хитрой схеме (в обратном порядке и со смещением в буквах, относительно позиции самой буквы) - фиг, кто догадается.
2. Записать всякой фигни в ресурсы (строки, диалоги и т.д.) и выдирать пароль по букве - например 1-я буква пароля = 4 буква текста такой-то label на диалоге и т.д.

P.S. А настоящая проблема в том, что очень просто перехватить свой сетевой трафик и там получить пароль в открытом виде, т.к. FTP - очень простой протокол. Вот если бы можно было на Novell поднять серверную часть, которая бы принимала пароль в зашифрованном виде и передавала бы его FTP-серверу, тогда действительно имеет смысл морочится с шифрованием.

Stasik 20.01.2006 08:42

ну а что делать, зашифровал в upx и всё, простой юзер всёравно без софта не расшифрует Ж) а так всё заперто там, софт не пренести с собой

/7y3uK 21.01.2006 03:52

ну так юзайте SSL протокол тогда - кто мешает? везде есть поддержка, в Novell вроде точно есть...
ладно, забейте, мысли вслух просто :)


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

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.