Add a TypeLong property
This commit is contained in:
parent
76825d3a9b
commit
4b335f9489
|
@ -234,7 +234,7 @@ namespace de4dot {
|
|||
foreach (var deob in deobfuscators) {
|
||||
int val = deob.earlyDetect();
|
||||
if (val > 0)
|
||||
Log.v("{0,3}: {1}", val, deob.Type);
|
||||
Log.v("{0,3}: {1}", val, deob.TypeLong);
|
||||
if (val > detectVal) {
|
||||
detectVal = val;
|
||||
detected = deob;
|
||||
|
@ -249,7 +249,7 @@ namespace de4dot {
|
|||
foreach (var deob in deobfuscators) {
|
||||
this.deob = deob; // So we can call deob.CanInlineMethods in deobfuscate()
|
||||
int val = deob.detect();
|
||||
Log.v("{0,3}: {1}", val, deob.Type);
|
||||
Log.v("{0,3}: {1}", val, deob.TypeLong);
|
||||
if (val > detectVal) {
|
||||
detectVal = val;
|
||||
detected = deob;
|
||||
|
@ -300,7 +300,7 @@ namespace de4dot {
|
|||
public void checkSupportedStringDecrypter(StringFeatures feature) {
|
||||
if ((deob.StringFeatures & feature) == feature)
|
||||
return;
|
||||
throw new UserException(string.Format("Deobfuscator {0} does not support this string decryption type", deob.Type));
|
||||
throw new UserException(string.Format("Deobfuscator {0} does not support this string decryption type", deob.TypeLong));
|
||||
}
|
||||
|
||||
public void deobfuscate() {
|
||||
|
|
|
@ -25,6 +25,7 @@ using de4dot.blocks;
|
|||
namespace de4dot.deobfuscators.CliSecure {
|
||||
class DeobfuscatorInfo : DeobfuscatorInfoBase {
|
||||
public const string THE_NAME = "CliSecure";
|
||||
public const string THE_TYPE = "cs";
|
||||
const string DEFAULT_REGEX = @"[a-zA-Z_0-9>}$]$";
|
||||
BoolOption decryptMethods;
|
||||
BoolOption decryptResources;
|
||||
|
@ -42,7 +43,7 @@ namespace de4dot.deobfuscators.CliSecure {
|
|||
}
|
||||
|
||||
public override string Type {
|
||||
get { return "cs"; }
|
||||
get { return THE_TYPE; }
|
||||
}
|
||||
|
||||
public override IDeobfuscator createDeobfuscator() {
|
||||
|
@ -81,11 +82,15 @@ namespace de4dot.deobfuscators.CliSecure {
|
|||
}
|
||||
|
||||
public override string Type {
|
||||
get { return DeobfuscatorInfo.THE_TYPE; }
|
||||
}
|
||||
|
||||
public override string TypeLong {
|
||||
get { return DeobfuscatorInfo.THE_NAME; }
|
||||
}
|
||||
|
||||
public override string Name {
|
||||
get { return Type; }
|
||||
get { return TypeLong; }
|
||||
}
|
||||
|
||||
public Deobfuscator(Options options)
|
||||
|
|
|
@ -25,6 +25,7 @@ using de4dot.blocks;
|
|||
namespace de4dot.deobfuscators.CryptoObfuscator {
|
||||
class DeobfuscatorInfo : DeobfuscatorInfoBase {
|
||||
public const string THE_NAME = "Crypto Obfuscator";
|
||||
public const string THE_TYPE = "co";
|
||||
const string DEFAULT_REGEX = @"!^[A-Z]{1,3}(?:`\d+)?$&!^c[0-9a-f]{32}(?:`\d+)?$&" + DeobfuscatorBase.DEFAULT_VALID_NAME_REGEX;
|
||||
BoolOption removeTamperProtection;
|
||||
|
||||
|
@ -38,7 +39,7 @@ namespace de4dot.deobfuscators.CryptoObfuscator {
|
|||
}
|
||||
|
||||
public override string Type {
|
||||
get { return "co"; }
|
||||
get { return THE_TYPE; }
|
||||
}
|
||||
|
||||
public override IDeobfuscator createDeobfuscator() {
|
||||
|
@ -74,6 +75,10 @@ namespace de4dot.deobfuscators.CryptoObfuscator {
|
|||
}
|
||||
|
||||
public override string Type {
|
||||
get { return DeobfuscatorInfo.THE_TYPE; }
|
||||
}
|
||||
|
||||
public override string TypeLong {
|
||||
get { return DeobfuscatorInfo.THE_NAME; }
|
||||
}
|
||||
|
||||
|
|
|
@ -70,6 +70,7 @@ namespace de4dot.deobfuscators {
|
|||
public DecrypterType DefaultDecrypterType { get; set; }
|
||||
|
||||
public abstract string Type { get; }
|
||||
public abstract string TypeLong { get; }
|
||||
public abstract string Name { get; }
|
||||
|
||||
public virtual bool CanInlineMethods {
|
||||
|
|
|
@ -25,6 +25,7 @@ using de4dot.blocks;
|
|||
namespace de4dot.deobfuscators.Dotfuscator {
|
||||
class DeobfuscatorInfo : DeobfuscatorInfoBase {
|
||||
public const string THE_NAME = "Dotfuscator";
|
||||
public const string THE_TYPE = "df";
|
||||
const string DEFAULT_REGEX = @"!^[a-z][a-z0-9]{0,2}$&!^A_[0-9]+$&" + DeobfuscatorBase.DEFAULT_VALID_NAME_REGEX;
|
||||
public DeobfuscatorInfo()
|
||||
: base(DEFAULT_REGEX) {
|
||||
|
@ -35,7 +36,7 @@ namespace de4dot.deobfuscators.Dotfuscator {
|
|||
}
|
||||
|
||||
public override string Type {
|
||||
get { return "df"; }
|
||||
get { return THE_TYPE; }
|
||||
}
|
||||
|
||||
public override IDeobfuscator createDeobfuscator() {
|
||||
|
@ -65,6 +66,10 @@ namespace de4dot.deobfuscators.Dotfuscator {
|
|||
}
|
||||
|
||||
public override string Type {
|
||||
get { return DeobfuscatorInfo.THE_TYPE; }
|
||||
}
|
||||
|
||||
public override string TypeLong {
|
||||
get { return DeobfuscatorInfo.THE_NAME; }
|
||||
}
|
||||
|
||||
|
|
|
@ -25,6 +25,7 @@ using de4dot.blocks;
|
|||
namespace de4dot.deobfuscators.Eazfuscator {
|
||||
class DeobfuscatorInfo : DeobfuscatorInfoBase {
|
||||
public const string THE_NAME = "Eazfuscator.NET";
|
||||
public const string THE_TYPE = "ez";
|
||||
public DeobfuscatorInfo()
|
||||
: base() {
|
||||
}
|
||||
|
@ -34,7 +35,7 @@ namespace de4dot.deobfuscators.Eazfuscator {
|
|||
}
|
||||
|
||||
public override string Type {
|
||||
get { return "ez"; }
|
||||
get { return THE_TYPE; }
|
||||
}
|
||||
|
||||
public override IDeobfuscator createDeobfuscator() {
|
||||
|
@ -53,6 +54,10 @@ namespace de4dot.deobfuscators.Eazfuscator {
|
|||
}
|
||||
|
||||
public override string Type {
|
||||
get { return DeobfuscatorInfo.THE_TYPE; }
|
||||
}
|
||||
|
||||
public override string TypeLong {
|
||||
get { return DeobfuscatorInfo.THE_NAME; }
|
||||
}
|
||||
|
||||
|
|
|
@ -51,6 +51,7 @@ namespace de4dot.deobfuscators {
|
|||
|
||||
interface IDeobfuscator {
|
||||
string Type { get; }
|
||||
string TypeLong { get; }
|
||||
string Name { get; }
|
||||
Func<string, bool> IsValidName { get; }
|
||||
IDeobfuscatorOptions TheOptions { get; }
|
||||
|
|
|
@ -31,6 +31,7 @@ using de4dot.blocks;
|
|||
namespace de4dot.deobfuscators.SmartAssembly {
|
||||
class DeobfuscatorInfo : DeobfuscatorInfoBase {
|
||||
public const string THE_NAME = "SmartAssembly";
|
||||
public const string THE_TYPE = "sa";
|
||||
BoolOption removeAutomatedErrorReporting;
|
||||
BoolOption removeTamperProtection;
|
||||
BoolOption removeMemoryManager;
|
||||
|
@ -47,7 +48,7 @@ namespace de4dot.deobfuscators.SmartAssembly {
|
|||
}
|
||||
|
||||
public override string Type {
|
||||
get { return "sa"; }
|
||||
get { return THE_TYPE; }
|
||||
}
|
||||
|
||||
public override IDeobfuscator createDeobfuscator() {
|
||||
|
@ -72,7 +73,7 @@ namespace de4dot.deobfuscators.SmartAssembly {
|
|||
Options options;
|
||||
bool foundVersion = false;
|
||||
string poweredByAttributeString = null;
|
||||
string obfuscatorName = "SmartAssembly";
|
||||
string obfuscatorName = DeobfuscatorInfo.THE_NAME;
|
||||
bool foundSmartAssemblyAttribute = false;
|
||||
|
||||
IList<StringDecrypterInfo> stringDecrypterInfos = new List<StringDecrypterInfo>();
|
||||
|
@ -96,6 +97,10 @@ namespace de4dot.deobfuscators.SmartAssembly {
|
|||
}
|
||||
|
||||
public override string Type {
|
||||
get { return DeobfuscatorInfo.THE_TYPE; }
|
||||
}
|
||||
|
||||
public override string TypeLong {
|
||||
get { return DeobfuscatorInfo.THE_NAME; }
|
||||
}
|
||||
|
||||
|
|
|
@ -22,6 +22,7 @@ using System.Text.RegularExpressions;
|
|||
namespace de4dot.deobfuscators.Unknown {
|
||||
class DeobfuscatorInfo : DeobfuscatorInfoBase {
|
||||
public const string THE_NAME = "Unknown";
|
||||
public const string THE_TYPE = "un";
|
||||
public DeobfuscatorInfo()
|
||||
: base() {
|
||||
}
|
||||
|
@ -31,7 +32,7 @@ namespace de4dot.deobfuscators.Unknown {
|
|||
}
|
||||
|
||||
public override string Type {
|
||||
get { return "un"; }
|
||||
get { return THE_TYPE; }
|
||||
}
|
||||
|
||||
public override IDeobfuscator createDeobfuscator() {
|
||||
|
@ -49,6 +50,10 @@ namespace de4dot.deobfuscators.Unknown {
|
|||
}
|
||||
|
||||
public override string Type {
|
||||
get { return DeobfuscatorInfo.THE_TYPE; }
|
||||
}
|
||||
|
||||
public override string TypeLong {
|
||||
get { return DeobfuscatorInfo.THE_NAME; }
|
||||
}
|
||||
|
||||
|
|
|
@ -23,6 +23,7 @@ using Mono.Cecil;
|
|||
namespace de4dot.deobfuscators.Xenocode {
|
||||
class DeobfuscatorInfo : DeobfuscatorInfoBase {
|
||||
public const string THE_NAME = "Xenocode";
|
||||
public const string THE_TYPE = "xc";
|
||||
const string DEFAULT_REGEX = @"!^[oO01l]{4,}$&!^_?x[a-f0-9]{16,}$&" + DeobfuscatorBase.DEFAULT_VALID_NAME_REGEX;
|
||||
public DeobfuscatorInfo()
|
||||
: base(DEFAULT_REGEX) {
|
||||
|
@ -33,7 +34,7 @@ namespace de4dot.deobfuscators.Xenocode {
|
|||
}
|
||||
|
||||
public override string Type {
|
||||
get { return "xc"; }
|
||||
get { return THE_TYPE; }
|
||||
}
|
||||
|
||||
public override IDeobfuscator createDeobfuscator() {
|
||||
|
@ -51,11 +52,15 @@ namespace de4dot.deobfuscators.Xenocode {
|
|||
}
|
||||
|
||||
public override string Type {
|
||||
get { return DeobfuscatorInfo.THE_TYPE; }
|
||||
}
|
||||
|
||||
public override string TypeLong {
|
||||
get { return DeobfuscatorInfo.THE_NAME; }
|
||||
}
|
||||
|
||||
public override string Name {
|
||||
get { return Type; }
|
||||
get { return TypeLong; }
|
||||
}
|
||||
|
||||
public Deobfuscator(Options options)
|
||||
|
|
|
@ -28,6 +28,7 @@ using de4dot.blocks;
|
|||
namespace de4dot.deobfuscators.dotNET_Reactor {
|
||||
class DeobfuscatorInfo : DeobfuscatorInfoBase {
|
||||
public const string THE_NAME = ".NET Reactor";
|
||||
public const string THE_TYPE = "dr";
|
||||
const string DEFAULT_REGEX = DeobfuscatorBase.DEFAULT_VALID_NAME_REGEX;
|
||||
BoolOption decryptMethods;
|
||||
BoolOption decryptBools;
|
||||
|
@ -55,7 +56,7 @@ namespace de4dot.deobfuscators.dotNET_Reactor {
|
|||
}
|
||||
|
||||
public override string Type {
|
||||
get { return "dr"; }
|
||||
get { return THE_TYPE; }
|
||||
}
|
||||
|
||||
public override IDeobfuscator createDeobfuscator() {
|
||||
|
@ -115,6 +116,10 @@ namespace de4dot.deobfuscators.dotNET_Reactor {
|
|||
}
|
||||
|
||||
public override string Type {
|
||||
get { return DeobfuscatorInfo.THE_TYPE; }
|
||||
}
|
||||
|
||||
public override string TypeLong {
|
||||
get { return DeobfuscatorInfo.THE_NAME; }
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user