![]() |
Вопросы про EXE и DLL
Всем драсьте =)
Есть процесс, я получил список длл-ок, которые она использует. Как мне получить список функций, используемые процессом? P.S. кто-нить качал сорцы отсюда? |
2 года прошло!!! Здохли? :(
Ты на дату посмотри!!!!... :( |
Цитата:
Сабж? |
criz
Для получения списка всех процессов в системе, если я не ошибаюсь можно получить так: Код:
type |
cash$$$, нет. Мне надо получить список функций, которые использует процесс
|
смотри в таблицу импорта exe-файла процесса.
|
Цитата:
P.S. нашел функцию ImageLoad()... |
Есть плагин для Тотал командера им можно посмотреть таблицу импорта
Называется PEViewer |
St0nX, замечательная вещь. Еще есть у Руссиновича ProccessExplorer и dumpbin(или как-то так) у VC++ :)
Только вот мне свое хочется. |
в статье есть примеры по работе с таблицей импорта
http://wasm.ru/article.php?article=green2red02 |
Цитата:
|
Сделал вывод названий секций и их виртуальных адресов(VA). Результат:
Цитата:
|
Цитата:
|
а) импорт - читай описание PE-формата
б) прога может быть упакована и восстановлять таблицу импорта в начале своей работы в) прога может динамически подгружать функции - тогда у тебя немного шансов их найти, не реверся её |
2 desTiny:
а) читаю, мноооого чего читаю. б) она не упакована, обычный "hello, world" з.Ы. пытаюсь получить имя из IMAGE_IMPORT_DESCRIPTOR, пока ниче не выходит :( Код:
PIMAGE_IMPORT_DESCRIPTOR Import; |
ППЦ! Сделал :-) Вывыодится импорт :)
Осталось разобраться че я сделал))) P.S. кому интересно, идите по ссылке , которую bons дал |
Как определить тип файла(ехе или длл)?
Пробую вот так: Код:
if(hPE->FileHeader.Characteristics == IMAGE_FILE_EXECUTABLE_IMAGE) |
FileHeader->Characteristics->Dll
|
Цитата:
Есть такой способ: Код:
if(PE->FileHeader.Characteristics & IMAGE_FILE_EXECUTABLE_IMAGE) |
а я что сказал? я указал не объектное обращение к загруженному файлу на сях, а куда смотреть в пе-заголовке.
|
Вот, какое-то подобие dumpbin'у
Цитата:
З.Ы. пока только работает с import table |
Есть книжка "Ассемблер и дизассемблирование" Пирогова, там в приложении еще одно подобие, но выводит импорт, экспорт, ресурсы и отладочную информацию, вобщем вот сурс - http://slil.ru/26553218 ;)
|
Товарищи, как прочитать таблицу импорта/экспорта запущенных процессов?
|
Цитата:
2)читаете из структуры PROCESSENTRY32 поле szExeFile. Маппите исп. модуль себе и работаете с импортом/экспортом. Второй вариант - можно так же прочесть поле MODULEENTRY32 modBaseAddr - получить базу загрузки модуля и modBaseSize - его размер. Скопировать себе с помощью ReadProcessMemory и п.3. 3) а далее работать с директорией экспорта/импорта. хорошо расписано тут http://www.wasm.ru/article.php?article=green2red02#_Toc100906487 |
0x0c0de, спасиб. Вроде бы все так и делал.... только вот выдает ошибку доступа ("процесс уже занят") или как-то так... Будем искать ошибку.
|
Цитата:
Цитата:
P.S. пытался через OpenFileMapping: Код:
OpenFileMapping(FILE_MAP_ALL_ACCESS, 0, "calc");Цитата:
|
Я хз как вы там писали
Код:
// toolhelp.cpp : Defines the entry point for the console application. |
Цитата:
|
И сейчас проблемы? Мэппите потом, после того как хендл получили
xpsp2 http://s45.radikal.ru/i107/0902/bb/07d61e611a10.jpg xpsp3 http://s40.radikal.ru/i090/0902/1c/cc3243bb41e3.jpg vista http://s48.radikal.ru/i121/0902/65/22d36c8ebcd8.jpg win7 http://i034.radikal.ru/0902/f2/d6ae6efd1b1f.jpg Я вообще-то тестирую код, перед тем как постить |
Усе сделалось :) Проблема была в правах доступа к файлу.
Цитата:
Мои глюки и мои ошибки :) |
Есть файл trigraph.exe, Builder'овский. Так вот все PE-редакторы/вьюверы сообщают, что это не PE-файл. Проверьте плиз кто-нить этот файл, чем он отличается от других.
Цитата:
З.З.Ы. файл чист, вот отчет: Цитата:
|
IMAGE_NT_SIGNATURE отсутствует )
|
Сделал проверку таким вот образом:
Код:
if(PEh->Signature != IMAGE_NT_SIGNATURE)З.Ы. магнитные бури что-ли сегодня...голова не пашет =\ |
поместите свой код в try-блок или проверяйте не выходит ли за границы выделенной под проекцию области памяти значение (смещение предположительного pe-заголовка+4+адрес начала проекции). Здесь как раз выход за границы имеет место быть (смотрела в файле trigraph.exe).
00005000 - выделено под проекцию 00010000 - смещение предполагаемого pe-заголовка |
Цитата:
|
0x0c0de, спасибо. Все работает :)
P.S. 2 x0man, я сюда не из-за плюсиков/звездочек пришел. Они мне вобще "параллельны" =) |
Вы смысла моих слов не понимаете. забейте.
|
Доброго времени суток! На rsdn есть статья, сделал все как там написано. Скомпилил dll-ку "перехватчик", затем написал прогу:
Код:
#include <windows.h>P.S. вот исходник дллки: Код:
// dll.cpp : Defines the entry point for the DLL application. |
Мне кажется или в этом коде нет функции VirtualProtectEx ?
--added Кстати вот была тема http://forum.antichat.ru/thread32176.html А, сейчас посмотрела код WriteProcessMemory Код:
7C80222C 8945 F8 MOV DWORD PTR SS:[EBP-8],EAXVirtualProtect не нужен сталобыть, PAGE_EXECUTE_READWRITE уже есть (0x40). код, кстати у меня работает |
Может дело в LoadLibrary? Я могу так из своей проги использовать эту длл?
|
| Время: 21:25 |