Сейчас на форуме: YDS, _MBK_, user99, ManHunter (+7 невидимых)

 eXeL@B —› Основной форум —› сложность взлома
. 1 . 2 . >>
Посл.ответ Сообщение

Ранг: 8.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 08 декабря 2005 20:53
· Личное сообщение · #1

Понимаю, что все на свете ломается, но все же.
Вот такой вопрос как будет дольше ломаться?
1. при запуске программы до создания главного окна происходит проверка и если одно из условий не выполняется, то программа закрывается так и не показав ни одного окна и ни одного сообщения.
2. при запуске программы до создания главного окна происходит проверка и если одно из условий не выполняется, то программа запускается но включается таймер на минуту и по истечению этой минуты программа закроется без каких либо сообщений.

какой из пунктов будет ломаться дольше?



Ранг: 41.9 (посетитель)
Активность: 0.020
Статус: Участник
Author of EXECryptor

Создано: 08 декабря 2005 20:55
· Личное сообщение · #2

думаю что третий



Ранг: 8.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 08 декабря 2005 20:58
· Личное сообщение · #3

я серьезно, понимаю, что особых проблем это не составит, но все же?



Ранг: 309.8 (мудрец), 21thx
Активность: 0.170
Статус: Участник

Создано: 08 декабря 2005 21:10
· Личное сообщение · #4

все способы сосут... без б

-----
Shalom ebanats!





Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 08 декабря 2005 21:14
· Личное сообщение · #5

SLV пишет:
все способы сосут... без б

йопт, я бы не был таким категоричным...



Ранг: 8.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 08 декабря 2005 22:37
· Личное сообщение · #6

т.ч. лучше, закрвать программу просто или выходить по таймеру?




Ранг: 332.0 (мудрец)
Активность: 0.180
Статус: Участник
•Pr0tEcToRs KiLLeR•

Создано: 08 декабря 2005 23:36
· Личное сообщение · #7

странно задавать такой вопрос на форуме по взлому =) ты хочешь чтобы мы сказали тебе как лучше делать защиту чтобы потом нам же было сложнее её ломать ? %)




Ранг: 78.0 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 09 декабря 2005 00:20
· Личное сообщение · #8

Я бы сделал так:

1. Чтобы обезопасить себя от кейгена - _хорошо_ реализовать мощный асимметричный алгоритм или использовать надежную библиотеку для этого (с умом). Я бы взял ECDSA (короткие ключи рулят ;)), но можно что угодно еще. Или пойти по пути всем известных товарищей и взять какой-нибудь не особо известный алгоритм. Но в этом случае надо быть осторожнее (так как все те же известные товарищи допустили ошибку в одной из ранних версий).
2. Максимально извратить код =) Сюда можно добавить VM и много чего еще =) Чтобы сделать алгоритм из п.1 не доступным для понимания и затруднить модификацию кода.
3. Побольше проверок целостности, + добавить немного анти-отладки =)
4. Если программа стоит больших денег, то прикрутить мощную hardware-защиту. Идеальный вариант - ключик с возможностью выполнять код =) и максимальная интеграция и взаимосвязь программы и ключа.

-----
crypto.freak





Ранг: 78.0 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 09 декабря 2005 00:26
· Личное сообщение · #9

Да, забыл добавить, что никто не отменял покупку ключика и дальшейшего его опубликования... Так что еще надо привязку к Hardware прикрутить. Или юзать п.4 =)

-----
crypto.freak





Ранг: 266.8 (наставник), 5thx
Активность: 0.220.03
Статус: Участник
very WELL :)

Создано: 09 декабря 2005 03:51
· Личное сообщение · #10

kirilllius
Особой большой разницы нет. А если на делфи будешь писАть, то для взломщика тот же таймер вообще просто найти будет в DEDE.



Ранг: 41.9 (посетитель)
Активность: 0.020
Статус: Участник
Author of EXECryptor

Создано: 09 декабря 2005 11:44
· Личное сообщение · #11

WELL

а кто запрещает юзать винапи вместо вцл?

kirilllius

