Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static bool CheckFileAgainstSignature(string fileName, Signature sig)
- {
- using (var file = File.Open(fileName, FileMode.Open))
- {
- List<byte> fileBytes = new List<byte>();
- byte[] signatureBytes = StringToByteArray(sig.Hex);
- long byteIndex = 0;
- byte nextByte = BitConverter.GetBytes(file.ReadByte())[0];
- fileBytes.Add(nextByte);
- while (byteIndex < file.Length) {
- if (fileBytes.Count > 0 && signatureBytes[fileBytes.Count - 1] == fileBytes.Last())
- {
- fileBytes.Add(BitConverter.GetBytes(file.ReadByte())[0]);
- if(fileBytes.SequenceEqual(signatureBytes))
- {
- Console.WriteLine($"\nMatch: {sig.Name.PadRight(BitConverter.ToString(signatureBytes).Length - 7)}\t{fileName}\n{BitConverter.ToString(signatureBytes)}\t{BitConverter.ToString(fileBytes.ToArray())}\nPosition: byte[{byteIndex}]");
- Console.Read();
- }
- } else
- {
- if(fileBytes.Count > 0)
- fileBytes = new List<byte>();
- nextByte = BitConverter.GetBytes(file.ReadByte())[0];
- if(nextByte == signatureBytes[0])
- fileBytes.Add(nextByte);
- }
- //end of code
- byteIndex++;
- }
- }
- return true;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement