Вверх ↑
Этот топик читают: Гость
Ответов: 321
Рейтинг: 10
#1: 2019-02-03 20:07:18 ЛС | профиль | цитата
Привет ребята, дайте пожалуйста советов, как защитить свое ПО от взлома / редактирования и прочего.
Как например лучше реализовать скрытие блоков текста, чтобы не читалось через блокнот/hex-редактор.
Возможно ли реализовать анти-дебаг ?!

К чему вопрос?! Сам в последние время пытаюсь заниматься этим самым Reverse Engineering.
Столкнулся с платным ПО, запускаю сниффер, хочу посмотреть куда он данные для авторизации шлет и что возвращает.
Запускаю софт и fiddler (http отладчик) и программа бах, закрылась, думаю ладно,
запускаю HTTP Debugger Pro - аналогично.
запускаю IDA Pro / Resource Hacker / OllyDBG - аналогично.

Ладно.
Переименовываю fiddler.exe процесс в 1.exe, через InqSoft Window Scanner ищу хэндл окна и переименовываю заголовок.
Все такая же ситуация, даже пробовал через компонент WinExec в режиме sv_hide запускать приложение и PowerShell в скрытом режиме, хотя это одно и тоже как я понимаю (winApi).
В итоге подопытную программу открываю в hex-редакторе и там нахожу громадный список всех приложений, при которых она закрывается.
Затираю все эти названия и вуа-ля. Теперь получается запускать различные дизассемблеры и отладчики. Но при атаче отладчика, сама подопытная программа выдает мне сообщение "Debbuger found. Don't use it" (улыбнуло).

Стало интересно какие методы защиты можно реализовать в hiasm, как правильно подходить к этому делу, у нас настолько все прозрачно, что чуть ли не блокнота хватить, чтобы перековырять всю программу.
Видел от nesco компонент (извиняюсь, может не от него, не помню точно) для привязки ПО, ну регистрации продукта, с защитой от взлома, но не могу найти.
Ну вообщем, если кто-то защищал свое ПО, дайте пожалуйста советов как и от чего защищать.

Вот попробовал реализовать что-то подобное, чтобы программа закрывалась при запущенных "недругах".
Было бы хорошо, если была бы возможность по PID определять handle окна, и читать еще + заголовки каждого окна.
Или реализовывать перебор окон отдельно в другом потоке ?! И по поводу потоков, как сделать, чтобы данная процедура не мешала основной работе программы ?!
Насколько тут уместен проверочный отдельный поток ?! И чтобы не наткнутся на ошибки выше-указанного программиста, как правильнее будет спрятать список запрещенных процессов ?! Шифрованием ?!

Add(MainForm,2953706,420,322)
{
Width=382
Height=270
link(onCreate,11122898:doStart,[])
}
Add(Thread,11122898,469,336)
{
link(onExec,9170827:doEnum,[])
}
Add(EnumProcess,9170827,518,336)
{
Point(onEndEnum)
link(onProcess,16044917:doPart,[])
link(onEndEnum,10194908:doEnum,[(572,349)(572,412)])
}
Add(ArrayEnum,10194908,595,406)
{
link(onItem,12782972:doGetIndex,[(696,412)(696,370)])
link(onEndEnum,12782972:doClear,[(706,419)(706,349)])
link(Array,3540637:Array,[])
}
Add(StrList,3540637,581,357)
{
@Hint=#20:Запрещенные процессы|
Strings=#11:notepad.exe|8:calc.exe|13:win32calc.exe|
AddHint(-50,-52,140,13,@Hint)
}
Add(StrList,12782972,735,336)
{
Point(doGetIndex)
Point(onGetIndex)
link(onGetIndex,16328153:doCompare,[])
}
Add(If_else,16328153,784,343)
{
Op2=Integer(-1)
link(onFalse,2953706:doClose,[(825,356)(825,294)(415,294)(415,349)])
}
Add(FilePartElm,16044917,630,336)
{
link(onPart,12782972:doAdd,[])
}


_________________________

Знаю еще что для дельфи есть специальные анти-отладочные инструменты какие-то, интересно их можно как-то прикрутить к Hiasm компилятору будет, если найду подобное ?!

Редактировалось 3 раз(а), последний 2019-02-03 20:52:13
карма: 1

0
vip
#1.1контекстная реклама от партнеров
Ответов: 4621
Рейтинг: 746
#2: 2019-02-04 12:06:57 ЛС | профиль | цитата
Master4eG писал(а):
И по поводу потоков, как сделать, чтобы данная процедура не мешала основной работе программы ?!
Ну, так в твоей схеме это сделано. Что-то не так работает?
Master4eG писал(а):
как правильнее будет спрятать список запрещенных процессов ?! Шифрованием ?!
Да. отдельной программой шифруешь список, конвертируешь его в текстовый вид (HEX/Base64), и в таком виде заносишь в основную программу. В программе - перед использованием дешифруешь обратно.
Master4eG писал(а):
выдает мне сообщение "Debbuger found"
Есть стандартная функция определения отладчика, а также флаг в регистре процессора. Есть много статтей про способы выяснения наличия отладчика и противодействие этому, как простые так и более сложные в реализации способы.
карма: 26

0
Ответов: 8886
Рейтинг: 823
#3: 2019-02-04 13:55:48 ЛС | профиль | цитата
Master4eG, а нужно-ли? Найдутся желающие взломать супер-пупер программу?
Может подойдёт шифрованная целиком программа по паролю в голове (на бумажке), расшифровывается на временный файл, который и запускается, после запуска временный файл удаляется?
карма: 19

0
Ответов: 4621
Рейтинг: 746
#4: 2019-02-04 14:07:54 ЛС | профиль | цитата
Леонид, это уж очень примитивно. Разве только если распакованный файл будет сам по себе неработоспособный, а работать будет под контролем хост-процесса, который уже после запуска в его памяти некоторые части подготавливает.
карма: 26

0
Ответов: 2059
Рейтинг: 131
#5: 2019-02-04 15:43:15 ЛС | профиль | цитата
Master4eG, для твоей задачи подойдёт вот это http://forum.hiasm.com/getfile/38578
Никакой взлом не возможен! Всё работает, как часы!
Запускаешь Flint2.exe -> qwerty.txt, чтобы посмотреть ключи для различных вариантов использования.
В архиве есть исходник, можешь чего-то вырезать, добавить - переделать под свои хотелки.
Коментарии очень подробные, почти к каждой строке.
карма: 6

0
Ответов: 5227
Рейтинг: 586
#6: 2019-02-04 19:06:45 ЛС | профиль | цитата
Как вариант купить протектор который с антивирусами в доле Могу скинуть орион фул.
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Ответов: 952
Рейтинг: 4
#7: 2019-02-16 22:35:05 ЛС | профиль | цитата
Накройте взломанной версий какого-нибудь коммерческого протектора типа Энигмы или Темиды.
Да, есть минусы - антивирусы начнут орать на ваш софт. Но это проще чем изобретать велосипед.
Тем более поиск по названиям окон ... давно уже есть плаги для скрытия и прочие примочки для отладчиков. Они и более сложные хуки обходят.
карма: 0

0
7
Сообщение
...
Прикрепленные файлы
(файлы не залиты)