Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как мне узнать имя процесса по его Handel Я использую PSAPI.DLL [D7, WinXP]


Страницы:   1 2

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 ты продаешь ?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо