Jak bardzo technicznej odpowiedzi oczekujesz? Prawdopodobnie możesz zmusić exe do uruchamiania zawsze w trybie 32bit za pomocą kilku narzędzi SDK, ale wymaga to trochę pracy.
Łatwą odpowiedzią jest uruchomienie z 32bitowego procesu (np. użyj %SystemRoot%\SYSWOW64\cmd.exe
do uruchomienia).
Bardziej skomplikowane jest sprawdzenie jaki to rodzaj exe, a następnie zmodyfikowanie go samodzielnie. Tło tutaj jest zrozumieć, że skompilowany kod z języków, które bezpośrednio pracują z interfejsami API Windows, są tworzone jako 32bit lub 64bit w czasie kompilacji przez programistę. To nie może być zmienione bez powrotu do kodu źródłowego.
Jednak coraz częściej aplikacje są pisane za pomocą warstwy wirtualizacji, która ułatwia pisanie aplikacji. Istnieją dwie popularne: .NET i Java. Nie jestem pewien co do Javy, poza tym, że wiem, że wymuszenie odpowiedniej instalacji Java runtime rozwiąże problem.
Dla .NET możesz użyć narzędzi SDK do:
- Walidacji, że aplikacja jest “AnyCPU”:
corflags myExe.exe
. Użycie narzędzia z .NET SDK do odczytania nagłówków zespołu .NET, dla exe zwróci coś takiego jak:
Version : v4.0.30319 CLR Header: 2.5 PE : PE32 CorFlags : 0x20003 ILONLY : 1 32BITREQ : 0 32BITPREF : 1 Signed : 0
the 32BITREQ
mówi mi, że jest to AnyCPU
ponieważ 32bit nie jest wymagane.
- Użyj
corflags
z opcją /32BITREQ+
aby zmodyfikować exe tak, aby był tylko 32bitowy.