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.