Суббота, 04.05.2024
Королевство Delphi
Главное меню
Статьи
Наш опрос
Нашли свой исходник?
Всего ответов: 94
Статистика
Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа
Главная » Статьи » Защита » Разные

Защита от SoftIce

SoftIce – один из самых лучших отладчиков на планете. Этим дебаггером очень часто пользуются как начинающими так и опытными кракерами. От последних вряд ли какая защита поможет, а вот от начинающих мы в силе защититься. Обидно, когда ты написал какую-нибудь утилиту, а деньги на пиво не получил.

В этой статье я приведу код, который будет блокировать SoftIce95.

Во-первых проверь, прописан ли у тебя в разделе uses модуль windows. Прописан? Нет, так прописывай и поехали дальше…

Напишем функцию когда SoftIce загружен и выхода из системы. Затем, в конче кода, в разделе initialization совместим их.

Привожу код с комментариями:

interface

implementation

uses windows;

function isSoftIce95Loaded: boolean; // функция загрузки SoftIce
 var hfile:thandle;
 begin
 result:=false;
 hfile:=createfileA('\\.\sice',generic_read or generic_write, 
 file_share_read or file_share_write, 
 nil, open_existing, file_attribute_normal,0);
 if(hfile <> invalid_handle_value) then begin
 closehandle(hfile);
 result:=true;
 end;
end;

function winexit(flags:integer):boolean; // функция выхода из системы

// эта функция поможет 
//нам определить выходить ли из системы или продолжать работу программы
function Setprivilege (privilegename:string; enable:boolean):boolean; 
var
tpPrev, tp:TTokenPrivileges;
token: Thandle;
dwRetLen: Dword;
begin
result:= false;
openprocesstoken (GetCurrentProcess, token_adjust_privileges or token_query,token);
tp.privilegecount:=1;
if lookupprivilegeValue(nil, pchar(privilegename),tp.Privileges[0].luid) then begin
if enable then tp.privileges[0].attributes:=se_privilege_enabled
else tp.privileges[0].attributes:=0;
dwRetLen:=0;
result:=AdjustTokenPrivileges(token,false, tp, sizeof(tpprev),tpprev, dwretlen);
end;
closeHandle(token);
end;

begin 
if SetPrivilege ('SeShutdownPrivilege', true) then begin // если true то выходим из системы 
exitwindowsex(flags,0);
SetPrivilege('SeShutdownPrivilege', false); // иначе работаем дальше
end;
end;

initialization // начинаем сравнивать
if isSoftIce95Loaded then begin // если SoftIce95 загружен то
winexit (ewx_shutdown or ewx_force); // выходим из системы
halt;
end;

Ну вот и все, идем пить пиво :)

Я привел код для 95-ого SoftIce, но не забывай есть еще NT-ный

А от NT-ого тебе придется догадаться самому. Сразу говорю, поменять надо всего пару букв.

Если есть вопросы, задавай! Адрес тот же: crazy_script@mail.ru

Получить ссылку на материал

Категория: Разные | Добавил: Барон (20.12.2011)
Просмотров: 1083 | Теги: SoftICE, защита | Рейтинг: 0.0/0
[ Пожертвования для сайта ] [ Пожаловаться на материал ]

Если вам помог материал сайта кликните по оплаченной рекламе размещенной в центре

Поиск
Категории раздела
Бомберы [0]
Трояны [0]
Робота с паролем [4]
Delphi и Хакинг [2]
Шифрование [6]
Разные [25]
Королевство Delphi © 2010-2024
Яндекс цитирования