kis*_*son 6 windows command-line architecture
在 Windows 上,例如:
is64 abc.exe
1
Run Code Online (Sandbox Code Playgroud)
和
is32 def.exe
1
Run Code Online (Sandbox Code Playgroud)
在 Windows 上,abc.exe 编译为 64 位,def.exe 编译为 32 位。
是否有命令行工具来检查 32 位或 64 位 exe 文件?
是的
c:\Program Files (x86)\GnuWin32\bin>file file.exe
file.exe; PE32 executable for MS Windows (console) Intel 80386 32-bit
c:\Program Files (x86)\GnuWin32\bin>cd ..\..\evernote\evernote
c:\Program Files (x86)\Evernote\Evernote>file evernote.exe
evernote.exe; PE32 executable for MS Windows (GUI) Intel 80386 32-bit
c:\Program Files (x86)\Evernote\Evernote>cd c:\Program Files\Internet Explorer
c:\Program Files\Internet Explorer>file iexplore.exe
iexplore.exe; PE32+ executable for MS Windows (GUI) Mono/.Net assembly
Run Code Online (Sandbox Code Playgroud)
PE32 格式代表 Portable Executable 32 位,而 PE32+ 是 Portable Executable 64 位格式。
见http://gnuwin32.sourceforge.net/packages/file.htm
喜欢:
is64 abc.exe
1
不完全是那样。
您可以使用该-b
选项从输出中排除文件名,然后您只需要一些命令行功夫来提取第一个单词(PE32 或 PE32+),将其与 PE32+ 进行比较并在您的 ìf` 语句中使用它。
在 Windows 10 上,如果您有周年纪念更新,如果您启用 bash shell,您可以打开一个 bash shell 并使用这样的file
命令
rgb@MYPCNAME:/mnt/c$ file install.exe
install.exe: PE32 executable (GUI) Intel 80386, for MS Windows
Run Code Online (Sandbox Code Playgroud)
或者
rgb@MYPCNAME:/mnt/c/Program Files/Internet Explorer$ file ieinstal.exe
ieinstal.exe: PE32+ executable (GUI) x86-64, for MS Windows
Run Code Online (Sandbox Code Playgroud)
小智 5
我编写了一对严格执行您要求的程序(添加了有关错误等的错误消息。)(实际上,这是一个具有定义的程序,可以将其行为更改为完全准确,但这并不重要.)
您可以在我的 Dropbox 上找到它们,此处。源代码包含在包中,但如果不需要,您可以将其丢弃。它基本上只包含在您不信任我的二进制文件的情况下。
使用示例:
>is32 C:\Windows\System32\taskmgr.exe
1
>is64 C:\Windows\System32\taskmgr.exe
0
Run Code Online (Sandbox Code Playgroud)
基本上,该程序的工作原理是首先对二进制文件进行内存映射,然后定位 PE 标头,最后将 Machine 字段与您要求的任何体系结构的值进行比较。本质上是一个非常简单的过程。
归档时间: |
|
查看次数: |
16138 次 |
最近记录: |