- 12 Фев 2015
- 3 272
- 8
- 1 491
Недавно был спор о разрядности DLL файлов, возможно кто-то успел прочитать об этом.
Если честно, я некогда даже не интересовался с темой как определить разрядность файла, но вот пришлось.
Есть несколько методов проверки разрядности файла и самая точная это поле Machine в заголовке PE-файла:
0x014c — это всегда 32-бит (x86)
0x8664 — это всегда 64-бит (x64)
Поле "Machine" там всегда есть и она не может быть пустой!
Так же можно посмотреть информацию о файле просто в свойствах, в самом Windows. Например в поле "Версия продукта", рядом с самой версией может быть написана разрядность, но не всегда! То есть здесь, информация о разрядности может быть, а может и не быть!
У меня Windows 11 Pro 64bit, в нем на 32бит файлах она нечего не пишет, а если файл 64бит, то так и пишет "64-Bit", хотя нашел парочку файлов 64бит, в свойствах которого нет надписи "64-Bit"! Нашел один 32бит DLL файл, в свойствах которого вообще не было не какой информации.
Один словом, свойства файла не очень доверенный источник такой информации.
Если знаете ещё более точный метод определение разрядности, прошу делится.
Вот я написал маленькую программу, с помощью которого можно с легкостью определить разрядность DLL и EXE файлов. Программа проверяет именно поле Machine в заголовке PE-файла.
Если честно, я некогда даже не интересовался с темой как определить разрядность файла, но вот пришлось.
Есть несколько методов проверки разрядности файла и самая точная это поле Machine в заголовке PE-файла:
0x014c — это всегда 32-бит (x86)
0x8664 — это всегда 64-бит (x64)
Поле "Machine" там всегда есть и она не может быть пустой!
Так же можно посмотреть информацию о файле просто в свойствах, в самом Windows. Например в поле "Версия продукта", рядом с самой версией может быть написана разрядность, но не всегда! То есть здесь, информация о разрядности может быть, а может и не быть!
У меня Windows 11 Pro 64bit, в нем на 32бит файлах она нечего не пишет, а если файл 64бит, то так и пишет "64-Bit", хотя нашел парочку файлов 64бит, в свойствах которого нет надписи "64-Bit"! Нашел один 32бит DLL файл, в свойствах которого вообще не было не какой информации.
Один словом, свойства файла не очень доверенный источник такой информации.
Если знаете ещё более точный метод определение разрядности, прошу делится.
Вот я написал маленькую программу, с помощью которого можно с легкостью определить разрядность DLL и EXE файлов. Программа проверяет именно поле Machine в заголовке PE-файла.