Yüklenmiş bir uygulamanın 64 bit mi yoksa 32 bit mi olduğunu söylemenin hızlı yolu


107

64 bit Windows Server 2003'te yüklü üçüncü taraf bir uygulama (bu durumda Cognos Data Manager) var.

Bir uygulamanın 64 bit uygulama olarak mı yoksa 32 bit uygulama olarak mı derlendiğini belirlemek için hızlı bir yol var mı?

Varsayılan olarak, bir programın Program Files'da (x86) yüklenmesini istedi. Sanırım bunun 32 bit versiyon olduğu anlamına geliyor. Bir Oracle veritabanıyla konuşmam gerekiyordu ve bu çalışmayı sağlamak için nihayetinde “(" ve ")" köşeli parantez içermeyen bir dizine yeniden yükledim, çünkü bu bir soruna neden oluyordu. Ayrıca 64 bit ve 32 bit Oracle istemcilerini de yükledim.

Gelecekte başvurmak için "xxxx fred.exe" komutunu yazabilmek ve fred.exe dosyasının 32 bit (64 bit) veya 64 bit (örneğin, ODBC veri kaynakları vb.) Gereksinimi olup olmayacağını bana bildirmesini istiyorum.


1
Bir uygulama Progam Files (x86) klasöründe bulunuyorsa, uygulamanın 64 bit derlendiğinden emin olmaz. Bu, çoğu kurucunun izlediği bir kongredir. Örneğin, Chrome 64 bit, x86 klasörüne yüklenir (ne yazık ki).
nawfal

Yanıtlar:


92

Uygulamayı çalıştırırsanız, Görev Yöneticisi'nde 32 bit olduğunu belirtmek için yanında * 32 olmalıdır. Bunun Server 2003'te uygulandığından eminim, olumlu değil, umarım birileri netleşebilir.

Ayrıca PEİD üzerinden de çalıştırabilirsiniz . PEiD 64-bit PE'leri desteklemez, bu yüzden 64-bit ise boğulacaktır.

Windows için ünlü GNU dosyası da var . Yürütülebilir bir dosya hakkında her türlü bilgiyi size söyleyecektir.

Örnek:

$ file winrar-x64-392b1.exe
winrar-x64-392b1.exe: PE32+ executable for MS Windows (GUI)

$ file display.exe
display.exe: PE32 executable for MS Windows (GUI) Intel 80386 32-bit</pre>

Gördüğünüz gibi, 64-bit WinRAR yükleyici, 64-bit bir çalıştırılabilir olduğunu gösteren PE32 + olarak sınıflandırılmıştır . 32-bit uygulama, basitçe 32-bit bir çalıştırılabilir PE32'dir.


1
Çok
John T

1
Görev Yöneticisi'ne bir alternatif İşlem Gezgini olabilir, orada Görüntü Türü sütununu ekleyebilirsiniz. Seçenekler menüsünden Görev Yöneticisi'ni bunun yerine değiştirebilirsiniz ... :-)
Tamara Wijsman

GNU dosyası, 64 bit sistemde çalıştığını algılayan ve yürütmek üzere 64 bit görüntüyü paketten çıkaran 32 bit saplama olan İşlem Gezgini gibi programlarda ne gösterir?
afrazier

İndirin ve kendiniz deneyin?
John T


40

Başka bir program kurmadan veya dosyayı çalıştırmadan en kolay yol, dosyayı sağ tıklatmak, Özellikler'i seçip Uyumluluk sekmesine gitmektir . Gri renkte bir seçenek yoksa ve Windows XP ve 9x modları sunuluyorsa, 32 bit'dir. Grileştirilmiş seçenekler varsa ve Vista sunulan en eski mod ise, 64 bit'tir. Uygulamayı hiç başlatmanıza gerek yok.

Uygulama zaten başlatılmışsa, elbette diğer cevaplarda belirtilen * 32 fikrini kullanabilirsiniz. Ancak, bu Windows 8.x ve yeni görev yöneticisinde bulunmaz. Neyse ki, Ayrıntılar sekmesindeki sütun başlıklarına sağ tıklayarak ve Sütun seç öğesini seçerek bir Platform sütununu etkinleştirebilirsiniz . Sütun uygun şekilde "32 bit" veya "64 bit" içerecektir.


Yeterince makul geliyor.
ArtOfWarfare

1
Evet bunu beğendim. Tek bir dosya için kontrol etmek istiyorum ve dizüstü bilgisayarımı indirilen saçmalıklarla doldurmak istemedim ...
Gottlieb Notschnabel

* 32 bildirimi, Windows 8 görev yöneticisinde yoktur, ancak varsayılan olarak görünmeyen "Platform" sütununa sahiptir. Bkz 7tutorials.com/...
Pino

@Pino'ya teşekkürler. Windows 8 kullanırken hiçbir zaman bir nedenim olmadı. (HD'm düştüğünde Windows 7'ye geri döndüm ve W8 uygulamalarını hiç kullanmadığımı fark ettim.) Cevabımı güncelleyeceğim.
trlkly

25

Visual Studio veya Platform SDK'yı kurduysanız dumpbin /headers, PE başlık değerlerine bakmak için kullanabilirsiniz .

64 bit yürütülebilir dosya örneği:

PE signature found

File Type: EXECUTABLE IMAGE

FILE HEADER VALUES
            8664 machine (x64)
               5 number of sections
        4987EDCA time date stamp Tue Feb 03 08:10:02 2009
               0 file pointer to symbol table
               0 number of symbols
              F0 size of optional header
              23 characteristics
                   Relocations stripped
                   Executable
                   Application can handle large (>2GB) addresses

