Process Monitor nie uruchamia się na 64-bitowym komputerze


23

Gdy próbuję uruchomić Monitor procesu z SysInternals na niektórych 64-bitowych komputerach z systemem Windows 7, proces nie uruchamia się. Brak komunikatu o błędzie. Dwukrotnie klikam i nic się nie dzieje. Inne 64-bitowe komputery z systemem Windows 7 działają dobrze. Jakieś pomysły?


Mam ten sam problem i mogę uruchomić Process Monitor w trybie 32-bitowym z opcją wiersza poleceń procmon.exe /Run32. Jednak nie obsługuje przechwytywania w tym trybie.
jirkamat

@jirkamat Nie działa tutaj :(
Zero3 06.04.2016

Odpowiedzi:


33

Oto co znalazłem. 32-bitowy Procmon.exe zawiera w sobie 64-bitowy plik exe jako zasób binarny. Po uruchomieniu 32-bitowego pliku exe wyodrębnia wersję 64-bitową do ukrytego pliku o nazwie Procmon64.exe, a następnie wykonuje to. Z jakiegoś powodu ten proces kończy się niepowodzeniem w przypadku niektórych instalacji systemu Windows 7.

Udało mi się wyodrębnić 64-bitowy plik exe przy użyciu programu Visual Studio 2010.

  1. Otwórz Visual Studio i otwórz plik Procmon.exe za pomocą menu Plik-> Otwórz-> Plik ...
  2. W drzewie zasobów rozwiń węzeł „BINRES”
  3. Kliknij prawym przyciskiem myszy węzeł 1308 i wybierz Eksportuj ...
  4. Nazwij eksportowany zasób Procmon-64.exe i zapisz
  5. Uruchom wyodrębniony plik exe

Nie nazywaj wyodrębnionego exe Procmon64.exe (bez myślnika), ponieważ 32-bitowy Procmon spróbuje go usunąć, jeśli będzie taka szansa.

Jeśli nie masz programu Visual Studio, użyj ekstraktora plików wykonywalnych systemu Windows, takiego jak ResourcesExtract - http://www.nirsoft.net/utils/resources_extract.html


2
Interesujące jest to, że znalazłeś obejście, ale byłbym bardziej zainteresowany tym, dlaczego musiałbyś to zrobić.
Zoredache

Chciałbym również znaleźć przyczynę źródłową, ale debugowanie natywnego procesu bez symboli nie jest warte wysiłku. Zwłaszcza jeden tak zintegrowany z systemem operacyjnym jak Process Monitor.
Ryan Michela,

Wyodrębnienie 64-bitowego exe ProcMon do samodzielnego EXE i uruchomienie tego exe rozwiązuje ten problem dla mnie! ProcMon działa dobrze.
jirkamat

4
Pewnego razu podczas bezczynnego podwójnego klikania Procmon.exe w frustracji widziałem ukryty flash Procmon64.exe w Eksploratorze Windows. To dało mi wskazówkę, że wersja 64-bitowa została wyodrębniona przez wersję 32-bitową. Po tym przeczuciu doprowadziłem mnie do otwarcia 32-bitowego pliku exe w celu zbadania jego zasobów i znalazłem taki, który był o rząd wielkości większy od pozostałych. Wyodrębniłem zasób i zapisałem go jako plik .exe. I oto był 64-bitowy Monitor procesu.
Ryan Michela,

1
Ponieważ mam ten problem z wieloma programami Sysinternal, szczególnie tymi, które wyodrębniają wersję 64-bitową (to nagle stało się bardzo niedawno, nie mogę uruchomić żadnego z nich, ponieważ mówi, że katalog nie jest zapisywalny), ale jeśli uruchomisz ekstraktor zasobów i klikniesz „zasoby binarne” lub cokolwiek w dowolnej aplikacji sysinternal, możesz w zasadzie posortować według rozmiaru, a największą będzie aplikacja. Po prostu zmienić jego nazwę na exe i hajda ~
mgrandi

5

Pozwól mi cie zaskoczyć. procmon.exe WYMAGA działania stacji roboczej uruchomionej w celu uruchomienia. Używa go do wyliczenia czegoś i bez niego umrze bez słowa.

Nie jest to nigdzie udokumentowane i dość fałszywe.


1
Tak! To było to! Ta odpowiedź musi przejść na górę.
on

Tak, to mi zrobiło. Wersja 3.10 tego nie wymaga, ale wersja 3.20 tak. Udało ci się; umysł oszalały. Mówienie „dość fałszywy” jest ogromnym niedopowiedzeniem. Nie chcę prowadzić tej usługi, więc jestem bardzo rozczarowany Markiem.
Synetech,

2

Wiem, że ten wątek już dawno temu, ale ostatnio widziałem ten problem i zauważyłem inny czynnik, który może być pomocny. Prawo administratora. Jeśli zaloguję się jako administrator i uruchomię go, działa dobrze. Jeśli zalogujesz się jako użytkownik inny niż administrator i go uruchomisz, problem się stanie, a wyodrębniony procmon-64 pokaże ten sam problem.


2

Udało mi się wyodrębnić ProcMon64.exe z kolejnym skryptem Perla umieszczonym i wykonanym w folderze tymczasowym.

use File::Copy;

if(fork()==0)
{ system "C:\\SysInternals\\ProcMon.exe"}
else
{  for($i=1;$i<1000;$i++)
    {if(-e 'ProcMon64.exe')
      { copy('ProcMon64.exe',$i.'.exe')}
    }
}

Po wielokrotnym wykonaniu tworzy dziesiątki kopii, z których wszystkie są takie same (ten sam CRC32)



0

Rozwiązałem ten problem, ponownie sprawdzając moje zmienne środowiskowe. Możesz sprawdzić, %TEMP%czy kiedykolwiek coś dodałeś. Usuń wszystkie inne foldery z wyjątkiem Windows temp, a następnie uruchom ponownie.


-2

Użyłem hakera zasobów. Wyodrębnij 1038 jako kosz. dodaj .exe i wygląda na to, że się uruchomi.


Plik wykonywalny nie otworzy się w
hakerze
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.