001
|
usingSystem;
|
002
|
usingSystem.Management;
|
003
|
usingSystem.Security.Cryptography;
|
004
|
usingSystem.IO;
|
005
|
usingSystem.Collections.Generic;
|
006
|
usingSystem.Text;
|
007
|
008
|
namespacexingming_reg
|
009
|
{
|
010
|
classProgram
|
011
|
{
|
012
|
staticvoidMain(string[]
args)
|
013
|
{
|
014
|
boolsucsess
=false;
|
015
|
stringcomputerbit
="";
|
016
|
regmutou
reg =newregmutou();
|
017
|
computerbit
= reg.getcomputerbit("X");
|
018
|
sucsess
= reg.regmutousoft(computerbit,"xinmin","xinmin.usr");
|
019
|
Console.WriteLine(sucsess);
|
020
|
Console.ReadLine();
|
021
|
}
|
022
|
}
|
023
|
internalclassregmutou
|
024
|
{
|
025
|
//
Methods
|
026
|
publicstringGetBIOSSerialNumber()
|
027
|
{
|
028
|
try
|
029
|
{
|
030
|
ManagementObjectSearcher
searcher =newManagementObjectSearcher("Select
* From Win32_BIOS");
|
031
|
stringstr
="";
|
032
|
foreach(ManagementObject
obj2insearcher.Get())
|
033
|
{
|
034
|
str
= obj2["SerialNumber"].ToString().Trim();
|
035
|
}
|
036
|
returnstr;
|
037
|
}
|
038
|
catch
|
039
|
{
|
040
|
return"";
|
041
|
}
|
042
|
}
|
043
|
044
|
publicstringgetcomputerbit(stringsoftname)
|
045
|
{
|
046
|
stringcpuID
=this.GetCpuID();
|
047
|
stringbIOSSerialNumber
=this.GetBIOSSerialNumber();
|
048
|
stringhardDiskSerialNumber
=this.GetHardDiskSerialNumber();
|
049
|
stringnetCardMACAddress
=this.GetNetCardMACAddress();
|
050
|
if(cpuID
!="")
|
051
|
{
|
052
|
MD5
md =newMD5CryptoServiceProvider();
|
053
|
cpuID
= BitConverter.ToString(md.ComputeHash(Encoding.Default.GetBytes(cpuID))).Replace("-","").ToUpper().Substring(8,
0x10);
|
054
|
return(softname
+"C"+
cpuID);
|
055
|
}
|
056
|
if(bIOSSerialNumber
!="")
|
057
|
{
|
058
|
MD5
md2 =newMD5CryptoServiceProvider();
|
059
|
bIOSSerialNumber
= BitConverter.ToString(md2.ComputeHash(Encoding.Default.GetBytes(bIOSSerialNumber))).Replace("-","").ToUpper().Substring(8,
0x10);
|
060
|
return(softname
+"B"+
bIOSSerialNumber);
|
061
|
}
|
062
|
if(hardDiskSerialNumber
!="")
|
063
|
{
|
064
|
MD5
md3 =newMD5CryptoServiceProvider();
|
065
|
hardDiskSerialNumber
= BitConverter.ToString(md3.ComputeHash(Encoding.Default.GetBytes(hardDiskSerialNumber))).Replace("-","").ToUpper().Substring(8,
0x10);
|
066
|
return(softname
+"H"+
hardDiskSerialNumber);
|
067
|
}
|
068
|
if(netCardMACAddress
!="")
|
069
|
{
|
070
|
MD5
md4 =newMD5CryptoServiceProvider();
|
071
|
netCardMACAddress
= BitConverter.ToString(md4.ComputeHash(Encoding.Default.GetBytes(netCardMACAddress))).Replace("-","").ToUpper().Substring(8,
0x10);
|
072
|
return(softname
+"N"+
netCardMACAddress);
|
073
|
}
|
074
|
return(softname
+"WF53A419DB238BBAD");
|
075
|
}
|
076
|
077
|
publicstringGetCpuID()
|
078
|
{
|
079
|
try
|
080
|
{
|
081
|
ManagementObjectCollection
instances =newManagementClass("Win32_Processor").GetInstances();
|
082
|
stringstr
=null;
|
083
|
foreach(ManagementObject
obj2ininstances)
|
084
|
{
|
085
|
str
= obj2.Properties["ProcessorId"].Value.ToString();
|
086
|
break;
|
087
|
}
|
088
|
returnstr;
|
089
|
}
|
090
|
catch
|
091
|
{
|
092
|
return"";
|
093
|
}
|
094
|
}
|
095
|
096
|
publicstringGetHardDiskSerialNumber()
|
097
|
{
|
098
|
try
|
099
|
{
|
100
|
ManagementObjectSearcher
searcher =newManagementObjectSearcher("SELECT
* FROM Win32_PhysicalMedia");
|
101
|
stringstr
="";
|
102
|
foreach(ManagementObject
obj2insearcher.Get())
|
103
|
{
|
104
|
str
= obj2["SerialNumber"].ToString().Trim();
|
105
|
break;
|
106
|
}
|
107
|
returnstr;
|
108
|
}
|
109
|
catch
|
110
|
{
|
111
|
return"";
|
112
|
}
|
113
|
}
|
114
|
115
|
publicstringGetNetCardMACAddress()
|
116
|
{
|
117
|
try
|
118
|
{
|
119
|
ManagementObjectSearcher
searcher =newManagementObjectSearcher("SELECT
* FROM Win32_NetworkAdapter WHERE ((MACAddress Is Not NULL) AND (Manufacturer <> 'Microsoft'))");
|
120
|
stringstr
="";
|
121
|
foreach(ManagementObject
obj2insearcher.Get())
|
122
|
{
|
123
|
str
= obj2["MACAddress"].ToString().Trim();
|
124
|
}
|
125
|
returnstr;
|
126
|
}
|
127
|
catch
|
128
|
{
|
129
|
return"";
|
130
|
}
|
131
|
}
|
132
|
133
|
publicboolregmutousoft(stringcomputerbit,stringsoftname,stringfilename)
|
134
|
{
|
135
|
boolflag
=true;
|
136
|
stringstr
="";
|
137
|
SHA1
sha =newSHA1CryptoServiceProvider();
|
138
|
str
= BitConverter.ToString(sha.ComputeHash(Encoding.Default.GetBytes(softname))).Replace("-","").ToUpper();
|
139
|
//if
(!File.Exists(filename))
|
140
|
//{
|
141
|
//
flag = false;
|
142
|
//
Stream stream = File.Open(filename, FileMode.OpenOrCreate);
|
143
|
//
StreamWriter writer = new StreamWriter(stream);
|
144
|
//
writer.WriteLine(computerbit);
|
145
|
//
writer.Close();
|
146
|
//
stream.Close();
|
147
|
//
return flag;
|
148
|
//}
|
149
|
//Stream
stream2 = File.Open(filename, FileMode.Open);
|
150
|
//StreamReader
reader = new StreamReader(stream2);
|
151
|
//string
str2 = "";
|
152
|
stringstr3
= computerbit;
|
153
|
//while
((str2 = reader.ReadLine()) != null)
|
154
|
//{
|
155
|
//
str3 = str2;
|
156
|
//}
|
157
|
//reader.Close();
|
158
|
//stream2.Close();
|
159
|
//if
(str3.Length != 0x18)
|
160
|
//{
|
161
|
//
//return false;
|
162
|
//}
|
163
|
SHA1
sha2 =newSHA1CryptoServiceProvider();
|
164
|
stringstr4
= BitConverter.ToString(sha2.ComputeHash(Encoding.Default.GetBytes(computerbit))).Replace("-","").ToUpper();
|
165
|
stringstr5
="";
|
166
|
for(inti
= 0; i < str4.Length; i++)
|
167
|
{
|
168
|
if((i
% 2) == 1)
|
169
|
{
|
170
|
str5
= str5 + str4[i];
|
171
|
}
|
172
|
}
|
173
|
stringstr6
="";
|
174
|
for(intj
= 0; j < str.Length; j++)
|
175
|
{
|
176
|
if((j
% 2) == 0)
|
177
|
{
|
178
|
str6
= str6 + str[j];
|
179
|
}
|
180
|
}
|
181
|
int[]
numArray =newint[20];
|
182
|
for(intk
= 0; k < 20; k++)
|
183
|
{
|
184
|
numArray[k]
= str6[k] + str5[k];
|
185
|
numArray[k]
= numArray[k] % 0x24;
|
186
|
}
|
187
|
stringstr7
="";
|
188
|
for(intm
= 0; m < 20; m++)
|
189
|
{
|
190
|
if((m
> 0) && ((m % 4) == 0))
|
191
|
{
|
192
|
str7
= str7 +"-";
|
193
|
}
|
194
|
str7
= str7 +"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"[numArray[m]];
|
195
|
}
|
196
|
if(str3
== str7)
|
197
|
{
|
198
|
flag
=true;
|
199
|
}
|
200
|
Console.WriteLine("机器码:"+
str3);
|
201
|
Console.WriteLine("注册码:"+str7);
|
202
|
returnflag;
|
203
|
}
|
204
|
}
|
205
|
}
|
644

被折叠的 条评论
为什么被折叠?



