වින්ඩෝස් හි ද්විමය බිට් 32 හෝ 64 දැයි පරීක්ෂා කිරීමට පහසු ක්රමයක් තිබේද? මම වැඩසටහන 32bit යන්ත්රයකට ගෙනයාමට පෙර පරීක්ෂා කර බැලිය යුතු අතර දර්ශනීය අසමත් වීමක් අත්විඳිය යුතුය.
වින්ඩෝස් හි ද්විමය බිට් 32 හෝ 64 දැයි පරීක්ෂා කිරීමට පහසු ක්රමයක් තිබේද? මම වැඩසටහන 32bit යන්ත්රයකට ගෙනයාමට පෙර පරීක්ෂා කර බැලිය යුතු අතර දර්ශනීය අසමත් වීමක් අත්විඳිය යුතුය.
Answers:
රිචඩ්ගේ පිළිතුරෙන් ශීර්ෂ අගයන් විමසා බැලීමෙන් පසු , මම වේගවත්, පහසු සහ පෙළ සංස්කාරකයක් පමණක් අවශ්ය විසඳුමක් ඉදිරිපත් කළෙමි. වින්ඩෝස් හි පෙරනිමි notepad.exe පවා ක්රියා කරයි.
ක්රියාත්මක කළ හැකි දේ පෙළ සංස්කාරකයේ විවෘත කරන්න. Open...වින්ඩෝස් Open with...ක්රියාත්මක කළ හැකි අය සඳහා සන්දර්භය මෙනුවේ විකල්පයක් නොපෙන්වන හෙයින් ඔබට සංස්කාරකගේ දෙබස් ඇදගෙන යාමට හෝ භාවිතා කිරීමට සිදු විය හැකිය.
පළමු සිදුවීමෙන් පසු මුද්රණය කළ හැකි පළමු අක්ෂර පරීක්ෂා කරන්න PE. මෙම කොටස බොහෝ දුරට අවම වශයෙන් යම් අවකාශයකින් වට වී ඇති අතර (එය විශාල ප්රමාණයක් විය හැකිය), එබැවින් එය දෘශ්යමය වශයෙන් පහසුවෙන් කළ හැකිය.
මෙන්න ඔබ සොයා ගැනීමට යන්නේ:
PE L
PE d†
අනතුරු ඇඟවීමේ වචනයක්: විශාල ලිපිගොනු වල පෙරනිමි නොට්පෑඩ් භාවිතා කිරීම ඉතා මන්දගාමී විය හැකි බැවින් මෙගාබයිට් හෝ ඊට වඩා විශාල ගොනු සඳහා එය භාවිතා නොකිරීම හොඳය. මගේ නඩුවේදී MiB 12 ගොනුවක් ප්රදර්ශනය කිරීමට තත්පර 30 ක් පමණ ගත විය. කෙසේ වෙතත්, නොට්පෑඩ් ++ ට 120 MiB ක්රියාත්මක කළ හැකි ක්ෂණිකව පාහේ ප්රදර්ශනය කිරීමට හැකි විය.
ඔබට අතිරේක මෘදුකාංගයක් ස්ථාපනය කළ නොහැකි යන්ත්රයක ගොනුවක් පරීක්ෂා කිරීමට අවශ්ය නම් මෙය විසඳුම ප්රයෝජනවත් වේ.
ඔබ සතුව HEX-Editor තිබේ නම්, PE අත්සනෙහි ඕෆ්සෙට් එක ඕෆ්සෙට් හි පිහිටා ඇත 0x3C. අත්සන නම් PE\0\0(අකුරු "පී" සහ "ඊ" පසුව ශුන්ය බයිට් දෙකක්), ඉන්පසු ලිට්ල් එන්ඩියන් හි බයිට් මැෂින් වර්ග දෙකකි.
අදාළ අගයන් වේ 0x866464-bit ක්රියාත්මක කිරීම සඳහා සහ 0x014c32-bit එකක් සඳහා ( 64 86හා 4c 01පිළිවෙළින් බොහෝ endianness සඳහා ගලපා විට, නමුත් ඔබ hex වටිනාකමක් සොයන විට ඕනෑම යහපත් hex කර්තෘ ස්වයංක්රීයව බොහෝ endianness හැසිරවිය ඇත). තවත් බොහෝ අගයන් ඇත, නමුත් ඔබට මේවායින් කිසිවක් හමු නොවනු ඇත, නැතහොත් ඔබේ වින්ඩෝස් පරිගණකයේ එවැනි ක්රියාත්මක කළ හැකි ඒවා ක්රියාත්මක කිරීමට නොහැකි වනු ඇත.
මයික්රොසොෆ්ට් පීඊ සහ කෝෆ් පිරිවිතර යන්ත්ර වර්ග අංශයෙන් යන්ත්ර වර්ගවල සම්පූර්ණ ලැයිස්තුව සහ .exe පිරිවිතර සමඟ සොයාගත හැකිය .
Microsoft PE and COFF Specificationගත හැකි වනු ඇත, එය ලබා ගත හැකි තරම් ලේඛනගත කොන්ත්රාත්තුවක් වන අතර PE ශීර්ෂයේ නිශ්චිත ලිපිනය සොයා ගන්නේ කෙසේද යන්න පිළිබඳ උපදෙස්. ඕනෑම .exeගොනුවක. මයික්රොසොෆ්ට් හි ක්රියාත්මක කළ හැකි ආකෘතිය පිළිබඳ මයික්රොසොෆ්ට් නිල පිරිවිතරයට වඩා විශ්වාසදායක ප්රභවයක් ඔබ සතුව ඇත්නම්, එය කුමක්දැයි දැන ගැනීමට මම කැමතියි.
විකල්පය dumpbin.exeසහිත SDK මෙවලමට /headersමෙම තොරතුරු ඇතුළත් වේ, මේ දෙක සංසන්දනය කරන්න (මම ප්රධාන තොරතුරු සඳහා නිර්භීතව එකතු කර ඇත්තෙමි)
PS [64] E: \ # 4> ඩම්ප්බින් / ශීර්ෂ C: \ Windows \ system32 \ cmd.exe
මයික්රොසොෆ්ට් (ආර්) COFF / PE ඩම්පර් අනුවාදය 10.00.40219.01
ප්රකාශන හිමිකම (ඇ) මයික්රොසොෆ්ට් සංස්ථාව. සියලුම හිමිකම් ඇවිරිණි.
C ගොනුවේ ඩම්ප්: \ Windows \ system32 \ cmd.exe
PE අත්සන හමු විය
ගොනු වර්ගය: ක්රියාත්මක කළ හැකි රූපය
FILE HEADER VALUES
8664 යන්ත්රය (x64)
කොටස් 6 ක්
4CE798E5 කාල දිනය මුද්දර සෙනසුරාදා නොවැම්බර් 20 09:46:13 2010
සංකේත වගුවට ගොනු දර්ශකය 0
සංකේත 0 ක්
විකල්ප ශීර්ෂයේ F0 ප්රමාණය
ලක්ෂණ 22 ක්
ක්රියාත්මක කළ හැකි
යෙදුමට විශාල (> 2GB) ලිපින හැසිරවිය හැකිය
[...]
හා
PS [64] E: \ # 5> ඩම්ප්බින් / ශීර්ෂ C: \ Windows \ syswow64 \ cmd.exe
මයික්රොසොෆ්ට් (ආර්) COFF / PE ඩම්පර් අනුවාදය 10.00.40219.01
ප්රකාශන හිමිකම (ඇ) මයික්රොසොෆ්ට් සංස්ථාව. සියලුම හිමිකම් ඇවිරිණි.
C ගොනුවේ ඩම්ප්: \ Windows \ syswow64 \ cmd.exe
PE අත්සන හමු විය
ගොනු වර්ගය: ක්රියාත්මක කළ හැකි රූපය
FILE HEADER VALUES
14 සී යන්ත්රය (x86)
කොටස් 4 ක්
4CE78E2B කාල දිනය මුද්දර සෙනසුරාදා නොවැම්බර් 20 09:00:27 2010
සංකේත වගුවට ගොනු දර්ශකය 0
සංකේත 0 ක්
විකල්ප ශීර්ෂයේ E0 ප්රමාණය
ලක්ෂණ 102 යි
ක්රියාත්මක කළ හැකි
32 බිට් වචන යන්ත්රය
[...]
dumpbin /headers | findstr "machine"
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin
ඔබට සම්පූර්ණ වින්ඩෝස් sigcheck.exeඑස්ඩීකේ හෝ විෂුවල් ස්ටුඩියෝ නොමැති නම් හෝ අවශ්ය නොවන්නේ නම්, ඔබට SysInternals වෙතින් භාවිතා කළ හැකිය :
sigcheck.exe C:\Windows\Notepad.exe
ප්රතිදානය:
Sigcheck v2.1 - File version and signature viewer
Copyright (C) 2004-2014 Mark Russinovich
Sysinternals - www.sysinternals.com
c:\windows\notepad.exe:
Verified: Signed
Signing date: 8:59 AM 8/22/2013
Publisher: Microsoft Windows
Description: Notepad
Product: Microsoft« Windows« Operating System
Prod version: 6.3.9600.16384
File version: 6.3.9600.16384 (winblue_rtm.130821-1623)
MachineType: 64-bit
fileඋපයෝගීතාව (උදා: සිග්වින් වෙතින්) 32- හා 64-බිට් ක්රියාත්මක කළ හැකි ඒවා අතර වෙනස හඳුනා ගන්නා බව මට තහවුරු කළ හැකිය . ඒවා පහත පරිදි දිස් වේ:
32.exe: PE32 executable (GUI) Intel 80386, for MS Windows
64.exe: PE32+ executable (console) x86-64, for MS Windows
ඔබට පෙනෙන පරිදි, එය ඉතා පැහැදිලිය. මීට අමතරව, එය කොන්සෝලය සහ GUI ක්රියාත්මක කළ හැකි ඒවා අතර වෙනස හඳුනා ගනී.
MZවෙනුවට ඇත්තේ PEඇයි?
සරල ක්රමයක් නම් එය ක්රියාත්මක කිරීමයි (ඔබ එය විශ්වාස කරයි යැයි උපකල්පනය කර) සහ කාර්ය කළමනාකරු තුළ ඇති ක්රියාවලි පටිත්ත දෙස බලන්න. 32bit ක්රියාවලි ක්රියාවලි නාමයේ අවසානයේ "* 32" පෙන්වනු ඇත. එය ඔබේ පරිගණකයේ ධාවනය කිරීමට කැමති දෙයක් නොවේ නම් ඔබට EXE Explorer උත්සාහ කළ හැකිය . එය 32 හෝ 64bit ද ඇතුළුව ක්රියාත්මක කළ හැකි තොරතුරු පිළිබඳ සම්පූර්ණ තොරතුරු සමූහයක් පෙන්වනු ඇත.
mainපිවිසුම් ස්ථානයක් නොමැති අතර එය තනිවම ක්රියාවලියක් ලෙස ක්රියාත්මක නොවේ. ආරම්භක ශ්රිතයක් පටවන විට එය හැඳින්වෙන නමුත් එය "ප්රධාන" නොවේ.
බොහෝ අය විශිෂ්ට 7-zip ස්ථාපනය කර ඇති අතර 7-Zip ෆෝල්ඩරය ඔවුන්ගේ එකතු කර PATHඇත. 7-zip, MSI ගොනු සහ PE ක්රියාත්මක කළ හැකි වැනි ZIP සහ RAR හැර ගොනු ආකෘති තේරුම් ගනී. 7z.exeප්රශ්නයේ ඇති PE ගොනුවේ (Exe හෝ DLL) විධාන රේඛාව භාවිතා කරන්න :
7z l some.exe | more
7z l some.exe | findstr CPU
නිමැවුමට CPUරේඛා කියවීම සමඟ පහත සඳහන් රේඛා ඇතුළත් වේ, x86හෝ x64මෙහි අසනු ලබන්නේ එයයි:
Path = C:\Extra\AV\neroAacEnc.exe
Type = PE
CPU = x86
Characteristics = Executable 32-bit
Path = C:\Extra\AV\LAME\lame_enc.dll
Type = PE
CPU = x86
Characteristics = Executable DLL 32-bit
Path = C:\Extra\AV\FFmpeg\bin\ffmpeg.exe
Type = PE
CPU = x64
64-bit = +
Characteristics = Executable LargeAddress NoRelocs NoLineNums NoLocalSyms NoDebugInfo
Path = C:\Extra\AV\FFmpeg\bin\avcodec-56.dll
Type = PE
CPU = x64
64-bit = +
Characteristics = Executable DLL LargeAddress NoLineNums NoLocalSyms NoDebugInfo
fileඇතුළත ක්රියාත්මක කිරීමක් තිබේද?
ප්රොසෙස් එක්ස්ප්ලෝරර් හි 64-බිට් අනුවාදය ඔබට පැවසිය හැකිය. ක්රියාත්මක කළ හැකි ධාවනය කර ක්රියාවලියේ ගුණාංග කවුළුව විවෘත කරන්න. ප්රධාන පටිත්තෙහි "රූපය: 32 බිට්" හෝ "රූපය: 64 බිට්" යනුවෙන් ඇතුළත් කිරීමක් ඇත.