OPTIONAL HEADER VALUES
             20B magic # (PE32+)
            8.00 linker version
           2A600 size of code
           18A00 size of initialized data
               0 size of uninitialized data
           2AE90 entry point (000000000042AE90)
            1000 base of code
               ...

Ve 32 bit için:

PE signature found

File Type: EXECUTABLE IMAGE

FILE HEADER VALUES
             14C machine (x86)
               3 number of sections
        4B0C786D time date stamp Wed Nov 25 01:21:01 2009
               0 file pointer to symbol table
               0 number of symbols
              E0 size of optional header
             103 characteristics
                   Relocations stripped
                   Executable
                   32 bit word machine

OPTIONAL HEADER VALUES
             10B magic # (PE32)
            9.00 linker version
           42000 size of code
            4000 size of initialized data
           6F000 size of uninitialized data
           B0EE0 entry point (004B0EE0)
           70000 base of code
               ...

Dosya başlığındaki ilk değer size mimariyi gösterir: x86 için 0x14C veya x64 için 0x8664.


İlginç ve ayrıntılı bir yaklaşım, gerçekten tekrar programlamaya başlamam gerekiyor, +1.
John T.

18

Onaltılı bir editör programınız varsa, sadece dosyanızı açın ve standart başlık intro kısmından hemen sonra ("Bu program DOS modunda çalıştırılamaz ..." gibi)

"PE..L" (hex kodu: 504500004C) = 32 bit

veya

"PE..d †" (hex kodu: 504500006486) = 64 bit


Total Commander'ı dosya yöneticim olarak kullanıyorum, bu yüzden benim için bu en basit çözüm. Dosyanın başlangıcını görüntülemek ve hemen yanıt almak için F3 tuşuna basabilirim.
mivk

1
Ew, aslında "64" "86" yazdı, içinde 64 bit olduğunu göstermek için insan tarafından okunabilen bayt olarak yazdılar. Ne çirkin :)
Nyerguds

@Nyerguds neden çirkin? Bu hexspeak denir ve oldukça yaygın olarak kullanılır, esp. sihirli sayılarla. Örneğin facebook'un IPv6 değeri*:FACE:B00C:*
phuclv 24.0717

Bu hiç aynı değil. Sadece onaltılık leetspeak hakkında konuşuyorsun. Bu kelimenin tam anlamıyla 100 sayısını "64" olarak kullanıyor, çünkü onaltılıkta 6 ve 4 gibi görünüyor.
Nyerguds

Dize "6486" @Nyerguds besbelli ki, onaltılık içindedir olduğu karakterler olarak onaltılık basamak okumak hexspeak. D için 0xD kullandığınızda D için 0xD kullandığınızda 0xDEADBEEF ile ilgili sorun nedir? Eğer çirkin ise, BCD de tam anlamıyla 100 sayısını 64 için kullandığınız yerde çirkindir
phuclv

5

alt metin
OS / 2, NE, PE32, PE32 + ve VxD dosya tipleri için EXE Explorer Yürütülebilir Dosya Gezgini.

Bu uygulama MiTeC Taşınabilir Çalıştırılabilir Okuyucu dayanmaktadır . Yürütülebilir dosya özelliklerini ve yapısını okur ve görüntüler. PE32 (Taşınabilir Yürütülebilir), PE32 + (64bit), NE (Windows 3.x Yeni Yürütülebilir) ve VxD (Windows 9x Sanal Aygıt Sürücüsü) dosya türleriyle uyumludur. .NET yürütülebilir dosyaları da desteklenmektedir.

Borland derleyicileri tarafından derlenen dosyalar için kullanılan sınıfları, kullanılan birimleri ve formları sıralar.

Not: Bir GUI ile birlikte gelir ve Windows ikili dosya yapısını 'keşfetmenizi' sağlar.
Ne yazık ki, komut satırından açmak için bir hedef ikili bile kabul etmiyor gibi görünüyor. Ancak verdiği detay bazı durumlarda yararlı olabilir.


3

Örneğin Sysinternals Suite'in birsigcheck.exe parçası olup olmadığını kontrol edebilirsiniz.

$ sigcheck.exe some_app.exe

Sigcheck v2.51 - File version and signature viewer
Copyright (C) 2004-2016 Mark Russinovich
Sysinternals - www.sysinternals.com

C:/Program Files (x86)/Foo App\some_app.exe:
    Verified:   Signed
    Signing date:   14:48 23/12/2015
    Publisher:  X
    Company:    X
    Description:    X
    Product:    Some App
    Prod version:   5.0.0.1241
    File version:   5.0.0.1241
    MachineType:    32-bit

1
Bu aynı zamanda DLL'ler için de geçerlidir.
user34660 11:16

2

Diğer bir basit yol da PESnoop kullanmaktır:

C:\> pesnoop photoshop.exe /pe_dh


-------------------------------------------------------------------------------
 PESnoop 2.0 - Advanced PE32/PE32+/COFF OBJ,LIB command line dumper by yoda
-------------------------------------------------------------------------------

Dump of file: photoshop.exe...
Modus:        64bit Portable Executable Image...
...

PESnoop'u almak için bir yer burada: http://www.prestosoft.com/download/plugins/PESnoop.zip

- Dave



2

Bağımlılık Walker sadece exe dosyaları değil aynı zamanda DLL dosyalarını doğrulamak için yararlı bir GUI aracıdır. 64 bit DLL veya EXE dosyasının yanında 64 simge bulunur.


1
filever /bad *.exe

WAMD64 veya W32i veya W16 ilk sütunda olacaktır.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.