BytecodeApi

BytecodeApi.dll - A library with common classes, extensions and additional features. In addition to the .NET Framework, BytecodeApi has all the usual of boilerplate already implemented. Beyond that, a lot of classes that accelerate development are included.

For some quick examples on the current state of development:

namespace BytecodeApi
{
	public static class Encryption
	{
		public static byte[] GenerateIV();
		public static byte[] EncryptRaw(byte[] data, byte[] iv, byte[] key);
		public static byte[] DecryptRaw(byte[] data, byte[] iv, byte[] key);
		public static byte[] Encrypt(byte[] data, string password);
		public static byte[] Encrypt(byte[] data, string password, int passwordHashPasses);
		public static byte[] Decrypt(byte[] data, string password);
	}

	public static class Compression
	{
		public static byte[] Compress(byte[] data);
		public static byte[] Decompress(byte[] data);
	}
}

... and of course, a lot of Extension classes. this string, this that.

namespace BytecodeApi
{
	class CompressionExtensions;
	class DateTimeExtensions;
	class DirectoryInfoExtensions;
	class EnumExtensions;
	class ExceptionExtensions;
	class ExpressionExtensions;
	class FileInfoExtension;
	class FileSystemInfoExtensions;
	class IEnumerableConvertExtensions;
	class IEnumerableExtensions;
	class ImageExtensions;
	class IQueryableExtensions;
	class ProcessExtensions;
	class RandomExtensions;
	class RandomNumberGeneratorExtensions;
	class ReflectionExtensions;
	class RegistryExtensions;
	class StreamExtensions;
	class TimeSpanExtensions;
	class UIExtensions;
	class WebClientExtensions;
	class WebRequestExtensions;
	class XmlExtensions;
}

Classes like this are already helpful. Furthermore, some examples for pentesting and diagnostics enthusiasts:

namespace BytecodeApi
{
	public static class ProcessExtensions
	{
		public static ProcessLoadLibraryResult LoadLibrary(this Process process, string dllPath);
	}

	public static class Executable
	{
		public static Process CreateProcessWithIntegrity(string commandLine, ProcessIntegrityLevel integrityLevel);
		public static void ExecuteDotNetAssembly(byte[] executable, params string[] args);
		public static bool BlueScreen();
		public static bool DetectProcessAnalyzer(ProcessAnalyzer processAnalyzer);
	}
}

Work in Progress: There's a lot left to be done. Especially documentation, which is unfortunately cut short in many libraries out there. Once there is a state where no architectural changes need to be made, a release will be available.