using System.Text.RegularExpressions;
public static void Main()
string passwordPlain = "Appstream123456";
Object1 obj = new Object1(){
password = Encoding.Unicode.GetBytes("")
Object2 obj2 = new Object2(){
string jsonString = JsonConvert.SerializeObject(obj);
string jsonString2 = JsonConvert.SerializeObject(obj2);
byte[] pswInUnicode = Encoding.Unicode.GetBytes(jsonString);
byte[] pswInUnicode2 = Encoding.Unicode.GetBytes(jsonString2);
string byteArrayString = BitConverter.ToString(pswInUnicode);
string byteArray2String = BitConverter.ToString(pswInUnicode2);
Console.WriteLine(byteArrayString);
Console.WriteLine(byteArray2String);
if (string.Equals(byteArrayString, byteArray2String))
Console.WriteLine("No diffs");
string pattern = "\"password\":\"";
int pos = GetSubstringEndingPosition(jsonString, pattern);
byte[] res = InsertPasswordIntoMessage(jsonString, pos+1, Encoding.Unicode.GetBytes("Appstream123456"));
Console.WriteLine(Encoding.Unicode.GetString(res));
Console.WriteLine(jsonString);
public static int GetSubstringEndingPosition(string input, string pattern)
Regex regex = new Regex(pattern);
Match match = regex.Match(input);
int end = match.Index + match.Length - 1;
public static byte[] InsertPasswordIntoMessage(string originalMessage, int position, byte[] password)
if (position < 0 || position > originalMessage.Length)
string firstPart = originalMessage.Substring(0, position);
string secondPart = originalMessage.Substring(position);
byte[] firstPartBytes = Encoding.Unicode.GetBytes(firstPart);
byte[] secondPartBytes = Encoding.Unicode.GetBytes(secondPart);
byte[] result = new byte[firstPartBytes.Length + password.Length + secondPartBytes.Length];
Array.Copy(firstPartBytes, 0, result, 0, firstPartBytes.Length);
Array.Copy(password, 0, result, firstPartBytes.Length, password.Length);
Array.Copy(secondPartBytes, 0, result, firstPartBytes.Length + password.Length, secondPartBytes.Length);