VenomRat
This commit is contained in:
227
Helper/WordTextBox.cs
Normal file
227
Helper/WordTextBox.cs
Normal file
@@ -0,0 +1,227 @@
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Globalization;
|
||||
using System.Windows.Forms;
|
||||
using DevExpress.XtraEditors;
|
||||
|
||||
namespace Server.Helper;
|
||||
|
||||
public class WordTextBox : TextEdit
|
||||
{
|
||||
public enum WordType
|
||||
{
|
||||
DWORD,
|
||||
QWORD
|
||||
}
|
||||
|
||||
private bool isHexNumber;
|
||||
|
||||
private WordType type;
|
||||
|
||||
private IContainer components;
|
||||
|
||||
public int MaxLength
|
||||
{
|
||||
get
|
||||
{
|
||||
return base.Properties.MaxLength;
|
||||
}
|
||||
set
|
||||
{
|
||||
base.Properties.MaxLength = value;
|
||||
}
|
||||
}
|
||||
|
||||
public bool IsHexNumber
|
||||
{
|
||||
get
|
||||
{
|
||||
return isHexNumber;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (isHexNumber == value)
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (value)
|
||||
{
|
||||
if (Type == WordType.DWORD)
|
||||
{
|
||||
Text = UIntValue.ToString("x");
|
||||
}
|
||||
else
|
||||
{
|
||||
Text = ULongValue.ToString("x");
|
||||
}
|
||||
}
|
||||
else if (Type == WordType.DWORD)
|
||||
{
|
||||
Text = UIntValue.ToString();
|
||||
}
|
||||
else
|
||||
{
|
||||
Text = ULongValue.ToString();
|
||||
}
|
||||
isHexNumber = value;
|
||||
UpdateMaxLength();
|
||||
}
|
||||
}
|
||||
|
||||
public WordType Type
|
||||
{
|
||||
get
|
||||
{
|
||||
return type;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (type != value)
|
||||
{
|
||||
type = value;
|
||||
UpdateMaxLength();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public uint UIntValue
|
||||
{
|
||||
get
|
||||
{
|
||||
try
|
||||
{
|
||||
if (string.IsNullOrEmpty(Text))
|
||||
{
|
||||
return 0u;
|
||||
}
|
||||
if (IsHexNumber)
|
||||
{
|
||||
return uint.Parse(Text, NumberStyles.HexNumber);
|
||||
}
|
||||
return uint.Parse(Text);
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
return uint.MaxValue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public ulong ULongValue
|
||||
{
|
||||
get
|
||||
{
|
||||
try
|
||||
{
|
||||
if (string.IsNullOrEmpty(Text))
|
||||
{
|
||||
return 0uL;
|
||||
}
|
||||
if (IsHexNumber)
|
||||
{
|
||||
return ulong.Parse(Text, NumberStyles.HexNumber);
|
||||
}
|
||||
return ulong.Parse(Text);
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
return ulong.MaxValue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public bool IsConversionValid()
|
||||
{
|
||||
if (string.IsNullOrEmpty(Text))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (!IsHexNumber)
|
||||
{
|
||||
return ConvertToHex();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public WordTextBox()
|
||||
{
|
||||
InitializeComponent();
|
||||
MaxLength = 8;
|
||||
}
|
||||
|
||||
protected override void OnKeyPress(KeyPressEventArgs e)
|
||||
{
|
||||
base.OnKeyPress(e);
|
||||
e.Handled = !IsValidChar(e.KeyChar);
|
||||
}
|
||||
|
||||
private bool IsValidChar(char ch)
|
||||
{
|
||||
if (!char.IsControl(ch) && !char.IsDigit(ch))
|
||||
{
|
||||
if (IsHexNumber && char.IsLetter(ch))
|
||||
{
|
||||
return char.ToLower(ch) <= 'f';
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private void UpdateMaxLength()
|
||||
{
|
||||
if (Type == WordType.DWORD)
|
||||
{
|
||||
if (IsHexNumber)
|
||||
{
|
||||
MaxLength = 8;
|
||||
}
|
||||
else
|
||||
{
|
||||
MaxLength = 10;
|
||||
}
|
||||
}
|
||||
else if (IsHexNumber)
|
||||
{
|
||||
MaxLength = 16;
|
||||
}
|
||||
else
|
||||
{
|
||||
MaxLength = 20;
|
||||
}
|
||||
}
|
||||
|
||||
private bool ConvertToHex()
|
||||
{
|
||||
try
|
||||
{
|
||||
if (Type == WordType.DWORD)
|
||||
{
|
||||
uint.Parse(Text);
|
||||
}
|
||||
else
|
||||
{
|
||||
ulong.Parse(Text);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && components != null)
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user