Посл.ответ |
Сообщение |
Ранг: 23.1 (новичок), 3thx Активность: 0.01↘0 Статус: Участник
|
Создано: 19 апреля 2007 16:15 · Личное сообщение · #1 |
|
 Ранг: 120.9 (ветеран), 5thx Активность: 0.08↘0 Статус: Участник Programmer and reverser
|
Создано: 19 апреля 2007 16:35 · Личное сообщение · #2
Блин. На исходниках.ру поискать пробовал? ПОИСК РУЛИТ!!! СКОЛЬКО МОЖНО ГОВОРИТЬ?
----- Уважайте других и пишите грамотно. | Сообщение посчитали полезным: |
Ранг: 260.2 (наставник) Активность: 0.19↘0 Статус: Участник
|
Создано: 19 апреля 2007 17:40 · Личное сообщение · #3
ZX-CodeR, wasm.ru/article.php?article=1021003
| Сообщение посчитали полезным: |
Ранг: 163.7 (ветеран) Активность: 0.07↘0 Статус: Участник
|
Создано: 20 апреля 2007 06:24 · Личное сообщение · #4
Интересно, что для процесса, слова "висит" и "стоит" - синонимы (антоним "работает"), а в других случаях - антонимы =)
| Сообщение посчитали полезным: |
Ранг: 60.4 (постоянный) Активность: 0.03↘0 Статус: Участник
|
Создано: 21 апреля 2007 04:59 · Личное сообщение · #5
CreateToolhelp32Snapshot. Как, Вы ещё не установили MSDN?! Тогда мы идём к Вам!!
| Сообщение посчитали полезным: |
 Ранг: 68.0 (постоянный), 6thx Активность: 0.06↘0 Статус: Участник
|
Создано: 21 апреля 2007 11:44 · Личное сообщение · #6
Vedrus пишет:
Как, Вы ещё не установили MSDN?! Тогда мы идём к Вам!!
Если у вас есть MSDN на русском, то и ко мне тоже зайдите.
| Сообщение посчитали полезным: |
 Ранг: 1288.1 (!!!!), 273thx Активность: 1.29↘0 Статус: Участник
