private void WriteRandomBytes(BinaryWriter writer, OptionInfo optionData) { byte[] randomBytes = optionData.RandomBytes; if (optionData.IsCreateRandomBytes) { // 创建随机序列 Random r = new Random((int)DateTime.Now.Ticks); int byteCount = r.Next(5, 10); // 随机序列长度 randomBytes = new byte[byteCount]; for (int i = 0; i < randomBytes.Length; i++) { randomBytes[i] = (byte)r.Next(0, 255); } } else { // 不创建随机序列 if (randomBytes == null) { randomBytes = new byte[0]; } } writer.Write(randomBytes.Length); writer.Write(randomBytes, 0, randomBytes.Length); }
private void WriteFile(BinaryWriter writer, OptionInfo optionData, List <AddFileInfo> addFileData) { // 封装文件个数 writer.Write(addFileData.Count); // 封装每个文件 for (int i = 0; i < addFileData.Count; i++) { var file = addFileData[i]; byte[] fileData = null; if (optionData.IsCompressFile) { // 压缩文件 using (var fs = System.IO.File.OpenRead(file.SourceFilePath)) { fileData = CompressFile(fs); } } else { // 不压缩文件 fileData = System.IO.File.ReadAllBytes(file.SourceFilePath); } writer.Write(fileData.Length); writer.Write(fileData); } }
private void ReadFile(BinaryReader reader, OptionInfo optionData, List <AddFileInfo> addFileData) { int fileCount = reader.ReadInt32(); if (addFileData.Count != fileCount) { throw new Exception("程序被篡改"); } for (int i = 0; i < fileCount; i++) { var fileInfo = addFileData[i]; var fileLen = reader.ReadInt32(); var fileBytes = new byte[fileLen]; reader.Read(fileBytes, 0, fileBytes.Length); if (optionData.IsCompressFile) { fileBytes = Decompress(new MemoryStream(fileBytes)); } System.IO.File.WriteAllBytes(fileInfo.OuputFilePath, fileBytes); } }
private byte[] ReadRandomBytes(BinaryReader reader, OptionInfo optionData) { int byteCount = reader.ReadInt32(); return(reader.ReadBytes(byteCount)); }