Simply run the executableඔබට වැඩසටහන ක්රියාත්මක කිරීමට අවශ්ය නැතිනම් කුමක් කළ යුතුද ?
වඩාත්ම සරල ක්රමය (දත්ත රහස්ය නොවන විට)
ද්විමය බිට් 32 හෝ 64 බිට් දැයි සොයා ගැනීමට සරලම ක්රමය Virustotal බව මට පෙනී File detailගියේය.
මෙම Additional informationවිකල්පය ගොනුව පිළිබඳ බොහෝ ප්රයෝජනවත් තොරතුරු සපයයි.


ක්රියාත්මක කළ හැකි සහ පසුව ක්රියාවලි ගවේෂකය හෝ ඒ හා සමාන මෙවලමක් පරික්ෂා කිරීමේ ක්රමයට පැහැදිලි අඩුපාඩු තිබේ:
Dumpbin.exe ක්රමයට බොහෝ විට අරමුණ විසඳිය හැකිය.
තවත් විකල්පයක් වනුයේ සිග්වින්ගේ ගොනු විධානය භාවිතා කිරීමයි. කෙසේ වෙතත්, මම එය කවුළු මත පරීක්ෂා කර නැත. එය ලිනක්ස් මත හොඳින් ක්රියා කරයි.
Usage: file program_under_test.exe
සංස්කරණය කරන්න: කවුළුව මත file.exe පරීක්ෂා කර ඇත. හොඳින් වැඩ කරයි. :)
cygwinපැකේජය ස්ථාපනය කිරීමෙන් වැළකී සිටීමට කැමති අයට gnuwin32 fileපැකේජය ලබා ගත හැකිය .
fileහුදෙක් තැටියේ දත්ත ද්විමය ආකෘතියෙන් කියවන අතර ඒවා හඳුනාගන්නා ඕනෑම මැජික් අංකයක් පරික්ෂා කර දත්ත ගබඩාවකට සාපේක්ෂව. වින්ඩෝස් 32-බිට් වැඩසටහන් PE32 ලෙසද 64-බිට් සහ .නෙට් වැඩසටහන් PE32 + ලෙසද පැමිණේ. තිත්තකම fileමුළුමනින්ම ශුන්ය වෙනසක් ඇති කරයි - 32-බිට් සහ 64-බිට් යෙදුම් දෙකටම තැටියෙන් දත්ත කියවිය හැකිය, එය අවශ්ය වන්නේ එයයි.
මෙන්න පවර්ෂෙල් විසඳුමක්, බාහිර පරායත්තතා හෝ කිසිවක් නැත. පවර්ෂෙල් විවෘත කරන්න, එහි ක්රියාකාරිත්වය අලවන්න (ඔබ දෙවරක් එබීමෙන් ඔබ නැවත විමසුමට පැමිණේ), ඉන්පසු ශ්රිතයට පහළින් ඇති මගේ උදාහරණවල මෙන් එය භාවිතා කරන්න:
function Test-is64Bit {
param($FilePath=“$env:windir\notepad.exe”)
[int32]$MACHINE_OFFSET = 4
[int32]$PE_POINTER_OFFSET = 60
[byte[]]$data = New-Object -TypeName System.Byte[] -ArgumentList 4096
$stream = New-Object -TypeName System.IO.FileStream -ArgumentList ($FilePath, 'Open', 'Read')
$stream.Read($data, 0, 4096) | Out-Null
[int32]$PE_HEADER_ADDR = [System.BitConverter]::ToInt32($data, $PE_POINTER_OFFSET)
[int32]$machineUint = [System.BitConverter]::ToUInt16($data, $PE_HEADER_ADDR + $MACHINE_OFFSET)
$stream.Close()
$result = "" | select FilePath, FileType, Is64Bit
$result.FilePath = $FilePath
$result.Is64Bit = $false
switch ($machineUint)
{
0 { $result.FileType = 'Native' }
0x014c { $result.FileType = 'x86' }
0x0200 { $result.FileType = 'Itanium' }
0x8664 { $result.FileType = 'x64'; $result.is64Bit = $true; }
}
$result
}
මෙන්න නිදර්ශන ප්රතිදානය:
D:\> Test-is64bit
FilePath FileType Is64Bit
-------- -------- -------
C:\Windows\notepad.exe x64 True
D:\> Test-is64bit 'C:\Program Files (x86)\Mozilla Firefox\firefox.exe'
FilePath FileType Is64Bit
-------- -------- -------
C:\Program Files (x86)\Mozilla Firefox\firefox.exe x86 False
$stream.dispose();වසා දැමීමෙන් පසුව එකතු කළ හැකිද? ගොනු හැසිරවීම් නිදහස් කළ යුතුය. ( stackoverflow.com/questions/1999858/… )
32-බිට් ලෙස සලකුණු කර ඇති ක්රියාත්මක කළ හැකි පවා 64-බිට් ලෙස ධාවනය කළ හැකි නම්, උදාහරණයක් ලෙස එය .NET ක්රියාත්මක කළ හැකි අතර එය 32- හෝ 64-බිට් ලෙස ධාවනය කළ හැකිය. වැඩි විස්තර සඳහා /programming/3782191/how-do-i-determine-if-a-net-application-is-32-or-64-bit බලන්න , එයට පිළිතුරක් ඇත .NET යෙදුමක් ක්රියාත්මක වන්නේ කෙසේද යන්න තීරණය කිරීමට CORFLAGS උපයෝගීතාව භාවිතා කළ හැකිය.
CORFLAGS.EXE ප්රතිදානය
32-බිට් ක්රියාත්මක කළ හැකි සඳහා:
Version : v2.0.50727
CLR Header: 2.5
PE : PE32
CorFlags : 0x3
ILONLY : 1
32BITREQ : 1
32BITPREF : 0
Signed : 0
64-බිට් ක්රියාත්මක කළ හැකි සඳහා:
Version : v2.0.50727
CLR Header: 2.5
PE : PE32+
CorFlags : 0x1
ILONLY : 1
32BITREQ : 0
32BITPREF : 0
Signed : 0
ක්රියාත්මක කළ හැකි 32- හෝ 64-බිට් ලෙස ධාවනය කළ හැකි අතර හැකි විට 64-බිට් ලෙස ධාවනය වේ:
Version : v2.0.50727
CLR Header: 2.5
PE : PE32
CorFlags : 0x1
ILONLY : 1
32BITREQ : 0
32BITPREF : 0
Signed : 0
ක්රියාත්මක කළ හැකි 32-හෝ 64-බිට් ලෙස ධාවනය කළ හැකි නමුත් 64-බිට් ක්රියාවලියකට පටවා නොමැති නම් එය 32-බිට් ලෙස ක්රියාත්මක වේ:
Version : v4.0.30319
CLR Header: 2.5
PE : PE32
CorFlags : 0x20003
ILONLY : 1
32BITREQ : 0
32BITPREF : 1
Signed : 0
corflags : error CF008 : The specified file does not have a valid managed header)
මගේ ශත දෙක යැපුම් වෝකර් බාගත කර ක්රියාත්මක කළ හැකි ගොනුවක ගෘහ නිර්මාණ ශිල්පය සඳහා භාවිතා කර ඇත්තේ කුමක් දැයි පරීක්ෂා කරන්න.
යෙදුම බාගත කර එය ආරම්භ කරන්න, විවෘත අයිකනය මත ක්ලික් කරන්න * .exe ගොනුවක් සොයා ගන්න → තෝරන්න සහ පරාවර්තන ස්කෑන් කිරීමෙන් පසු පතුලේ එක් තීරුවක “ගෘහ නිර්මාණ” විස්තර ඇති දත්ත සහිත ජාලයක් ඔබට පෙනේ (x86, x64)
ක්රියාත්මක කළ හැකි විවෘත කර ගොඩනංවන ගෘහ නිර්මාණ ශිල්පය බලන්න
ඔබට mings මිටියේfile සිට මෙවලම භාවිතා කළ හැකිය . එය යුනික්ස් විධානය මෙන් ක්රියා කරයි. ඒ හා සමානව GNUwin32 වෙතින් මෙවලම ක්රියා කරයි .file
ඔබ වින්ඩෝස් 7 හි සිටී නම්, වින්ඩෝස් එක්ස්ප්ලෝරර් එකක, ක්රියාත්මක කළ හැකි දේ මත දකුණු ක්ලික් කර ගුණාංග තෝරන්න. ගුණාංග කවුළුවෙහි අනුකූලතා පටිත්ත තෝරන්න. අනුකූලතා ප්රකාරය යටතේ ඔබට වින්ඩෝස් එක්ස්පී පෙනේ නම්, මෙය බිට් 32 ක්රියාත්මක කළ හැකි ය. ඔබ වින්ඩෝස් විස්ටා දුටුවහොත් එය බිට් 64 කි.
Windows 8
Windows XP SP2නමුත් අනෙක් ඒවා ලෙස Vistaහෝ පෙන්වයි Windows 8. එබැවින් මෙම ක්රමය නිවැරදි නොවේ.
Exetest.reg නමින් පෙළ ගොනුවක් සාදන්න සහ මෙම කේතය අඩංගු වේ:
Windows Registry Editor Version 5.00
; What will appear in the contextual menu when right-clicking on a .exe file
[HKEY_CLASSES_ROOT\exefile\shell\command32_64]
@="32/64 bit test"
; What to do with it
; here, %1 is the file given as argument of the script
[HKEY_CLASSES_ROOT\exefile\shell\command32_64\command]
@="\"c:\\temp\\x86TestStart.bat\" \"%1\""
x86TestStart.batමෙම කේත රේඛාව පමණක් අඩංගු නම් පෙළ ගොනුවක් සාදා එය C: \ temp:
c:\temp\x86or64.vbs %1
x86or64.vbsමෙම කේතය අඩංගු පෙළ ගොනුවක් සාදා එය C: \ temp:
rem Reading binary file in VBScript: http://stackoverflow.com/questions/21249440/modify-first-two-bytes-of-a-file-using-vbscript
rem Info on executables: https://dmoj.ca/problem/exe
rem x86/64 signature is located dinamycally; its position is addressed
rem from bytes in 0x3C-0x3D position.
rem Possible signatures;
rem "PE..L" (hex code: 50.45.00.00.4C) = 32 bit
rem "PE..d†" (hex code: 50.45.00.00.64.86) = 64 bit
' ------------------------------------
' Source code by Jumpkack 2015
' ------------------------------------
' Read all arguments from command line:
Set args = Wscript.Arguments
' Store first argument (full path to file)
FileName = args(0)
' Find address of executable signature:
FirstChars = readBinary(FileName)
FirstChars = FirstChars
Addr1 = asc(mid(FirstChars,61,1))
Addr2 = asc(mid(FirstChars,62,1))
AddrFinal = Addr2*256 + Addr1 + 1
' Check signature:
if ucase(hex(asc(mid(FirstChars,AddrFinal+4,2)))) = "4C" then Wscript.Echo Filename & " is a 32 bit executable."
if ucase(hex(asc(mid(FirstChars,AddrFinal+4,2)))) = "64" then Wscript.Echo Filename & " is a 64 bit executable."
Function readBinary(path)
Dim a, fso, file, i, ts
Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.getFile(path)
If isNull(file) Then
wscript.echo "File not found: " & path
Exit Function
End If
Set ts = file.OpenAsTextStream()
'a = makeArray(file.size)
a=""
i = 0
While (Not ts.atEndOfStream) and (i<60000)
'a(i) = ts.read(1)
a = a + ts.read(1)
i = i + 1
Wend
ts.close
readBinary = a
End Function
Exetest.reg ගොනුව මත දෙවරක් ක්ලික් කරන්න: වින්ඩෝස් ලේඛකාධිකාරයේ නව යතුරක් එක් කරනු ඇත:
[HKEY_CLASSES_ROOT\exefile\shell\command32_64\command]
ක්රියාත්මක කළ හැකි ගොනුවක් මත දකුණු ක්ලික් කිරීමෙන් එය සන්දර්භය මෙනුවේ " 32/64 බිට් ටෙස්ට් " ලෙස දිස්වනු ඇත .
අයිතමය ක්ලික් කිරීමෙන් c:\\temp\\x86TestStart.bat\VBscript ගොනුව ආරම්භ වන කණ්ඩායම් ගොනුව ආරම්භ x86or64.vbsවන අතර එය exe අත්සන කියවා ප්රති .ල පෙන්වයි.
ඔබට රෙජිස්ට්රි සමඟ සම්බන්ධ වීමට නොහැකි නම් හෝ අවශ්ය නොවන්නේ නම්, .vbs ගොනුව ක්වික්ලැන්ච් තීරුවේ පිටපත් කර එය ක්රියාත්මක කළ හැකි ලෙස ඇදගෙන යන්න.
මෙය සඳහන් කර ඇති බවක් මා දැක නැත. NTCore විසින් CFF Explorer නමින් PE viewer වැඩසටහනක් ඇත , එමඟින් ඔබට මෙම තොරතුරු ලබා දිය හැකිය. එය බාගත කර අතේ ගෙන යා හැකි ලෙස ධාවනය කළ හැකි නමුත් ඔබට අවශ්ය නම් එය ස්ථාපනය කළ හැකිය.
ද්විමය ( .exe, .dllආදිය) මත දකුණු ක්ලික් කර "CFF Explorer සමඟ විවෘත කරන්න" තෝරන්න. Nt ශීර්ෂයන් වෙත යන්න -> ගොනු ශීර්ෂය -> "ලක්ෂණ" ක්ෂේත්රය මත "මෙතැන ක්ලික් කරන්න" ක්ලික් කරන්න
එය 32bit වැඩසටහනක් නම්, "32 බිට් වචන යන්ත්රය" සලකුණු කොටුව සලකුණු කරනු ලැබේ. උදාහරණයක් ලෙස, පහත රූපයේ ඔබට දැකිය හැකි පරිදි මම නොට්පෑඩ් ++ හි 32bit අනුවාදය ස්ථාපනය කර ඇත්තෙමි. නැතිනම් එය 64bit ය.
එහෙත්, WSL හි fileඅණ බොහෝ සෙයින් ක්රියාත්මක වේ.
file /mnt/c/p/bin/rg.exe ප්රතිදානය වනු ඇත:
/mnt/c/p/bin/rg.exe: PE32+ executable (console) x86-64, for MS Windows
file /mnt/c/p/bin/u.exe ප්රතිදානය වනු ඇත:
/mnt/c/p/bin/u.exe: PE32 executable (GUI) Intel 80386, for MS Windows, UPX compressed
මගේ ශත දෙක: සී ++ සංවර්ධකයෙකු ලෙස, යැපුම් ඇවිදින්නෙකු ( http://www.dependencywalker.com/ ) ඉතා තොරතුරු සහිත වන අතර එය බිටු 64/32 පෙන්වීම පමණක් නොව ඊට සම්බන්ධ සෑම ඩීඑල් එකක්ම:

සෑම ගොනු නාමයකම වම්පස 64 ක් ඔබට දැක ගත හැකිය ...
වින්ඩෝස් 10 හි කාර්ය කළමනාකරුගේ වේදිකා තීරුව
වින්ඩෝස් 7 හි වේදිකා තීරුවක් නොමැත. එබැවින් වින්ඩෝස් 7 කාර්ය කළමනාකරු එය පෙන්වන්නේ නැත.
කවුළු 10 හි තීරු තේරීම තවදුරටත් 'දර්ශනය' යටතේ නොමැත. වින්ඩෝස් 10 හි, විස්තර පටිත්තෙහි ඇති විට, ඔබ තීරු ශීර්ෂය මත දකුණු ක්ලික් කර 'තීරු තෝරන්න'. ඉන්පසු 'වේදිකාව' සඳහා කොටුව සලකුණු කරන්න.
පවර්ෂෙල් හි මගේ සරල අනුවාදය, මගේ පරීක්ෂණ වලින් 100% විශ්වාසදායක බව පෙනේ.
Clear-Host
$Check32Bit = $null
$Check64Bit = $null
$File = "C:\WINDOWS\system32\notepad.exe"
$ExeData = get-content $File -totalcount 50
$Check32Bit = $ExeData | select-string -Pattern "PE..L" -Quiet
$Check64Bit = $ExeData | select-string -Pattern "PE..d†" -Quiet
if ($Check32Bit) {
"File is 32bit (x86)"
}
elseif ($Check64Bit) {
"File is 64bit (x64)"
}
else {
"Couldn't identify if the file is 32bit or 64bit"
}
.DMPවිෂුවල් ස්ටුඩියෝ හි ඩම්ප් විවෘත කරන්න