|
Создано: 21 апреля 2007 12:04 · Личное сообщение · #7
В гугле куча исходников по сабжу.
Dr3d пишет:
Если у вас есть MSDN на русском, то и ко мне тоже зайдите
Вы б еще в комиксах MSDN попросили.
| Сообщение посчитали полезным: |
Ранг: 203.3 (наставник) Активность: 0.22↘0 Статус: Участник UPX Killer -d
|
Создано: 21 апреля 2007 18:45 · Личное сообщение · #8
ZX-CodeR пишет:
Как узнать висит ли определенный процесс в памяти?
Как вариант, поискать по окошкам. FindWindow, EnumWindow... В остальном, как уже сказали - в гугл, сорцы в основном стандартные.
з.ы.ж. Разыскиваю MSDN в рулонах!
----- Я медленно снимаю с неё UPX... *FF_User* | Сообщение посчитали полезным: |
Ранг: 23.1 (новичок), 3thx Активность: 0.01↘0 Статус: Участник
|
Создано: 21 апреля 2007 22:48 · Личное сообщение · #9
МУЖИКИ помогите
где ошибка а?
здесь file - указатель на полный путь к файлу ,
для того ,чтобы узнать висит ли этот процесс...
BOOL _proc_in_memory(char* file){
PROCESSENTRY32 proc;
HANDLE snap;
proc.dwSize = sizeof(PROCESSENTRY32);
snap=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if(Process32First(snap,&proc)){
if (strcmp(proc.szExeFile,file)==0){MessageBox(0,"Файл найден!","PROC",0),
CloseHandle (snap);return TRUE;}}
else CloseHandle (snap);return FALSE;
while(Process32Next(snap,&proc))
if (strcmp(proc.szExeFile,file)==0){MessageBox(0,"Файл найден!","PROC",0);
CloseHandle (snap);
return TRUE;}
CloseHandle (snap);
return FALSE;}
У меня ни хрена не работает...
| Сообщение посчитали полезным: |
Ранг: 65.7 (постоянный) Активность: 0.05↘0 Статус: Участник
|
Создано: 21 апреля 2007 23:11 · Личное сообщение · #10
хм я не очень шарю в синтаксисе с++ но м/б так?:
while(Process32Next(snap,&proc)) {
if (strcmp(proc.szExeFile,file)==0){MessageBox(0,"Файл найден!","PROC",0);
CloseHandle (snap);
return TRUE;} }
если нет, тогда смотри кто что возвращает
| Сообщение посчитали полезным: |
Ранг: 23.1 (новичок), 3thx Активность: 0.01↘0 Статус: Участник
|
Создано: 21 апреля 2007 23:41 · Личное сообщение · #11
Чуваки, функция то скомпилилась(синтаксических ошибок нет),но работает не так ,
как нужно....
| Сообщение посчитали полезным: |
Ранг: 65.7 (постоянный) Активность: 0.05↘0 Статус: Участник
|
Создано: 21 апреля 2007 23:55 · Личное сообщение · #12
ну дык убери условие и посмотри что будет выдавать... как будто никогда ничего не отлаживал.... контрольные точки поставь... у меня такое ощущение что цикл у тебя в холостую гоняется
| Сообщение посчитали полезным: |
Ранг: 162.2 (ветеран) Активность: 0.09↘0 Статус: Участник
|
Создано: 22 апреля 2007 01:37 · Личное сообщение · #13
Halt пишет:
у меня такое ощущение что цикл у тебя в холостую гоняется
Угу.
ZX-CodeR
/offtop Из - за того, что ты фигурные скобки закрываешь в конце строки а не на новой строке(и после открывающейся скобки продолжаешь писать в иой же строке) твой код читать невозможно.
| Сообщение посчитали полезным: |
Ранг: 60.4 (постоянный) Активность: 0.03↘0 Статус: Участник
|
Создано: 22 апреля 2007 03:57 · Личное сообщение · #14
ZX-CodeR, szExeFile содержит только имя файла. Без пути.
ЗЫ. Учись отладчиком пользоваться, пригодится
AlexZ, перебор окон не вариант - есть процессы без окон
| Сообщение посчитали полезным: |
Ранг: 260.2 (наставник) Активность: 0.19↘0 Статус: Участник
|
Создано: 22 апреля 2007 10:38 · Личное сообщение · #15
Vedrus пишет:
szExeFile содержит только имя файла. Без пути.
_exeFile db 255 dup(?) ; лучшее напоследок - полный путь к процессам!
взято с васма.
| Сообщение посчитали полезным: |
Ранг: 23.1 (новичок), 3thx Активность: 0.01↘0 Статус: Участник
|
Создано: 22 апреля 2007 11:35 · Личное сообщение · #16
Всё блин ,разобрался,
цикл проскакивался из-за else ....
А вот рабочий код :
//file- в данном случае имя файла, а не пути
BOOL _proc_in_memory(char* file){
PROCESSENTRY32 proc;
HANDLE snap;
proc.dwSize = sizeof(PROCESSENTRY32);
snap=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if(Process32First(snap,&proc)){
if (strcmp(proc.szExeFile,file)==0){MessageBox(0,"Файл найден!","PROC",0),
CloseHandle (snap);return TRUE;}}
while(Process32Next(snap,&proc))
if (strcmp(proc.szExeFile,file)==0){MessageBox(0,"Файл найден!","PROC",0);
CloseHandle (snap);
return TRUE;}
CloseHandle (snap);
return FALSE;}
А вот следующий код использует путь к модулю,тобишь *.dll:
//file- в данном случае путь к dll
BOOL _proc_in_memory(char* file){
MODULEENTRY32 mod;
HANDLE snap;
mod.dwSize = sizeof(MODULEENTRY32);
snap=CreateToolhelp32Snapshot(TH32CS_SNAPMODULE,0);
if(Module32First(snap,&mod)){
if (strcmp(mod.szExePath,file)==0){MessageBox(0,"Файл найден!","PROC",0),
CloseHandle (snap);return TRUE;}}
while(Module32Next(snap,&mod))
if (strcmp(mod.szExePath,file)==0){MessageBox(0,"Файл найден!","PROC",0);
CloseHandle (snap);
return TRUE;}
CloseHandle (snap);
return FALSE;}
Если я не прав ,то напишите....
| Сообщение посчитали полезным: |
Ранг: 309.8 (мудрец), 21thx Активность: 0.17↘0 Статус: Участник
|
Создано: 22 апреля 2007 13:33 · Личное сообщение · #17
> strcmp(mod.szExePath,file)==0
сравнивать в uppercase лучше, это ещё в школе проходят...
----- Shalom ebanats! | Сообщение посчитали полезным: |
Ранг: 7.0 (гость) Активность: 0=0 Статус: Участник
|
Создано: 12 мая 2007 06:18 · Личное сообщение · #18
PROCESSENTRY32 действительно содержит только имя файла без пути. а полный путь можно узнать через GetModuleFileNameEx, сначала открыв процесс по идентификатору. При том, если есть права на получение этой инфы)) Бывают случаи, когда процессы спрятаны от сканирования, но их спалить всё равно можно, как раз через окна (GetWindowThreadProcessId), tcp/udp-соединения (под XP), через инфу о сервисах, вобщем идентификаторы процессов можно получить и косвеным образом ещё. Да, ещё сравнивать имена файлов лучше через StrCmpNI ))
| Сообщение посчитали полезным: |
Ранг: 36.3 (посетитель) Активность: 0.02↘0 Статус: Участник
|
Создано: 15 мая 2007 20:20 · Поправил: sxd · Личное сообщение · #19
ZX-CodeR держи два исходничка  на WinAPI откомпиллены в VC++ 8.0, оба рабочие  , в архиве исходник + прога... Enjoy my friend!
PS: если делать всё на совесть то лучше реализовать на уровне ядра....
--> Исходнички <-- http://slil.ru/24372636
| Сообщение посчитали полезным: |