Hi,
ik probeer een uniek hardware id te maken van een computer tegen piracy.
dit doe ik in processing wat gebaseerd is op java ( https://processing.org/ ) .
het was me gelukt om een String te genereren waar me moederbord serie nummer in stond.
dit werkte perfect om met behulp van encryptie een serial nummer aan te maken.
echter twijfel ik hoe uniek die serie nummer is, ook heb ik ontdekt dat op diverse pc's de String returns "to be filled in by O.E.M".
dus ik wil een model maken van meerdere hardware.
ik heb uitgezocht dat dit via WMI kan
en heb daar een mooie bron voor gevonden.
https://msdn.microsoft.com/en-us/library/aa394587.aspx
nu wil ik dus diverse invoegen in java, maar me gebrekkige kennis hierin laat me dat niet toe.
Dus het moederbord serie nummer werkt indien serie nummer aanwezig is.
Windows Product code werkt ook.
nu wil ik dus ook dingetjes vanuit de bovenstaande bron (WMI) toevoegen https://msdn.microsoft.com/en-us/library/aa394587.aspx.
de "getSMBIOS()" die ik aangemaakt heb werkt niet en returns alleen "\n".
dit zal waarschijnlijk in het vb script zitten wat totaal nieuw voor me is.
zie onderstaande code.
kan iemand mij op weg helpen?
ik probeer een uniek hardware id te maken van een computer tegen piracy.
dit doe ik in processing wat gebaseerd is op java ( https://processing.org/ ) .
het was me gelukt om een String te genereren waar me moederbord serie nummer in stond.
dit werkte perfect om met behulp van encryptie een serial nummer aan te maken.
echter twijfel ik hoe uniek die serie nummer is, ook heb ik ontdekt dat op diverse pc's de String returns "to be filled in by O.E.M".
dus ik wil een model maken van meerdere hardware.
ik heb uitgezocht dat dit via WMI kan
en heb daar een mooie bron voor gevonden.
https://msdn.microsoft.com/en-us/library/aa394587.aspx
nu wil ik dus diverse invoegen in java, maar me gebrekkige kennis hierin laat me dat niet toe.
Dus het moederbord serie nummer werkt indien serie nummer aanwezig is.
Windows Product code werkt ook.
nu wil ik dus ook dingetjes vanuit de bovenstaande bron (WMI) toevoegen https://msdn.microsoft.com/en-us/library/aa394587.aspx.
de "getSMBIOS()" die ik aangemaakt heb werkt niet en returns alleen "\n".
dit zal waarschijnlijk in het vb script zitten wat totaal nieuw voor me is.
zie onderstaande code.
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
| import java.io.BufferedWriter; import java.io.FileWriter; import java.io.InputStreamReader; import java.io.File; import java.io.BufferedReader; public static String getMotherboardSerial() { String result = ""; try { File file = File.createTempFile("GetMBSerial",".vbs"); file.deleteOnExit(); FileWriter fw = new FileWriter(file); String vbs = "Set objWMIService = GetObject(\"winmgmts:\\\\.\\root\\cimv2\")\n" + "Set colItems = objWMIService.ExecQuery _ \n" + " (\"Select * from Win32_ComputerSystemProduct\") \n" + "For Each objItem in colItems \n" + " Wscript.Echo objItem.IdentifyingNumber \n" + "Next \n"; fw.write(vbs); fw.close(); Process gWMI = Runtime.getRuntime().exec("cscript //NoLogo " + file.getPath()); BufferedReader input = new BufferedReader(new InputStreamReader(gWMI.getInputStream())); String line; while ((line = input.readLine()) != null) { result += line; //System.out.println(line); } input.close(); } catch(Exception e){ e.printStackTrace(); } result = result.trim(); return result; } public static String productID() { String result = ""; try { Process p = Runtime.getRuntime().exec("reg query \"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\" /v ProductId"); BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream())); String line; while ((line = input.readLine()) != null) { if(validChar(line)){ result += line;} //System.out.println(line); } input.close(); } catch(Exception e){ e.printStackTrace(); } result = result.trim(); return result; } public static String getSMBIOS() { String result = ""; try { File file = File.createTempFile("SMBIOS",".vbs"); file.deleteOnExit(); FileWriter fw = new FileWriter(file); String vbs = "strComputer = (\".\")" + "Set objWMIService = GetObject(\"winmgmts:\") & (\"{impersonationLevel=impersonate}!\\\") & strComputer & (\"\\root\\cimv2\")\n" + "Set colSMBIOS = objWMIService.ExecQuery _ \n" + " (\"Select * from Win32_SystemEnclosure\") \n" + "For Each objSMBIOS in colSMBIOS \n" + "Wscript.Echo objSMBIOS.SerialNumber \n" + " Wscript.Echo objSMBIOS.PartNumber" + "Next \n"; fw.write(vbs); fw.close(); Process gWMI = Runtime.getRuntime().exec("cscript //NoLogo " + file.getPath()); BufferedReader input = new BufferedReader(new InputStreamReader(gWMI.getInputStream())); String line; while ((line = input.readLine()) != null) { result += line; //System.out.println(line); } input.close(); } catch(Exception e){ e.printStackTrace(); } result = result.trim(); return result; } |
kan iemand mij op weg helpen?
Ben niet slim, maar wel dom