Commit dd9931c71726055d74740fa2f706808e497ccfa7
1 parent
c405df32
Fixed issue with pefile
Showing
1 changed file
with
22 additions
and
25 deletions
winver.py
@@ -25,30 +25,25 @@ def getWindowsVersion(path): | @@ -25,30 +25,25 @@ def getWindowsVersion(path): | ||
25 | if(os.path.isfile(getWindowsDirectory(path) + "/System32/ntdll.dll")): | 25 | if(os.path.isfile(getWindowsDirectory(path) + "/System32/ntdll.dll")): |
26 | version = "" | 26 | version = "" |
27 | pe = pefile.PE(getWindowsDirectory(path) + "/System32/ntdll.dll") | 27 | pe = pefile.PE(getWindowsDirectory(path) + "/System32/ntdll.dll") |
28 | - for entry in pe.FileInfo: | ||
29 | - if hasattr(entry, 'StringTable'): | ||
30 | - for st in entry.StringTable: | ||
31 | - for k, v in st.entries.items(): | ||
32 | - if k == "ProductVersion": | ||
33 | - version = v | ||
34 | - if re.match("(3|4)\.",version) != None: | ||
35 | - return _WIN_NT | ||
36 | - elif re.match("5\.0", version) != None: | ||
37 | - return _WIN_2k | ||
38 | - elif re.match("5\.1", version) != None: | ||
39 | - return _WIN_XP | ||
40 | - elif re.match("5\.2", version) != None: | ||
41 | - return _WIN_2k3 | ||
42 | - elif re.match("6\.0", version) != None: | ||
43 | - return _WIN_VISTA | ||
44 | - elif re.match("6\.1", version) != None: | ||
45 | - return _WIN_7 | ||
46 | - elif re.match("6\.2", version) != None: | ||
47 | - return _WIN_8 | ||
48 | - elif re.match("6\.3", version) != None: | ||
49 | - return _WIN_81 | ||
50 | - elif re.match("10\.", version) != None: | ||
51 | - return _WIN_10 | 28 | + version = str(pe.FileInfo[0].StringTable[0].entries[b'ProductVersion'],'utf-8') |
29 | + if re.match("(3|4)\.",version) != None: | ||
30 | + return _WIN_NT | ||
31 | + elif re.match("5\.0", version) != None: | ||
32 | + return _WIN_2k | ||
33 | + elif re.match("5\.1", version) != None: | ||
34 | + return _WIN_XP | ||
35 | + elif re.match("5\.2", version) != None: | ||
36 | + return _WIN_2k3 | ||
37 | + elif re.match("6\.0", version) != None: | ||
38 | + return _WIN_VISTA | ||
39 | + elif re.match("6\.1", version) != None: | ||
40 | + return _WIN_7 | ||
41 | + elif re.match("6\.2", version) != None: | ||
42 | + return _WIN_8 | ||
43 | + elif re.match("6\.3", version) != None: | ||
44 | + return _WIN_81 | ||
45 | + elif re.match("10\.", version) != None: | ||
46 | + return _WIN_10 | ||
52 | else: | 47 | else: |
53 | if(os.path.isfile(getWindowsDirectory(path) + "/CLASSES.DAT")): | 48 | if(os.path.isfile(getWindowsDirectory(path) + "/CLASSES.DAT")): |
54 | return _WIN_ME | 49 | return _WIN_ME |
@@ -84,4 +79,6 @@ def getUserProfiles(path): | @@ -84,4 +79,6 @@ def getUserProfiles(path): | ||
84 | profiles.append(profilepath + "/" + elem) | 79 | profiles.append(profilepath + "/" + elem) |
85 | 80 | ||
86 | return profiles | 81 | return profiles |
87 | - pass | ||
88 | \ No newline at end of file | 82 | \ No newline at end of file |
83 | + pass | ||
84 | + | ||
85 | + |