|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Июн 12, 2004 17:29:29 Как можно узнать сабж? Не пробегать же с IsValidReadPtr все 4 гигабайта.... процесс в заданных условиях может быть еще даже не запущен на исполнение. имею вииду, что узнать сабж после CreateProcess(....CREATE_SUSPENDED...) |
|
|
Дата: Июн 12, 2004 18:11:34 подробнее... какого модуля ? базовый адрес .exe или .dll какой ? какая ОС ? можно проенумить все процессы и модуля с помощью CreateToolhelp32Snapshot и найти какой-то один, искомый |
|
|
Дата: Июн 12, 2004 18:41:27 базовый адрес .exe или .dll какой именно CreateToolhelp32Snapshot именно это и искал. Спасибо... видимо, та прога его самостоятельно подгружает |
|
|
Дата: Июн 13, 2004 19:47:48 хотя не все так безоблачно. если вызвать CreateToolhelp32Snapshot сразу после CreateProcess(...CREATE_SUSPENDED...), то как-бы все хорошо идет и показывается, но при ResumeThread процесс умирает... GetThreadContext вообще какую-то билиберду возвращает (EIP == EBP, ESP == 1, если память не подводит) вообще кармическая цель - узнать EntryPoint... |
|
|
Дата: Июн 13, 2004 20:49:02 я все же так и не понял, какой процесс ты пытаешься исследовать... ты используешь CreateToolhelp32Snapshot после вызова CreateProcess, который *ты* же и вызываешь ? если так, то зачем тогда снапшот ? в последний параметр PROCESS_INFORMATION и так запишется ProcessID, зная который ты можешь прочитать память из этого процесса (ReadProcessMemory)... вот и прочитай PE заголовок, из которого достанешь EP... или объясни подробнее, если все не так |
|
|
Дата: Июн 13, 2004 20:55:48 а откуда взять смешение РЕ заголовка, если процесс загрузили не по ImageBase? например, могут же быть relocatable exe, и не-relocatable dll... |
|
|
Дата: Июн 13, 2004 20:57:21 или это настолько сферический случай, что про него можно забыть? |
|
|
Дата: Июн 13, 2004 21:04:07 |
|
|
Дата: Июн 13, 2004 21:13:07 видел сие, но оно, к сожалению, nt-only... а хотелось бы, чтобы и под Win98 (можно и другим методом) |
|
|
Дата: Июн 13, 2004 21:19:54 Ой-ешеньки... Да сколько ж можно эту тему мусолить... Есть библиотека PSAPI, в ней есть GetModuleInformation. Бери оттуда. И таскай за собой, как Olly делает. Или юзай свой примаханый snapshot. |
|
|
Дата: Июн 13, 2004 22:07:15 LoadLibrary("psapi.dll") вернуло нуль под win98se (сама dll лежит в C:\windows\system. вернуло ошибку "Присоединеное к системе устройство не работает", афаир, такое выдавалось, если DLLEntry что-то false возвращал. а CreateToolhelp32Snapshot безвозвратно у меня убивает спящий процесса... точнне процесс сразу умирает по пробуждению. |
|
|
Дата: Июн 13, 2004 22:17:05 DarkK Давай сюда свой код, потому что странные вещи ты говоришь, Toolhelp32 API, не могут вызывать такой "эффект".. |
|
|
Дата: Июн 13, 2004 22:18:25 |
|
|
Дата: Июн 13, 2004 22:28:38 GetStartupInfo(&startInfo); if ( !CreateProcess(0, argv[1], 0, 0, 0, CREATE_SUSPENDED, 0, 0, &startInfo, &procInfo)) { printf("Unable to create process\n"); return 1; } hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, procInfo.dwProcessId); // вот тут уже несмотря на полную валидность hSnapshop и то, что ResumeThread возвращает также верное значение, но после ResumeThread процесс умирает. |
|
|
Дата: Июн 13, 2004 22:33:07 глюк был на Win2k SP3 +некоторые критические патчи |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.081 |