Суббота, 20.04.2024, 00:58 Приветствую вас Гость | Группа "Гости" 
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Модератор форума: xXxSh@dowxXx, Anton93, Волк-1024  
delphicode » Delphi » Вопросы по Delphi » Система ключей для программы
Система ключей для программы
Волк-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. Если программа не расчитана на широкую аудиторию то с такой защитой она имеет неплохие шансы остаться невзломанной smile


Сообщение отредактировал artemuk - Понедельник, 27.02.2012, 22:27
 
Волк-1024Дата: Понедельник, 27.02.2012, 23:21 | Сообщение # 32
Авторитетный
Зарегистрирован: 24.07.2011
Группа: Модераторы
Сообщений: 469
Статус: Offline
sk0rpi0n, Что за программа пишется?

Вот XOR функция шифровки и дешифровки. На ассемблере правда, но от того она и быстрее:


(с) Не помню где брал smile

Вот на Делфи:



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, заодно и сделать себе систему ключей на будущее, или хотя бы научиться делать...
Quote
Вот на Делфи:

Куда сувать-то? biggrin


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

biggrin


C++ - попса :D

Сообщение отредактировал sk0rpi0n - Вторник, 28.02.2012, 17:44
 
sk0rpi0nДата: Вторник, 28.02.2012, 20:12 | Сообщение # 37
Участник
Зарегистрирован: 28.05.2011
Группа: Пользователи
Сообщений: 65
Статус: Offline
Фух, долго мучался, но в итоге сделал. Делал без всякой шифровки, на неё терпения у меня сегодня бы не хватило. Не знаю, на сколько надёжно получилось, но ресхаком не достать. lol

C++ - попса :D
 
GReIIIHuKДата: Вторник, 28.02.2012, 20:35 | Сообщение # 38
Участник
Зарегистрирован: 15.05.2011
Группа: Пользователи
Сообщений: 98
Статус: Offline
Готовую поделку дашь? Хочу полюбоваться smile
(Не исходник, а сам .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 паролей. Так? Почему она даже при вводе правильного пароля перебирает их до конца? smile
И при закрытии окна активации на некоторое мгновение можно увидеть главное окно программы. Не порядок smile
+ Прога палица 3-мя антивирусами: Nod'ом и 2-мя мелкими.

Quote
ключики пожалуйста не постить


И без ключей вышло smile

Quote
но ресхаком не достать.

Достать. biggrin

Quote
а мне сказать, как можно защитить

Для начала в твоей программе идет прямое обращение к памяти т.е например
Code
mov ebx, dword ptr [00XXXXXX] где xxx - адрес в памяти
т.е
Code
CheckKey:=Key[n]
Т.е нужно этого избегать. Правда, на делфи без асм вставок это почти невозможно. Далее. Сравнение паролей банально: типо
Code
if key[N]=InputKey then ...
или как оно есть в программе:
Code
MOV EAX, DWORD PTR SS:[EBP+1C]
MOV EDX,DWORD PTR DS:[EBX]
CALL 004049CC
в совокупности с
Code
je/jne 00XXXXXX
Нужно более ухищренно.
С шифрованием не факт что поможет. Ибо пока те недостатки не будут устранены, толку будет 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
Достать. biggrin

Ну возможно, я просто быстро попробовал, а т.к. был уставший, то не особо заморачивался.

Quote

Просто нажать "Активировать программу"

Okay biggrin
Прошу удалить ссылку, а то не хочу, чтобы взломом поживился кто-то ещё biggrin .

Quote
Вот уезвимые адреса в памяти, которые защиту сводят на нет:

Жаль, что в этом я пока не особо разбираюсь, но обещаю научиться! happy


C++ - попса :D

Сообщение отредактировал sk0rpi0n - Среда, 29.02.2012, 12:50
 
Волк-1024Дата: Среда, 29.02.2012, 15:06 | Сообщение # 42
Авторитетный
Зарегистрирован: 24.07.2011
Группа: Модераторы
Сообщений: 469
Статус: Offline
Quote
10.
ЫыЫыЫ biggrin А программа перебирет ключи от 14 до 0 Вот такая Делфя biggrin

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, в общем не вышло. sad


C++ - попса :D

Сообщение отредактировал sk0rpi0n - Среда, 29.02.2012, 15:59
 
GReIIIHuKДата: Среда, 29.02.2012, 16:29 | Сообщение # 44
Участник
Зарегистрирован: 15.05.2011
Группа: Пользователи
Сообщений: 98
Статус: Offline
Блин, я опоздал sad
У меня НОД не пропустил ее даже.
Поэтому мне даже добавить нечего, ВОЛК все расписал)


Skype:"greiiihuk."


Да, я преступник. Мое преступление — любопытство.
Быть может умру я, умрут многие, но идея останется жить навсегда.
Я работаю не только за спасибо.(+) ©
 
Волк-1024Дата: Среда, 29.02.2012, 16:37 | Сообщение # 45
Авторитетный
Зарегистрирован: 24.07.2011
Группа: Модераторы
Сообщений: 469
Статус: Offline
GReIIIHuK, biggrin biggrin biggrin
Теперь пойду опробую новую версию ICQ бэкдора от Dolphin'а. Может что путное и выйдет biggrin Всё равно мне нехрен делать biggrin


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) Найден предпологаемый адрес проверки ключа (возможно их больше):
Code
00404A94H
(точно не уверен, но там очень много дополнительных проверок)
6) Почему-то время от времени лезет в гугл...
7) После распаковки (FSG) прога весит. АЖ 2 c копейками метра! wacko Я хз что там для такого веса...
8) Пытается найти хэндл отладчика OllyDbg (антиотладка). И причем всегда возвращает 0 (FALSE) т.к FindWindows не находит хендл.
9) Востановленны названия всех модулей, процедур в модулях и их адреса. Востановлен *.dfm файл. и т.д

Фуух. Дальше я очень устал ибо там килотонны кода. Продолжу как-нить в другой раз...
sleep


Pascal, C\C++, Assembler, Python

Сообщение отредактировал Волк-1024 - Среда, 29.02.2012, 22:29
 
sk0rpi0nДата: Суббота, 10.03.2012, 18:45 | Сообщение # 48
Участник
Зарегистрирован: 28.05.2011
Группа: Пользователи
Сообщений: 65
Статус: Offline
Quote
Нужно более ухищренно.

А как? Я долго пытался, но ничего ухищреннее не придумал. sad


C++ - попса :D
 
XSPYДата: Воскресенье, 11.03.2012, 14:29 | Сообщение # 49
Продвинутый
Зарегистрирован: 28.01.2010
Группа: Пользователи
Сообщений: 263
Статус: Offline
хмм,не знаю получиться у вас или нет,но я вот со своими друзьями-реверсерами такую защиту на днях взломал,и не одну...
суть была просто не в том,что кейген или крак писать,суть просто в изменении например 1 флага проверки,и вся проверка летит в пустоту...
идею уловили? happy


Я не крекер,а программист!
Я не преступник-я свободный человек!
Лучше один раз накодить,чем сто раз качать билды!
 
sk0rpi0nДата: Воскресенье, 11.03.2012, 16:48 | Сообщение # 50
Участник
Зарегистрирован: 28.05.2011
Группа: Пользователи
Сообщений: 65
Статус: Offline
Quote
хмм,не знаю получиться у вас или нет,но я вот со своими друзьями-реверсерами такую защиту на днях взломал,и не одну...
суть была просто не в том,что кейген или крак писать,суть просто в изменении например 1 флага проверки,и вся проверка летит в пустоту...
идею уловили? happy

У самого мысль про такую возможность взлома не раз возникала, но как тогда защитить-то? happy


C++ - попса :D
 
delphicode » Delphi » Вопросы по Delphi » Система ключей для программы
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Поиск:

delphicode.ru © 2008 - 2024 Хостинг от uCoz