Add a TypeLong property

This commit is contained in:
de4dot 2011-11-12 11:31:07 +01:00
parent 76825d3a9b
commit 4b335f9489
11 changed files with 56 additions and 14 deletions

View File

@ -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() {

View File

@ -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)

View File

@ -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; }
}

View File

@ -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 {

View File

@ -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; }
}

View File

@ -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; }
}

View File

@ -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; }

View File

@ -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; }
}

View File

@ -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; }
}

View File

@ -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)

View File

@ -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; }
}