Текущий архив: 2007.05.27;
Скачать: CL | DM;
Вниз
Статья на сайт Найти похожие ветки
← →
Cj © (2007-04-29 18:01) [0]Напишите в какой форме должна быть статья к вам
← →
{RASkov} © (2007-04-29 18:04) [1]УК
← →
Cj © (2007-04-29 18:12) [2]Че это значит?
← →
homm © (2007-04-29 18:15) [3]Уголовный кодекс :)
← →
Cj © (2007-04-29 18:21) [4]Я к мастерам обращаюсь
← →
{RASkov} © (2007-04-29 18:26) [5]> [4] Cj © (29.04.07 18:21)
Ты хоть поясни, что ты вообще хочешь-то. Какую статью ты хочешь "пришить" мастерам....
Да-а-а в твоих сабжах без поллитры никак... :(
← →
McSimm © (2007-04-29 18:36) [6]Документ Word или Open Ofice.
Не HTML
← →
Riply © (2007-04-29 18:36) [7]>[0] Cj © (29.04.07 18:01)
Если у меня возникает желание выложить на всеобщее обозрение свои работы,
то я немедленно открываю исходники некоторых участников форума (у меня есть список избранных :),
или, на худой конец, исходники от Borland"а :).
Ты знаешь, желание "публиковаться" вмиг исчезает и надолго :)
← →
Cj © (2007-04-29 18:56) [8]То что сделал я, нинашел нигде больше
← →
{RASkov} © (2007-04-29 19:00) [9]> [8] Cj © (29.04.07 18:56)
Молодец.... супер. А где искал? И про что статья? (В двух словах) Авось и всамом деле наиполезнейшая получится статья. Я серьезно.
← →
Loginov Dmitry © (2007-04-29 19:01) [10]> То что сделал я, нинашел нигде больше
Может это от того, что оно никому не нужно?
← →
Алхимик © (2007-04-29 19:02) [11]> [8] Cj © (29.04.07 18:56)
> То что сделал я, нинашел нигде больше
http://taurion.ru/index2.php?sm=for_evgeny
← →
Cj © (2007-04-29 19:02) [12]Process Explorer знаете?
← →
Ketmar © (2007-04-29 19:04) [13]> Cj © (29.04.07 19:02) [12]
> Process Explorer знаете?
пил с таким чуваком недавно...
← →
Cj © (2007-04-29 19:08) [14]Ну так вот не все он процессы видит, у меня есть пример по скрытию
← →
turbouser © (2007-04-29 19:13) [15]
> Cj © (29.04.07 19:08) [14]
Черезвычайно любопытно. Когда можно будет лицезреть сей пример?
← →
Ketmar © (2007-04-29 19:17) [16]а AVZ обманывет?
← →
Cj © (2007-04-29 19:19) [17]А моя прога видит всё. 15 - ждите.
← →
Cj © (2007-04-29 19:21) [18]16 - расшифруй пожалуйста
← →
antonn (work) (2007-04-29 19:22) [19]так пример по сокрытию процесса, или по увидению всех процессов?
← →
Cj © (2007-04-29 19:25) [20]19- есть пример по скрытию, видит его -моя
← →
{RASkov} © (2007-04-29 19:29) [21]> [18] Cj © (29.04.07 19:21)
АнтиВирусЗайцева, помоему.
← →
Ketmar © (2007-04-29 19:31) [22]> {RASkov} © (29.04.07 19:29) [21]
> АнтиВирусЗайцева, помоему.
таки да. %-)
← →
Cj © (2007-04-29 19:33) [23]18 - вот как раз другие примеры сечет, а этот именно - нет, и Каспер и Нортон
← →
{RASkov} © (2007-04-29 19:35) [24]> [23] Cj © (29.04.07 19:33)
Ты, типа, дразнишь что ли.... :) См.[17]
← →
Cj © (2007-04-29 19:35) [25]Прошу писаниной не загружать т.к. сижу с телефона
← →
Ketmar © (2007-04-29 19:36) [26]> Cj © (29.04.07 19:35) [25]
> Прошу писаниной не загружать т.к. сижу с телефона
это наши проблемы или твои?
← →
Cj © (2007-04-29 19:37) [27]23 - нет
← →
Cj © (2007-04-29 19:39) [28]26- мои, но пишу дольше
← →
Ketmar © (2007-04-29 19:43) [29]> Cj © (29.04.07 19:33) [23]
> 18 - вот как раз другие примеры сечет, а этот именно - нет,
> и Каспер и Нортон
а klister?
← →
{RASkov} © (2007-04-29 19:47) [30]> [28] Cj © (29.04.07 19:39)
Статью "на телефоне стучишь"? :) Во дает...
← →
Cj © (2007-04-29 19:47) [31]Насчёт Клестира - не знаю, но остальные - нет
← →
Cj © (2007-04-29 19:50) [32]Удалено модератором
← →
Cj © (2007-04-29 19:53) [33]Ошибочка, 30-му
← →
{RASkov} © (2007-04-29 19:55) [34]> [33] Cj © (29.04.07 19:50)
Мир полон извращенцев :) А как твой пост [25] еще понять... ведь я тоже "сижу с телефона".... ;)
Ладно... не отвлекайся, а то так и не выйдет твоя статья. А все ждут.... :)
← →
Cj © (2007-04-29 20:00) [35]Начинаю писать, на телефоне :-)
← →
Ketmar © (2007-04-29 20:14) [36]> Cj © (29.04.07 20:00) [35]
> Начинаю писать, на телефоне :-)
...про телефоны, и на транслите -- чтобы жизнь мёдом не казалась.
← →
Alien1769 from Home (2007-04-29 20:19) [37]А вдруг "Гений", а мы его "напрягаем" ?
:))
← →
TUser © (2007-04-29 21:25) [38]> Ну так вот не все он процессы видит, у меня есть пример по скрытию
Протестируй его вот этимИгорь Шевченко c (02.02.05 10:21)
Небольшой код, позволяющий определить, есть ли в системе потенциально вредоносный
процесс, скрывающий себя от Task Manager"а, Process Explorer"а и прочих просмотрщиков
списка процессов. В сочетании с включенным аудитом процессов поможет выявить поделки
доморощенных пакостников.
Проверено на Windows 2000 и Windows XP.
unit CheckNtDll;
interface
uses
Windows, HsNtDef;
function RealQueryListInformation (InfoClass: Integer; var rc: NTSTATUS;
var ReturnLength: DWORD): Pointer;
function IsNtDllHooked: Boolean;
implementation
uses
SysUtils, NtDll, PeImage, NtStatusDefs;
{$IFDEF VER140}
{$WARN SYMBOL_PLATFORM OFF}
{$ENDIF}
type
TSysCallData = array[0..13] of Byte;
TNtQuerySystemInformation = function (SystemInformationClass: LongInt;
SystemInformation: Pointer; SystemInformationLength: ULONG;
ReturnLength: PDWORD): NTSTATUS; stdcall;
var
FRealQuerySystemInformation: TNtQuerySystemInformation;
function RealQueryListInformation (InfoClass: Integer; var rc: NTSTATUS;
var ReturnLength: DWORD): Pointer;
var
ListSize: Integer;
begin
ListSize := $400; { Начальный размер буфера }
GetMem(Result, ListSize);
rc := FRealQuerySystemInformation(InfoClass, Result, ListSize, @ReturnLength);
while rc = STATUS_INFO_LENGTH_MISMATCH do begin
FreeMem(Result);
ListSize := ListSize * 2;
GetMem(Result, ListSize);
rc := FRealQuerySystemInformation(InfoClass, Result, ListSize,
@ReturnLength);
end;
if rc <> STATUS_SUCCESS then begin
FreeMem(Result);
Result := nil;
end;
end;
procedure MakeRealQS (const SysCallData: TSysCallData);
var
OldProtection: DWORD;
FuncPtr: Pointer;
begin
FuncPtr := VirtualAlloc(nil, $1000, MEM_COMMIT, PAGE_READWRITE);
Win32Check(Assigned(FuncPtr));
Move(SysCallData, FuncPtr^, SizeOf(SysCallData));
Win32Check(VirtualProtect(FuncPtr, SizeOf(SysCallData), PAGE_EXECUTE,
OldProtection));
@FRealQuerySystemInformation := FuncPtr;
end;
function IsNtDllCodeHooked (const FileName: string; ProcOffset: ULONG): Boolean;
var
Image: THSPeImage;
SysCall: TSysCallData;
SysCall2: TSysCallData;
QSPtr: Pointer;
begin
Image := THSPEImage.Create (FileName);
try
Move(Image.RVAData[ProcOffset]^, SysCall, SizeOf(SysCall));
finally
Image.Free;
end;
QSPtr := GetProcAddress(GetModuleHandle("ntdll.dll"),
"NtQuerySystemInformation");
Move(QSPtr^, SysCall2, SizeOf(SysCall2));
Result := not CompareMem(@SysCall, @SysCall2, SizeOf(SysCall));
if Result then
MakeRealQS (SysCall);
end;
function IsNtDllHooked: Boolean;
const
SDllPath = "%SystemRoot%\system32\ntdll.dll";
var
DllPath: ZString;
HFile, HMap: THandle;
Map: Pointer;
Headers: PImageNtHeaders;
QSysInfo: Pointer;
begin
Result := false;
Win32Check(
ExpandEnvironmentStringsA(SDllPath, DllPath, SizeOf(DllPath)) <> 0);
HFile := CreateFileA(DllPath, GENERIC_READ, FILE_SHARE_READ, nil,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, INVALID_HANDLE_VALUE);
Win32Check(HFile <> INVALID_HANDLE_VALUE);
try
HMap := CreateFileMappingA(HFile, nil, PAGE_READONLY, 0, 0, nil);
Win32Check(HMap <> 0);
try
Map := MapViewOfFile(HMap, FILE_MAP_READ, 0, 0, 0);
Win32Check(Assigned(Map));
try
Headers := RtlImageNtHeader(HMODULE(Map));
if Assigned(Headers) then
Result :=
Headers.OptionalHeader.ImageBase <> GetModuleHandle("ntdll.dll");
if not Result then begin
QSysInfo := GetProcAddress(GetModuleHandle("ntdll.dll"),
"NtQuerySystemInformation");
if Assigned(QSysInfo) then begin
Result := (Cardinal(QSysInfo) <=
Headers.OptionalHeader.ImageBase) or (Cardinal(QSysInfo) >
Headers.OptionalHeader.ImageBase +
Headers.OptionalHeader.SizeOfCode);
if not Result then
Result := IsNtDllCodeHooked(DllPath, ULONG(QSysInfo) -
Headers.OptionalHeader.ImageBase);
end else
Result := true;
end;
finally
UnmapViewOfFile(Map);
end;
finally
CloseHandle(HMap);
end;
finally
CloseHandle(HFile);
end;
end;
initialization
finalization
if Assigned(FRealQuerySystemInformation) then
VirtualFree(@FRealQuerySystemInformation, $1000, MEM_DECOMMIT);
end.
Пример использования:
FQueryInformationFunction: TQueryListInformation;
.........
if IsNtDllHooked then begin
ShowMessage("NtDll is hooked!");
@FQueryInformationFunction := @RealQueryListInformation;
end else
@FQueryInformationFunction := @QueryListInformation;
.....
var
ProcessInfo: Pointer;
rc: NTSTATUS;
Dummy: ULONG;
begin
ProcessInfo := FQueryInformationFunction (
SystemProcessesAndThreadsInformation, rc, Dummy);
if NT_SUCCESS(rc) then
ShowProcessList (ProcessInfo)
else
RaiseNtError (rc);
.........
(с) Игорь Шевченко
← →
Prohodil Mimo © (2007-04-29 21:30) [39]Нет, что бы увидеть, а потом критиковать.
Зачем заранее отбивать охоту что-либо делать?
← →
Ketmar © (2007-04-29 22:02) [40]> Prohodil Mimo © (29.04.07 21:30) [39]
> Нет, что бы увидеть, а потом критиковать.
> Зачем заранее отбивать охоту что-либо делать?
а нафига нужны поделки типа "спрятать процесс"?
Страницы: 1 2 вся ветка
Текущий архив: 2007.05.27;
Скачать: CL | DM;
Память: 0.55 MB
Время: 0.045 c