Система ключей для программы
| |
Волк-1024 | Дата: Воскресенье, 26.02.2012, 19:48 | Сообщение # 26 |
Авторитетный
Зарегистрирован: 24.07.2011
Группа: Модераторы
Сообщений: 469
Статус: Offline
| sk0rpi0n, Ну как бэ: Code Array1: array[0..4] of string = ('Key1', 'Key2', 'Key3', 'Key4', 'Key5'); и т.д. И без всяких присваиваний. А потом их циклом прокрутить на совпадения.
Если текстовик запихать в ресурсы, то его могут легко отредактировать и тем самым вписать свой пароль с помощью некотрых программ, а их великое множество!.
Pascal, C\C++, Assembler, Python
Сообщение отредактировал Волк-1024 - Воскресенье, 26.02.2012, 19:51 |
|
| |
artemuk | Дата: Понедельник, 27.02.2012, 01:20 | Сообщение # 27 |
Был не раз
Зарегистрирован: 31.05.2010
Группа: Пользователи
Сообщений: 17
Статус: Offline
| Волк-1024, Eсли программу хорошенько не запаковать то пользы тоже будет немного т.к. их можно будет просмотреть через любой отладчик или дизассемблер.
|
|
| |
sk0rpi0n | Дата: Понедельник, 27.02.2012, 13:59 | Сообщение # 28 |
Участник
Зарегистрирован: 28.05.2011
Группа: Пользователи
Сообщений: 65
Статус: Offline
| Quote sk0rpi0n, Ну как бэ: Ох, спасибо, что-то я не додумался... И ещё вопрос, уже оффтоп правда... Я могу продавать программу, которая использует TICQ компонент?
C++ - попса :D
|
|
| |
Волк-1024 | Дата: Понедельник, 27.02.2012, 14:30 | Сообщение # 29 |
Авторитетный
Зарегистрирован: 24.07.2011
Группа: Модераторы
Сообщений: 469
Статус: Offline
| Quote Я могу продавать программу, которая использует TICQ компонент? Смотря, с какой лицензией, распространяется данный компонент.
Pascal, C\C++, Assembler, Python
|
|
| |
dolphin | Дата: Понедельник, 27.02.2012, 20:26 | Сообщение # 30 |
Администратор
Сообщений: 906
Статус: Offline
| Quote (artemuk) Волк-1024, Eсли программу хорошенько не запаковать то пользы тоже будет немного т.к. их можно будет просмотреть через любой отладчик или дизассемблер.
Решается простым шифрованием
Вместо 'key1' - 'шифрованое значение' а потом просто процедура расшифровки('шифрованное значение') : key1 даст нам верные значения
Система: Windows 10 x64, Kali Linux Среды программирования: Delphi 7, Delphi 10.x
Я не профессионал, я всего лишь любитель Я не вредитель, я всего лишь теоретик
|
|
| |
artemuk | Дата: Понедельник, 27.02.2012, 21:56 | Сообщение # 31 |
Был не раз
Зарегистрирован: 31.05.2010
Группа: Пользователи
Сообщений: 17
Статус: Offline
| dolphin, Так уже лучше, хотя это тоже не очень надёжно. P.S. Если программа не расчитана на широкую аудиторию то с такой защитой она имеет неплохие шансы остаться невзломанной
Сообщение отредактировал artemuk - Понедельник, 27.02.2012, 22:27 |
|
| |
Волк-1024 | Дата: Понедельник, 27.02.2012, 23:21 | Сообщение # 32 |
Авторитетный
Зарегистрирован: 24.07.2011
Группа: Модераторы
Сообщений: 469
Статус: Offline
| sk0rpi0n, Что за программа пишется?
Вот XOR функция шифровки и дешифровки. На ассемблере правда, но от того она и быстрее:
(с) Не помню где брал
Вот на Делфи:
Pascal, C\C++, Assembler, Python
Сообщение отредактировал Волк-1024 - Понедельник, 27.02.2012, 23:37 |
|
| |
sk0rpi0n | Дата: Вторник, 28.02.2012, 13:12 | Сообщение # 33 |
Участник
Зарегистрирован: 28.05.2011
Группа: Пользователи
Сообщений: 65
Статус: Offline
| Quote Что за программа пишется? Программа удаленного управления компьютером. На подобие ADicq с этого сайта, но без всяких функций скрытия от пользователя, а для управления именно своим компом. Делаю с нуля, не считая TIcq компонента, да и особо продавать не собираюсь, просто хочу опробовать, как работает digiseller, заодно и сделать себе систему ключей на будущее, или хотя бы научиться делать... Куда сувать-то?
C++ - попса :D
Сообщение отредактировал sk0rpi0n - Вторник, 28.02.2012, 13:12 |
|
| |
GReIIIHuK | Дата: Вторник, 28.02.2012, 15:40 | Сообщение # 34 |
Участник
Зарегистрирован: 15.05.2011
Группа: Пользователи
Сообщений: 98
Статус: Offline
| В функцию. И из нее уже использовать. Вот можно примерно так: Code function TPasswordDlg.xortext(text:string):string; var key, longkey : string; i : integer; toto: char; begin key:='da'; //ключ for i := 0 to (length(text) div length(key)) do longkey := longkey + key; for i := 1 to length(text) do begin toto := chr((ord(text[i]) XOR ord(longkey[i]))); result := result + toto; end; end; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Проверка ключа: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - var pass:string; begin pass:=xortext('3g98OrbitPlanet6');
if xortext(edit1.Text) = pass then
До смыслишь сам уже.
Skype:"greiiihuk." Да, я преступник. Мое преступление — любопытство. Быть может умру я, умрут многие, но идея останется жить навсегда. Я работаю не только за спасибо.(+) ©
Сообщение отредактировал GReIIIHuK - Вторник, 28.02.2012, 15:41 |
|
| |
dolphin | Дата: Вторник, 28.02.2012, 17:24 | Сообщение # 35 |
Администратор
Сообщений: 906
Статус: Offline
| ОФФТОП
Система: Windows 10 x64, Kali Linux Среды программирования: Delphi 7, Delphi 10.x
Я не профессионал, я всего лишь любитель Я не вредитель, я всего лишь теоретик
|
|
| |
sk0rpi0n | Дата: Вторник, 28.02.2012, 17:43 | Сообщение # 36 |
Участник
Зарегистрирован: 28.05.2011
Группа: Пользователи
Сообщений: 65
Статус: Offline
|
C++ - попса :D
Сообщение отредактировал sk0rpi0n - Вторник, 28.02.2012, 17:44 |
|
| |
sk0rpi0n | Дата: Вторник, 28.02.2012, 20:12 | Сообщение # 37 |
Участник
Зарегистрирован: 28.05.2011
Группа: Пользователи
Сообщений: 65
Статус: Offline
| Фух, долго мучался, но в итоге сделал. Делал без всякой шифровки, на неё терпения у меня сегодня бы не хватило. Не знаю, на сколько надёжно получилось, но ресхаком не достать.
C++ - попса :D
|
|
| |
GReIIIHuK | Дата: Вторник, 28.02.2012, 20:35 | Сообщение # 38 |
Участник
Зарегистрирован: 15.05.2011
Группа: Пользователи
Сообщений: 98
Статус: Offline
| Готовую поделку дашь? Хочу полюбоваться (Не исходник, а сам .exe)
Skype:"greiiihuk." Да, я преступник. Мое преступление — любопытство. Быть может умру я, умрут многие, но идея останется жить навсегда. Я работаю не только за спасибо.(+) ©
Сообщение отредактировал GReIIIHuK - Вторник, 28.02.2012, 20:35 |
|
| |
sk0rpi0n | Дата: Вторник, 28.02.2012, 21:30 | Сообщение # 39 |
Участник
Зарегистрирован: 28.05.2011
Группа: Пользователи
Сообщений: 65
Статус: Offline
| Quote Готовую поделку дашь? Хочу полюбоваться smile (Не исходник, а сам .exe) Доступно только для пользователей
C++ - попса :D
Сообщение отредактировал sk0rpi0n - Вторник, 28.02.2012, 21:30 |
|
| |
Волк-1024 | Дата: Вторник, 28.02.2012, 23:35 | Сообщение # 40 |
Авторитетный
Зарегистрирован: 24.07.2011
Группа: Модераторы
Сообщений: 469
Статус: Offline
| sk0rpi0n, Есть некоторые замечания. В программе зашито 14 паролей. Так? Почему она даже при вводе правильного пароля перебирает их до конца? И при закрытии окна активации на некоторое мгновение можно увидеть главное окно программы. Не порядок + Прога палица 3-мя антивирусами: Nod'ом и 2-мя мелкими.
Quote ключики пожалуйста не постить
И без ключей вышло
Quote но ресхаком не достать. Достать.
Quote а мне сказать, как можно защитить Для начала в твоей программе идет прямое обращение к памяти т.е например Code mov ebx, dword ptr [00XXXXXX] где xxx - адрес в памяти т.е Т.е нужно этого избегать. Правда, на делфи без асм вставок это почти невозможно. Далее. Сравнение паролей банально: типо Code if key[N]=InputKey then ... или как оно есть в программе: Code MOV EAX, DWORD PTR SS:[EBP+1C] MOV EDX,DWORD PTR DS:[EBX] CALL 004049CC в совокупности с Нужно более ухищренно. С шифрованием не факт что поможет. Ибо пока те недостатки не будут устранены, толку будет 0.
Вот уезвимые адреса в памяти, которые защиту сводят на нет: Доступно только для пользователей
----------------------------------------------------------- *Взломанная версия удалена по просьбе автора.
Pascal, C\C++, Assembler, Python
Сообщение отредактировал Волк-1024 - Среда, 29.02.2012, 14:47 |
|
| |
sk0rpi0n | Дата: Среда, 29.02.2012, 12:49 | Сообщение # 41 |
Участник
Зарегистрирован: 28.05.2011
Группа: Пользователи
Сообщений: 65
Статус: Offline
| Quote В программе зашито 14 паролей. Так? 10. Quote Почему она даже при вводе правильного пароля перебирает их до конца? smile Потому что их пока мало, в следующей версии я это уберу, в этой я просто был жутко уставший и под конец мало соображал. Quote И при закрытии окна активации на некоторое мгновение можно увидеть главное окно программы. Не порядок smile Это да, но с формами я вообще ничего не понимаю, они какие-то забагованные в самом delphi. Почему например форму нельзя сразу сделать и активной и появляющейся при старте? Бред. В общем, попробую исправить. Ну возможно, я просто быстро попробовал, а т.к. был уставший, то не особо заморачивался.
Quote Просто нажать "Активировать программу" Okay Прошу удалить ссылку, а то не хочу, чтобы взломом поживился кто-то ещё .
Quote Вот уезвимые адреса в памяти, которые защиту сводят на нет: Жаль, что в этом я пока не особо разбираюсь, но обещаю научиться!
C++ - попса :D
Сообщение отредактировал sk0rpi0n - Среда, 29.02.2012, 12:50 |
|
| |
Волк-1024 | Дата: Среда, 29.02.2012, 15:06 | Сообщение # 42 |
Авторитетный
Зарегистрирован: 24.07.2011
Группа: Модераторы
Сообщений: 469
Статус: Offline
| ЫыЫыЫ А программа перебирет ключи от 14 до 0 Вот такая Делфя
Quote Прошу удалить ссылку, а то не хочу, чтобы взломом поживился кто-то ещё . Удалил.
Quote В общем, попробую исправить. Посмотри *.dpr файл. Походу дело в нём.
Pascal, C\C++, Assembler, Python
|
|
| |
sk0rpi0n | Дата: Среда, 29.02.2012, 15:59 | Сообщение # 43 |
Участник
Зарегистрирован: 28.05.2011
Группа: Пользователи
Сообщений: 65
Статус: Offline
| Quote Посмотри *.dpr файл. Походу дело в нём. Пробовал вообще основной формой делать форму активации и менял весь код проверки, но вылазит ошибка что-то типа Error: s%ka nelza tak delat ye#a, в общем не вышло.
C++ - попса :D
Сообщение отредактировал sk0rpi0n - Среда, 29.02.2012, 15:59 |
|
| |
GReIIIHuK | Дата: Среда, 29.02.2012, 16:29 | Сообщение # 44 |
Участник
Зарегистрирован: 15.05.2011
Группа: Пользователи
Сообщений: 98
Статус: Offline
| Блин, я опоздал У меня НОД не пропустил ее даже. Поэтому мне даже добавить нечего, ВОЛК все расписал)
Skype:"greiiihuk." Да, я преступник. Мое преступление — любопытство. Быть может умру я, умрут многие, но идея останется жить навсегда. Я работаю не только за спасибо.(+) ©
|
|
| |
Волк-1024 | Дата: Среда, 29.02.2012, 16:37 | Сообщение # 45 |
Авторитетный
Зарегистрирован: 24.07.2011
Группа: Модераторы
Сообщений: 469
Статус: Offline
| GReIIIHuK, Теперь пойду опробую новую версию ICQ бэкдора от Dolphin'а. Может что путное и выйдет Всё равно мне нехрен делать
Pascal, C\C++, Assembler, Python
|
|
| |
dolphin | Дата: Среда, 29.02.2012, 18:10 | Сообщение # 46 |
Администратор
Сообщений: 906
Статус: Offline
| Ок. там я попробовал внедрить некоторые элементы защиты о которых говорилось выше, будет интересно посмотреть что из этого вышло.
Система: Windows 10 x64, Kali Linux Среды программирования: Delphi 7, Delphi 10.x
Я не профессионал, я всего лишь любитель Я не вредитель, я всего лишь теоретик
|
|
| |
Волк-1024 | Дата: Среда, 29.02.2012, 22:19 | Сообщение # 47 |
Авторитетный
Зарегистрирован: 24.07.2011
Группа: Модераторы
Сообщений: 469
Статус: Offline
| И так что я узнал на этот момент:
1) Прога использует для генерации Id'а информацию о видеокарте и еще чего-то там... 2) Введенный пароль записывается о оверлей проги и после перезапуска своей копии считывает его. 3) Лезет в инет и считывает текстовой файл adicq.txt с данного сайта. 4) Генерерует то-ли хеши из данных, то-ли непойми что. Типо этого: Code D41D8CD98F00B204E9800998ECF8427E 613F4CF734ABDE5D29A7EADB8958CD91 D98F37F4055C9689A9C5A15FB12BFC4F 257AF99D1BA923AF634B7B3BA22EF123 43F5AB438373E8F528DC08AD34D9621F 5) Найден предпологаемый адрес проверки ключа (возможно их больше): (точно не уверен, но там очень много дополнительных проверок) 6) Почему-то время от времени лезет в гугл... 7) После распаковки (FSG) прога весит. АЖ 2 c копейками метра! Я хз что там для такого веса... 8) Пытается найти хэндл отладчика OllyDbg (антиотладка). И причем всегда возвращает 0 (FALSE) т.к FindWindows не находит хендл. 9) Востановленны названия всех модулей, процедур в модулях и их адреса. Востановлен *.dfm файл. и т.д
Фуух. Дальше я очень устал ибо там килотонны кода. Продолжу как-нить в другой раз...
Pascal, C\C++, Assembler, Python
Сообщение отредактировал Волк-1024 - Среда, 29.02.2012, 22:29 |
|
| |
sk0rpi0n | Дата: Суббота, 10.03.2012, 18:45 | Сообщение # 48 |
Участник
Зарегистрирован: 28.05.2011
Группа: Пользователи
Сообщений: 65
Статус: Offline
| Quote Нужно более ухищренно. А как? Я долго пытался, но ничего ухищреннее не придумал.
C++ - попса :D
|
|
| |
XSPY | Дата: Воскресенье, 11.03.2012, 14:29 | Сообщение # 49 |
Продвинутый
Зарегистрирован: 28.01.2010
Группа: Пользователи
Сообщений: 263
Статус: Offline
| хмм,не знаю получиться у вас или нет,но я вот со своими друзьями-реверсерами такую защиту на днях взломал,и не одну... суть была просто не в том,что кейген или крак писать,суть просто в изменении например 1 флага проверки,и вся проверка летит в пустоту... идею уловили?
Я не крекер,а программист! Я не преступник-я свободный человек! Лучше один раз накодить,чем сто раз качать билды!
|
|
| |
sk0rpi0n | Дата: Воскресенье, 11.03.2012, 16:48 | Сообщение # 50 |
Участник
Зарегистрирован: 28.05.2011
Группа: Пользователи
Сообщений: 65
Статус: Offline
| Quote хмм,не знаю получиться у вас или нет,но я вот со своими друзьями-реверсерами такую защиту на днях взломал,и не одну... суть была просто не в том,что кейген или крак писать,суть просто в изменении например 1 флага проверки,и вся проверка летит в пустоту... идею уловили? happy У самого мысль про такую возможность взлома не раз возникала, но как тогда защитить-то?
C++ - попса :D
|
|
| |
|