Как например лучше реализовать скрытие блоков текста, чтобы не читалось через блокнот/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