fixed send to disk fixed keylogger [clipboard] #172 fixed installation added file searcher [to search and upload any file by it extension] updated plugin save method updated runpe send to memory minor improvements ```diff - You need to create a new stub from this version, and then use your old version to update all your clients, otherwise you won't be able to use the new plugins ```
102 lines
2.6 KiB
C#
102 lines
2.6 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace MessagePackLib.MessagePack
|
|
{
|
|
public class BytesTools
|
|
{
|
|
static UTF8Encoding utf8Encode = new UTF8Encoding();
|
|
|
|
public static byte[] GetUtf8Bytes(String s)
|
|
{
|
|
|
|
return utf8Encode.GetBytes(s);
|
|
}
|
|
|
|
public static String GetString(byte[] utf8Bytes)
|
|
{
|
|
return utf8Encode.GetString(utf8Bytes);
|
|
}
|
|
|
|
public static String BytesAsString(byte[] bytes)
|
|
{
|
|
StringBuilder sb = new StringBuilder();
|
|
foreach (byte b in bytes)
|
|
{
|
|
sb.Append(String.Format("{0:D3} ", b));
|
|
}
|
|
return sb.ToString();
|
|
}
|
|
|
|
|
|
public static String BytesAsHexString(byte[] bytes)
|
|
{
|
|
StringBuilder sb = new StringBuilder();
|
|
foreach (byte b in bytes)
|
|
{
|
|
sb.Append(String.Format("{0:X2} ", b));
|
|
}
|
|
return sb.ToString();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 交换byte数组数据
|
|
/// 可用于高低数据交换
|
|
/// </summary>
|
|
/// <param name="v">要交换的byte数组</param>
|
|
/// <returns>返回交换后的数据</returns>
|
|
public static byte[] SwapBytes(byte[] v)
|
|
{
|
|
byte[] r = new byte[v.Length];
|
|
int j = v.Length - 1;
|
|
for (int i = 0; i < r.Length; i++)
|
|
{
|
|
r[i] = v[j];
|
|
j--;
|
|
}
|
|
return r;
|
|
}
|
|
|
|
public static byte[] SwapInt64(Int64 v)
|
|
{
|
|
//byte[] r = new byte[8];
|
|
//r[7] = (byte)v;
|
|
//r[6] = (byte)(v >> 8);
|
|
//r[5] = (byte)(v >> 16);
|
|
//r[4] = (byte)(v >> 24);
|
|
//r[3] = (byte)(v >> 32);
|
|
//r[2] = (byte)(v >> 40);
|
|
//r[1] = (byte)(v >> 48);
|
|
//r[0] = (byte)(v >> 56);
|
|
return SwapBytes(BitConverter.GetBytes(v));
|
|
}
|
|
|
|
public static byte[] SwapInt32(Int32 v)
|
|
{
|
|
byte[] r = new byte[4];
|
|
r[3] = (byte)v;
|
|
r[2] = (byte)(v >> 8);
|
|
r[1] = (byte)(v >> 16);
|
|
r[0] = (byte)(v >> 24);
|
|
return r;
|
|
}
|
|
|
|
|
|
public static byte[] SwapInt16(Int16 v)
|
|
{
|
|
byte[] r = new byte[2];
|
|
r[1] = (byte)v;
|
|
r[0] = (byte)(v >> 8);
|
|
return r;
|
|
}
|
|
|
|
public static byte[] SwapDouble(Double v)
|
|
{
|
|
return SwapBytes(BitConverter.GetBytes(v));
|
|
}
|
|
|
|
}
|
|
} |