можно еще и нитку создать. но лучше не одну а штук 20 да и в добавок чтоб они чтото полезное делали а еще есть фиберы это такие нитки которые руками переключаются а еще есть колбеки вообще в форточках мнооого извращений



Ранг: 8.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 09 декабря 2005 11:50
· Личное сообщение · #12

Всем спасибо. Программа больших денег не стоит , просто нужно немного защитить ее (сделать демку). В принципе все понятно.
А какой программой можно защититься от дампа в памяти?




Ранг: 84.8 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 09 декабря 2005 11:56
· Личное сообщение · #13

kirilllius пишет:
А какой программой можно защититься от дампа в памяти?


А ты сделай как в армудиле - всем страницам PAGE_NO_ACCESS + PAGE_GUARD, и лови исключения
ACCESS_VIOLATION. Чтобы в памяти доступных страниц было по минимуму. Как тебе такое ?



Ранг: 41.9 (посетитель)
Активность: 0.020
Статус: Участник
Author of EXECryptor

Создано: 09 декабря 2005 12:21
· Личное сообщение · #14

kirilllius

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



Ранг: 41.9 (посетитель)
Активность: 0.020
Статус: Участник
Author of EXECryptor

Создано: 09 декабря 2005 12:22
· Личное сообщение · #15

TOG

если бы VEH работало на всех системах - тогда можно было бы и одним процессом ограничится. а так прийдется идти по пути армы. а это есть хыбный путь имхо.



Ранг: 309.8 (мудрец), 21thx
Активность: 0.170
Статус: Участник

Создано: 09 декабря 2005 20:11
· Личное сообщение · #16

> думаю что третий
execrypter? ыыы

-----
Shalom ebanats!





Ранг: 84.8 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 09 декабря 2005 21:02
· Личное сообщение · #17

kirilllius пишет:
и если одно из условий не выполняется, то программа закрывается так и не показав ни одного окна и ни одного сообщения.


Есть конечно такие проги, но честно говоря не понимаю чем они по сути отличается от sfx-архива с паролем. Если уж такую неприветливую прогу делать, то уж сразу sfx-rar с паролем. imho.



Ранг: 52.6 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 09 декабря 2005 23:28
· Личное сообщение · #18

kirilllius пишет:
Всем спасибо. Программа больших денег не стоит , просто нужно немного защитить ее (сделать демку).


демку то просто сделать из полнофункциональной проги, береш "дорогой код" и выдергиваеш его из исходника, а за место не пишеш мессагу мол это демо версия, и усё




Ранг: 467.7 (мудрец), 5thx
Активность: 0.270
Статус: Участник
Иной :)

Создано: 09 декабря 2005 23:46
· Личное сообщение · #19

WarrioR
потом покупает один человек и выкладывает фул версию в нете.

-----
Computer Security Laboratory




Ранг: 17.8 (новичок)
Активность: 0.010
Статус: Участник

Создано: 10 декабря 2005 02:40
· Личное сообщение · #20

[HEX] пишет:
потом покупает один человек и выкладывает фул версию в нете.

Смотря сколько человек заинтересуются ее приобретением если <100, то один мой знакомый предложил такой расклад - на комп покупателя отправляется прога собирающая много индивидуальных данных компа и отправляющая их кодеру. Кодер вкомпилирует их в свой проект (или в его наиболее "дорогой" элемент) проверок эдак 30~40 таких (различных) данных и отправляет индивидуальную версию покупателю. Но важно чтобы цель оправдывала средства.




Ранг: 84.8 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 10 декабря 2005 06:20
· Личное сообщение · #21

f0ma пишет:
собирающая много индивидуальных данных компа и отправляющая их кодеру.


Заказчик будет очень недоволен, когда многокилобаксовая прога откажется работать после установки
какого нибудь сервис пака для ОС. А вообще-то идея хорошая.




Ранг: 116.6 (ветеран), 8thx
Активность: 0.050
Статус: Участник

Создано: 10 декабря 2005 07:26
· Личное сообщение · #22

f0ma пишет:
на комп покупателя отправляется прога собирающая много индивидуальных данных компа и отправляющая их кодеру

