![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как мне узнать имя процесса по его Handel Я использую PSAPI.DLL [D7, WinXP]
NikNet © (2005-02-11 17:13:00)КАк ?
Arazel (2005-02-11 20:09:00) [21]PIMAGE_SECTION_HEADER = ^IMAGE_SECTION_HEADER;
IMAGE_SECTION_HEADER = packed record
Name : Packed array[1..8] of char;
VirtualSize : DWORD; {Размер секций в памяти}
RvaOffset : DWORD; {Виртуальный адресс}
SizeOfRavDATA : DWORD; {Размер секции на диске}
PointerToRawData : DWORD; {Указатель на RAV данных}
PointerToRelocs : DWORD; {Указатель на релокейшены}
PointerToLineNumbers : DWORD; {Указатель на номера строк}
NumberOfRelocs : WORD; {Количество релокейшенов}
NumberOfLineNumbers : WORD; {Количество номеров строк}
SectionFlags : DWORD; {Флаги свойств секции} (*
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Name несколько примеров из жизни:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.text - сюда Микрософт бросает выполнимый код
CODE - а Борланд любит это делать здесь
.icode - переходники импорта старых версий TLINK32
.data - Микрософт швыряет данные сюда
DATA - а Борланд сюда
.bss - неинициализированные данные (равна 0 в файле)
.CRT - инициализированные данные C/C++ от Борланда
.rsrc - ресурсы
.idata - секция импорта
.edata - секция экспорта
.reloc - таблица настроек
.tls - данные на базе которых Windows запускает цепочки
.rdata - отладочная информация
_FREQASM - посмотрите в KERNEL32, я думаю, и так понятно
PROTECTED - это взято из Хасповского сервера, вот так
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SectionFlags
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00000004h - используется для кода с 16 битными смещениями
00000020h - секция кода
00000040h - секция инициализированных данных
00000080h - секция неинициализированных данных
00000200h - комментарии или любой другой информации
00000400h - оверлейная секция
00000800h - не будет являться частью образа программы
00001000h - общие данные
00500000h - выравнивание по умалчанию, если не указано иное
02000000h - может быть выгружен из памяти
04000000h - не кешируется
08000000h - не подвергается к страничному преобразованию
10000000h - разделяемы
20000000h - выполнимый
40000000h - можно читать
80000000h - можно писать *)
end;
VAR
_File:FILE;
DosHdr:IMAGE_DOS_HEADER;
PeHdr:IMAGE_FILE_HEADER;
SecHdr:IMAGE_SECTION_HEADER;
OpenFile:Bool;
Arazel (2005-02-11 20:08:00) [22]{--------------------------------- Coff Header ---------------------------------}
PIMAGE_FILE_HEADER = ^IMAGE_FILE_HEADER;
IMAGE_FILE_HEADER = packed record
Signature : DWORD;
Machine : WORD; {Машина}
NumberOfSections : WORD; {Количество секторов}
TimeDateStamp : DWORD;{Временной штамп}
PointerToSymbolTable : DWORD;{Указатель на таблицу символов}
NumberOfSymbols : DWORD;{Количество символов}
SizeOfOptionalHeader : WORD; {Размер дополнительного заголовка}
Characteristics : WORD; {Характеристики}
{ Standard fields. }
Magic : WORD; {Всегда равно 010Bh}
MajorLinkerVersion : Byte; {Старшая версия линкера}
MinorLinkerVersion : Byte; {Младшая версия линкера}
SizeOfCode : DWORD;{Размер кода}
SizeOfInitializedData : DWORD;{Размер инициализированных данных}
SizeOfUninitializedData : DWORD;{Размер неинициализированных данных}
AddressOfEntryPoint : DWORD;{Адресс точки входа}
BaseOfCode : DWORD;{База кода}
BaseOfData : DWORD;{База данных}
{ NT additional fields. }
ImageBase : DWORD;{База образа}
SectionAlignment : DWORD;{Выравнивание секций}
FileAlignment : DWORD;{Выравнивание файла}
MajorOperatingSystemVersion : WORD; {Старшая версия ОП}
MinorOperatingSystemVersion : WORD; {Младшая версия ОП}
MajorImageVersion : WORD; {Старшая версия образа}
MinorImageVersion : WORD; {Младшая версия образа}
MajorSubsystemVersion : WORD; {Старшая версия подсистемы}
MinorSubsystemVersion : WORD; {Младшая версия подсистемы}
Reserved1 : DWORD;{Зарезервировано1}
SizeOfImage : DWORD;{Размер образа}
SizeOfHeaders : DWORD;{Размер заголовка}
CheckSum : DWORD;{Чексумма}
Subsystem : WORD; {Подсистема}
DllCharacteristics : WORD; {Характеристики}
SizeOfStackReserve : DWORD;{Размер Зарезервированого стека}
SizeOfStackCommit : DWORD;{Размер выделеного стека}
SizeOfHeapReserve : DWORD;{Размер Зарезервированной кучи}
SizeOfHeapCommit : DWORD;{Размер выделенной кучи}
LoaderFlags : DWORD;{Флаги загрузчика}
NumberOfRvaAndSizes : DWORD;{Number of RVA and Sizes}
ExportTableRVA : DWORD;{RVA таблицы экспорта}
ExportDataSize : DWORD;{размер таблицы экспорта}
ImportTableRVA : DWORD;{RVA таблицы импорта}
ImportDataSize : DWORD;{размер таблицы импорта}
ResourceTableRVA : DWORD;{RVA таблицы ресурсов}
ResourceDataSize : DWORD;{размер таблицы ресурсов}
ExceptionTableRVA : DWORD;{RVA таблицы исключений}
ExceptionDataSize : DWORD;{размер таблицы исключений}
SecurityTableRVA : DWORD;{RVA таблицы безопасности}
SecurityDataSize : DWORD;{размер таблицы безопасности}
FixUp_sTableRVA : DWORD;{RVA таблицы настроек}
FixUp_sDataSize : DWORD;{размер таблицы настроек}
DebugTableRVA : DWORD;{RVA таблицы отладочной инф.}
DebugDataSize : DWORD;{размер таблицы отладочной инф.}
ImageDescriptionRVA : DWORD;{RVA строки описани модуля}
DescriptionDataSize : DWORD;{размер строки описания модуля}
MachineSpecificRVA : DWORD;{RVA таблицы описания процессора}
MachnineDataSize : DWORD;{размер таблицы описания процессора}
TLSRVA : DWORD;{RVA области данных цепочек}
TLSDataSize : DWORD;{размер области данных цепочек}
LoadConfigRVA : DWORD;{RVA таблицы параметров загрузки}
LoadConfigDataSize : DWORD;{размер таблицы параметров загрузки}
BoundImport : DWORD;{Связанный Стол Импорта адресует и размер}
IATRVA : DWORD;{Стол Адреса Импорта адресует и размер}
IATDataSize : DWORD;{Адрес и размер Описателя Импорта Задержки}
RuntimeHeader : DWORD;{???}
Reserved5 : array[1..6] of DWORD;{Зарезервировано5}
end;
Arazel (2005-02-11 20:08:00) [23]Вот корочий мои модуль для начало!
unit ExeImg;
{
Модуль для работы с PE файлами
Avtor: Нуржанов Аскар
Mail : Arazel@yandex.ru
Web : Arazel.narod.ru
*************************************************************************************************
*********************************************CopyRight*******************************************
*************************************************************************************************
1) Автор библиотеки ExeImg.pas - Arazel (далее автор).
2) Все права на данную библиотеку принадлежат исключительно автору.
3) Вы имеете право использовать данную библиотеку ИСКЛЮЧИТЕЛЬНО В ОБРАЗОВАТЕЛЬНЫХ ЦЕЛЯХ.
4) Данную библиотеку ЗАПРЕЩЕНО использовать в незаконных целях
(создание вирумов, троянских программ и.т.п.), за любое незаконное
использование библиотеки АВТОР ОТВЕТСТВЕННОСТИ НЕ НЕСЕТ.
5) В случае использования библиотеки в коммерческих целях (shareware программы и.т.п.)
вы должны согласовать этот вопрос с автором.
6) Любое из условий данного лицензионного соглашения может быть изменено автором
в следующей версии библиотеки.
9) Если вы не согласны с вышеприведенными условиями, то обязаны отказаться от
использования библиотеки и удалить её со всех имеющихся у вас носителей информации.
10) Несоблюдение данных условий может привести к уголовной ответственности по УК РФ.
Как со мной связаться:
Адрес странички - www.arazel.narod.ru
Мыло - arazel@yandex.ru
Пишите :))
a q\
}
interface
uses Windows,SysUtils;
const
{Сигнатура}
IMAGE_NT_SIGNATURE = $00004550; { PE00}
{ Тип МАШИНЫ}
IMAGE_FILE_MACHINE_UNKNOWN = $000;
IMAGE_FILE_MACHINE_ALPHA = $184;
IMAGE_FILE_MACHINE_ARM = $1c0;
IMAGE_FILE_MACHINE_ALPHA64 = $284;
IMAGE_FILE_MACHINE_I386 = $14C;
IMAGE_FILE_MACHINE_IA64 = $200;
IMAGE_FILE_MACHINE_M68K = $268;
IMAGE_FILE_MACHINE_MIPS16 = $266;
IMAGE_FILE_MACHINE_MIPSFPU = $366;
IMAGE_FILE_MACHINE_MIPSFPU16 = $466;
IMAGE_FILE_MACHINE_POWERPC = $1F0;
IMAGE_FILE_MACHINE_R3000 = $162;
IMAGE_FILE_MACHINE_R4000 = $166;
IMAGE_FILE_MACHINE_R10000 = $168;
IMAGE_FILE_MACHINE_SH3 = $1A2;
IMAGE_FILE_MACHINE_SH4 = $1A6;
IMAGE_FILE_MACHINE_THUMB = $1C2;
{Под системы}
NATIVE = 1; {Не требует подсистемы (например драйвер устройства)}
WINDOWS_GUI = 2; {Выполняется в подсистеме Windows GUI}
WINDOWS_CUI = 3; {Выполняется в символьной подсистеме Windows(консольное приложение)}
OS2_CUI = 5; {Выполняется в символьной подсистеме OS/2 (только OS/21.x)}
POSIX_CUI = 7; {Выполняется в символьной подсистеме Posix}
type
{ DOS. EXE header }
PIMAGE_DOS_HEADER = ^IMAGE_DOS_HEADER;
IMAGE_DOS_HEADER = packed record
magic : WORD; { Подпись,признак EXE-программы }
PartPag : WORD; { Длина неполной последней страницы }
PageCnt : WORD; { Длина в страницах (512б), включая заголовок и последнюю страницу }
ReloCnt : WORD; { Число элементов в таблице перемещение }
HdrSize : WORD; { Длина заголовка в параграфах }
MinMem : WORD; { Минимум требуемой памяти за концом программы }
MaxMem : WORD; { Максимум требуемой памяти за концом программы }
ReloSS : WORD; { Сегментный адрес стека }
ExeSP : WORD; { Значение регистра SP }
ChkSum : WORD; { Контрольная сумма}
ExeIP : WORD; { Значение регистра IP }
ReloCS : WORD; { Сегментный адрес кодового сегмента }
TablOff : WORD; { Смещение в файле первого элемента таблицы перемещения }
Overlay : WORD; { Номер оверлея, 0 для главного модуля }
Res : packed array [0..3] of WORD; { Reserved words }
OEMID : WORD; { Идентификатор производителя }
OEMINFO : WORD; { Информация о пройзводителя }
Res2 : packed array [0..9] of WORD; { Reserved words }
NewHdr : Longint; { Смещение нового заголовка (PE HDR) }
end;
Eraser (2005-02-11 19:57:00) [24]NikNet ©
Как мне узнать имя процесса по его Handel Я использую PSAPI.DLL
GetModuleFileNameEx
Пользуюсь успехом Девчонок (Лет от 14 - 27)
Сразу бы писал от 5 до 50 )))
kaZaNoVa (2005-02-11 19:49:00) [25]Arazel (11.02.05 19:46) [6]
> Мне надо внедрить свой код в другую программу на
>DELPHI
> и на дискеа нев памяти!
упс, не посмотрел, тебе на диске надо??
- бред ... имхо вирус ...
kaZaNoVa (2005-02-11 19:48:00) [26]Arazel (11.02.05 19:46) [6]
я внедрял .. поищи по форуму "поток без длл ..."
Arazel (2005-02-11 19:46:00) [27]Я не давно сделал модуль над которым мучался целых три дня
этот модуль делает такие вещи Перехватывает функций API
все сделал на DELPHI все как надо работает и глобальнно
и не глобальнное!
Теперь проблемма вторая
Мне надо внедрить свой код в другую программу на DELPHI
и на диске а не в памяти!
Если поможите Я вам этот драйвер целиком подарю! С DDK(шками)!
Вам хорошо вы бесплатнно сидите а я платно да ещё и единички
кончаются :( где-то два часа осталось вот иза этого и быстро
пишу (Без ощибок!... :D)
Ладно гудбай!
Если поможите на мыло скинете...
Не пожалейте!
GanibalLector (2005-02-11 19:20:00) [28]2 VMcL © (11.02.05 19:09) [3]
Ага ;) Особенно понравилось это :
Очень красивый
Пользуюсь успехом Девчонок (Лет от 14 - 27)
kaZaNoVa (2005-02-11 19:19:00) [29]NikNet © (11.02.05 18:32) [2]
дай пример поюзать: xaker_delphi_sys(наше доброе животное)mail.ru
VMcL (2005-02-11 19:09:00) [30]>> Игорь Шевченко © (11.02.05 17:51) [1]
OFFTOPIC:
Да уж. Анкета автора внушает:
Login: NikNet
E-mail: NikNet@yandex.ru
Реальное имя: Аскар
Дата рождения: 25.01.1984 знак зодиака: Водолей
Город: Алматы
Пол: Мужской
Образование: высшее
Увлечения / хобби
Программист
Интересное о себе
Очень красивый
Пользуюсь успехом Девчонок (Лет от 14 - 27)
Очень хорошо знаю программирование
НУ да короче хватит и этого!
NikNet (2005-02-11 18:32:00) [31]Там чисты ДРАЙВЕР НА DELPHI + DDK для создание Драйвера!
на чистом DELPHI! без всяких ASM MASM ...!
Так же есть все Абсолютно все функций Native Api (Включая не док)
Игорь Шевченко (2005-02-11 17:51:00) [32]Встречный вопрос - а что это у тебя на сайте за объявление такое "Driver на Delphi + DDK за $20" ?
DDK стоит всяко дороже, уже не статью ли из RSDN ты продаешь ?