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