А теперь картина маслом - пользователь меняет какую-нить железяку (которая входит в список индивидуальных данных компа) и начинает писать - давайте мол новый регистрационный код.
А теперь собственно вопрос - а как кодер действительно узнает что пользователь сменил себе железяку (или вообще обновил весь комп) и просит рег код для себя, а не для своего знакомого ? А никак ...
В результате у пользователя уже все друзья и знакомые пользуются программой, а кодер только успевает "собирать" индивидуальные данные и кодить и кодить )



Ранг: 17.8 (новичок)
Активность: 0.010
Статус: Участник

Создано: 11 декабря 2005 03:45
· Личное сообщение · #23

TOG пишет:
многокилобаксовая прога откажется работать после установки какого нибудь сервис пака для ОС

Если прога многокилобаксовая то пора уже думать об аппаратной защите.
dermatolog пишет:
все друзья и знакомые пользуются программой

Я же сказа что речь о сугубой программе которая мало кому нужна, а если на 1 проданную придется 1-2 ворованные (при сохранении общего числа лицензий в районе <100) то уже очень не плохо.

Но это уклонение от темы.
Да и вообще kirilllius - надо исходить зи конкретной ситуации. При отсутствии дополнительных мер защиты оба варианта ломаются без проблем.




Ранг: 84.8 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 11 декабря 2005 08:46
· Личное сообщение · #24

f0ma пишет:
Если прога многокилобаксовая то пора уже думать об аппаратной защите.


Мне понравилась одна идея.
Прога которая поставлялась заказчику в таком составе:
1. Сама прога зашита в микроконтроллер(бит защиты установлен), интегрированый в сетевуху.
2. А на CD только GUI.

Помоему, если я не ошибаюсь никто за нее не взялся



Ранг: 4.0 (гость)
Активность: 0.010
Статус: Участник

Создано: 11 декабря 2005 20:11
· Личное сообщение · #25

происходит проверка и если одно из условий не выполняется, то программа закрывается.

{

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


1. Писать алгоритмы (проверок и выходов) исключительно на assembler'e и не ипользовать
стандартные функции для проверки строк и символов. В алгоритмах стараться использовать
хитрые методики сравнения - не используя стандартных команд типа cmp, test ... надо как можно
меньше использовать переходов типа jmp, и также использовать другие хитрые команды переходов, чтобы запутать крэкера. Если нужно сравнить оригинальный регистрационный номер с тем который введет пользователь, то ни в коем случае нельзя держать оригинальный номер в открытом ввиде(в одном месте). Лучьше для хранения оригинального серийного номера использовать его хэш, например для пароля:
password-это будет по алгоритму (MD5) - 5f4dcc3b5aa765d61d8327deb882cf99, или использовать алгоритм
(SHA512) - b109f3bbbc244eb82441917ed06d618b9008dd09b3befd1b5e07394c706a8bb980b1d7 785
e5976ec049b46df5f1326af5a2ea6d103fd07c95385ffab0cacbc86, и держать его надо в разных местах, а не в одной переменной. Считывать пароль нужно используя какою нибудь нестандартныю методику, а не давать пользователю вводить его в стандартный edit, после того как пользователь ввел пароль переводим его в хэш и сравниваем ни сразу весь хэш оригинально пароля с введенным,
а например первый символ с хэш оригинального с введенным, и так далее. При написании
защиты нужно как можно меньше использовать функции с системных библиотек. (ntdll.dll, kernel32.dll, user32.dll, csrsrv.dll), а если без них не можете используйте загрузку функции таким образомчтобы ее в таблице импорта небыло-виртуальная загрузка). Перед проверкой пароля использовать задержку, не используя api функцию (Sleep) на ее легко ставится бряк. Создать сотню ложных функций (с разными именами) по которым проверяется защита или серийный номер программы. Для аварийного выхода не использовать функции TerminateProcess, ZwTerminateProcess,OpenProcess(с параметрoм process_terminate) и т.д. на них легко ставится bpx, используйте хитрые assembler' команды.

