Недавно добавленные исходники

•  DeLiKaTeS Tetris (Тетрис)  4 041

•  TDictionary Custom Sort  6 152

•  Fast Watermark Sources  5 945

•  3D Designer  8 810

•  Sik Screen Capture  6 282

•  Patch Maker  6 697

•  Айболит (remote control)  6 693

•  ListBox Drag & Drop  5 546

•  Доска для игры Реверси  95 788

•  Графические эффекты  6 920

•  Рисование по маске  6 148

•  Перетаскивание изображений  5 077

•  Canvas Drawing  5 455

•  Рисование Луны  5 167

•  Поворот изображения  4 711

•  Рисование стержней  3 321

•  Paint on Shape  2 564

•  Генератор кроссвордов  3 456

•  Головоломка Paletto  2 763

•  Теорема Монжа об окружностях  3 565

•  Пазл Numbrix  2 336

•  Заборы и коммивояжеры  3 022

•  Игра HIP  1 979

•  Игра Go (Го)  1 901

•  Симулятор лифта  2 253

•  Программа укладки плитки  1 963

•  Генератор лабиринта  2 411

•  Проверка числового ввода  2 093

•  HEX View  2 421

•  Физический маятник  2 051

 
скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Delphi Sources

Борьба с SoftIce



Автор: Igor Nikolaev aKa The Sprite

Hardware это та часть компьютора, которую можно пнуть, если Shareware отказывается работать.

Hаткнулся в инете на некий модуль StopIce, и любопытство сделало своё дело. Как долго я смеялся... :))))

Для тех, кто не в курсе: посмотрите export NmSymIsSoftIceLoaded (или что-то подобное) в nmtrans.dll.

Вот полный юнит против SOFTICE, при обнаружений отладчика перезагружает компьютер:


unit StopIce;

interface

implementation

uses Windows;

function IsSoftIce95Loaded: boolean;
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 IsSoftIceNTLoaded: boolean;
var
  hFile: Thandle;
begin

  result := false;
  hFile := CreateFileA('\\.\NTICE', 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
    ExitWindowsEx(flags, 0);
    SetPrivilege('SeShutdownPrivilege', False)
  end;
end;

initialization

  if IsSoftIce95Loaded or IsSoftIceNTLoaded then
  begin
    WinExit(EWX_SHUTDOWN or EWX_FORCE);
    Halt;
  end;
end.








Copyright © 2004-2025 "Delphi Sources" by BrokenByte Software. Delphi World FAQ

Группа ВКонтакте