2. Также разработать на assembler'e десятки проверок по такой методике как (см. 1.), но в случае если
программа обнаружет, что ее взломали не показывать никаких ошибок(используя messagebox), а
сделать через определенное время какой нибудь вред компьютеру, или создать глюки в программе
(типа зависла),чтобы система перестала загружаться (удалить все subkeys из реестра по таким ключам
deletekey -HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\*.*
deletekey -HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\*.*
deletekey -HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\*.*) и так далее. А найти все скрытые вредные действия в программе которая говорит, что у нее все нормально, будет проще с нуля написать
такую программу.

3. Проверять какие библиотеки использует ваша программа в случае левых (inject) библиотек,
вырубайте программу. Проверяйте какие запущенные программы по их crc32 и сигнатуре и ресурсам. не используя стандартные методики потому-что с помощью перехвата api вашей программе можно будет отправить данные которые она хочет видить.

4. Заблокировать regmon, filemon, softice, iceext. Если не можете заблокировать обращение в реестр,
то при запуске программы открывайте 1000 ключей и производите 1000 записей левых, чтобы regmon
для крєкера стал безполезным.

5. Поменяйте сигнатуры (на чем писалась программа), скройте ресурсы (tform,tbitmap) - подгружайте их с какого нибудь участка программы, но не с ресурсов, а также установите хук,
на api которые показывают информацию о контролах, чтобы крэкер не понял что за компоненты используются, можете не просто стиреть сигнатуры, а просто поменять их на какие нибудь
другие (другой язык программирования). Запакуйте программу например UPX'ом, поменяйте сигнатуры
и секции на aspack, чтобы крэкер подумал что она упакомана aspack.


[/b]
}




Ранг: 392.8 (мудрец), 108thx
Активность: 0.260.01
Статус: Участник
REVENGE сила, БеХоЦе могила

Создано: 12 декабря 2005 10:56
· Личное сообщение · #26

SaTaN
Человеку вообщето нужна легкая защита, и ИМХО ты написал полный бред (особенно пункт 2). Новичок конечно такую защиту не взломает, но у человека, который ломал много, она тоже много времени не отберет (во всяком случае это будет меньше по времени чем собстна такую защиту сделать :s6

-----
StarForce и Themida ацтой!





Ранг: 420.3 (мудрец)
Активность: 0.240
Статус: Участник

Создано: 12 декабря 2005 11:03
· Личное сообщение · #27

SaTaN пишет:
2. Также разработать на assembler'e десятки проверок по такой методике как (см. 1.), но в случае если
программа обнаружет, что ее взломали не показывать никаких ошибок(используя messagebox), а
сделать через определенное время какой нибудь вред компьютеру, или создать глюки в программе
(типа зависла),чтобы система перестала загружаться (удалить все subkeys из реестра по таким ключам
deletekey -HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\*.*
deletekey -HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\*.*
deletekey -HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\*.*) и так далее. А найти все скрытые вредные действия в программе которая говорит, что у нее все нормально, будет проще с нуля написать
такую программу.

За такую защиту можно и по шее получить...

-----
Сколько ни наталкивали на мысль – все равно сумел увернуться





Ранг: 84.8 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 12 декабря 2005 11:26 · Поправил: TOG
· Личное сообщение · #28

ValdiS пишет:
обнаружет, что ее взломали не показывать никаких ошибок(используя messagebox), а
сделать через определенное время какой нибудь вред компьютеру


Главное правило программера - не навреди легальному юзеру.



Ранг: 22.1 (новичок)
Активность: 0.010
Статус: Участник

Создано: 12 декабря 2005 12:18
· Личное сообщение · #29

SaTaN

ты еще занего напиши прогу. И вообще не стоит раскрывать все секреты кракеров




Ранг: 84.8 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 12 декабря 2005 12:39
· Личное сообщение · #30

SaTaN пишет:
Чтобы затруднить взлом нужно ...


Ёмаё ! Че так сложно-то ? Имхо идея с "secure sections" в армудиле - вот красивое и простое решение
ваших проблем. Реализовано оно криво, но идея-то хорошая. Никаких тебе изощренных проверок.
Есть ключ - расхориваем секцию. Нету ключа - не расхориваем. И баста


. 1 . 2 . >>
 eXeL@B —› Основной форум —› сложность взлома
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати