From 9a84b5f2e49410655a7e22be7c054bc3a2db752f Mon Sep 17 00:00:00 2001 From: FuzzySecurity <ru.boonen@gmail.com> Date: Mon, 7 Nov 2016 12:52:42 +0100 Subject: [PATCH] +Const-Fix --- bindings/const_generator.py | 16 ++++ .../powershell/Keystone/Const/keystone_h.cs | 89 +++++++++++++++++++ .../powershell/Keystone/Const/ks_arch_cons.cs | 9 -- .../powershell/Keystone/Const/ks_err_cons.cs | 46 ---------- .../powershell/Keystone/Const/ks_mode_cons.cs | 19 ---- .../Keystone/Const/ks_opt_value_cons.cs | 5 -- bindings/powershell/Keystone/Keystone.psm1 | 8 +- 7 files changed, 109 insertions(+), 83 deletions(-) create mode 100755 bindings/powershell/Keystone/Const/keystone_h.cs delete mode 100755 bindings/powershell/Keystone/Const/ks_arch_cons.cs delete mode 100755 bindings/powershell/Keystone/Const/ks_err_cons.cs delete mode 100755 bindings/powershell/Keystone/Const/ks_mode_cons.cs delete mode 100755 bindings/powershell/Keystone/Const/ks_opt_value_cons.cs diff --git a/bindings/const_generator.py b/bindings/const_generator.py index af0d07e..4ee721a 100644 --- a/bindings/const_generator.py +++ b/bindings/const_generator.py @@ -15,6 +15,22 @@ def CamelCase(s): return ''.join(''.join([w[0].upper(), w[1:].lower()]) for w in s.split('_')) template = { + 'powershell': { + 'header': "/// For Keystone Engine. AUTO-GENERATED FILE, DO NOT EDIT [%s_h.cs]\n", + 'footer': "", + 'out_file': './powershell/Keystone/Const/%s_h.cs', + # prefixes for constant filenames of all archs - case sensitive + 'keystone.h': 'keystone', + 'comment_open': '///', + 'comment_close': '', + 'rules': [ + { + 'regex': r'.*', + 'line_format': 'KS_{0} = {1},\n', + 'fn': (lambda x: x), + }, + ] + }, 'rust': { 'header': "// For Keystone Engine. AUTO-GENERATED FILE, DO NOT EDIT [%s_const.rs]\nextern crate libc;\n\n", 'footer': "", diff --git a/bindings/powershell/Keystone/Const/keystone_h.cs b/bindings/powershell/Keystone/Const/keystone_h.cs new file mode 100755 index 0000000..dcdcb0e --- /dev/null +++ b/bindings/powershell/Keystone/Const/keystone_h.cs @@ -0,0 +1,89 @@ +KS_API_MAJOR = 0, +KS_API_MINOR = 9, +KS_VERSION_MAJOR = 0, +KS_VERSION_MINOR = 9, +KS_VERSION_EXTRA = 1, +KS_ARCH_ARM = 1, +KS_ARCH_ARM64 = 2, +KS_ARCH_MIPS = 3, +KS_ARCH_X86 = 4, +KS_ARCH_PPC = 5, +KS_ARCH_SPARC = 6, +KS_ARCH_SYSTEMZ = 7, +KS_ARCH_HEXAGON = 8, +KS_ARCH_MAX = 9, +KS_MODE_LITTLE_ENDIAN = 0, +KS_MODE_BIG_ENDIAN = 1073741824, +KS_MODE_ARM = 1, +KS_MODE_THUMB = 16, +KS_MODE_V8 = 64, +KS_MODE_MICRO = 16, +KS_MODE_MIPS3 = 32, +KS_MODE_MIPS32R6 = 64, +KS_MODE_MIPS32 = 4, +KS_MODE_MIPS64 = 8, +KS_MODE_16 = 2, +KS_MODE_32 = 4, +KS_MODE_64 = 8, +KS_MODE_PPC32 = 4, +KS_MODE_PPC64 = 8, +KS_MODE_QPX = 16, +KS_MODE_SPARC32 = 4, +KS_MODE_SPARC64 = 8, +KS_MODE_V9 = 16, +KS_ERR_ASM = 128, +KS_ERR_ASM_ARCH = 512, +KS_ERR_OK = 0, +KS_ERR_NOMEM = 1, +KS_ERR_ARCH = 2, +KS_ERR_HANDLE = 3, +KS_ERR_MODE = 4, +KS_ERR_VERSION = 5, +KS_ERR_OPT_INVALID = 6, +KS_ERR_ASM_EXPR_TOKEN = 128, +KS_ERR_ASM_DIRECTIVE_VALUE_RANGE = 129, +KS_ERR_ASM_DIRECTIVE_ID = 130, +KS_ERR_ASM_DIRECTIVE_TOKEN = 131, +KS_ERR_ASM_DIRECTIVE_STR = 132, +KS_ERR_ASM_DIRECTIVE_COMMA = 133, +KS_ERR_ASM_DIRECTIVE_RELOC_NAME = 134, +KS_ERR_ASM_DIRECTIVE_RELOC_TOKEN = 135, +KS_ERR_ASM_DIRECTIVE_FPOINT = 136, +KS_ERR_ASM_DIRECTIVE_UNKNOWN = 137, +KS_ERR_ASM_DIRECTIVE_EQU = 138, +KS_ERR_ASM_DIRECTIVE_INVALID = 139, +KS_ERR_ASM_VARIANT_INVALID = 140, +KS_ERR_ASM_EXPR_BRACKET = 141, +KS_ERR_ASM_SYMBOL_MODIFIER = 142, +KS_ERR_ASM_SYMBOL_REDEFINED = 143, +KS_ERR_ASM_SYMBOL_MISSING = 144, +KS_ERR_ASM_RPAREN = 145, +KS_ERR_ASM_STAT_TOKEN = 146, +KS_ERR_ASM_UNSUPPORTED = 147, +KS_ERR_ASM_MACRO_TOKEN = 148, +KS_ERR_ASM_MACRO_PAREN = 149, +KS_ERR_ASM_MACRO_EQU = 150, +KS_ERR_ASM_MACRO_ARGS = 151, +KS_ERR_ASM_MACRO_LEVELS_EXCEED = 152, +KS_ERR_ASM_MACRO_STR = 153, +KS_ERR_ASM_MACRO_INVALID = 154, +KS_ERR_ASM_ESC_BACKSLASH = 155, +KS_ERR_ASM_ESC_OCTAL = 156, +KS_ERR_ASM_ESC_SEQUENCE = 157, +KS_ERR_ASM_ESC_STR = 158, +KS_ERR_ASM_TOKEN_INVALID = 159, +KS_ERR_ASM_INSN_UNSUPPORTED = 160, +KS_ERR_ASM_FIXUP_INVALID = 161, +KS_ERR_ASM_LABEL_INVALID = 162, +KS_ERR_ASM_FRAGMENT_INVALID = 163, +KS_ERR_ASM_INVALIDOPERAND = 512, +KS_ERR_ASM_MISSINGFEATURE = 513, +KS_ERR_ASM_MNEMONICFAIL = 514, +KS_OPT_SYNTAX = 1, +KS_OPT_SYM_RESOLVER = 2, +KS_OPT_SYNTAX_INTEL = 1, +KS_OPT_SYNTAX_ATT = 2, +KS_OPT_SYNTAX_NASM = 4, +KS_OPT_SYNTAX_MASM = 8, +KS_OPT_SYNTAX_GAS = 16, +KS_OPT_SYNTAX_RADIX16 = 32, \ No newline at end of file diff --git a/bindings/powershell/Keystone/Const/ks_arch_cons.cs b/bindings/powershell/Keystone/Const/ks_arch_cons.cs deleted file mode 100755 index fa1055f..0000000 --- a/bindings/powershell/Keystone/Const/ks_arch_cons.cs +++ /dev/null @@ -1,9 +0,0 @@ -KS_ARCH_ARM = 1, -KS_ARCH_ARM64, -KS_ARCH_MIPS, -KS_ARCH_X86, -KS_ARCH_PPC, -KS_ARCH_SPARC, -KS_ARCH_SYSTEMZ, -KS_ARCH_HEXAGON, -KS_ARCH_MAX, \ No newline at end of file diff --git a/bindings/powershell/Keystone/Const/ks_err_cons.cs b/bindings/powershell/Keystone/Const/ks_err_cons.cs deleted file mode 100755 index 6387fac..0000000 --- a/bindings/powershell/Keystone/Const/ks_err_cons.cs +++ /dev/null @@ -1,46 +0,0 @@ -KS_ERR_OK = 0, -KS_ERR_NOMEM, -KS_ERR_ARCH, -KS_ERR_HANDLE, -KS_ERR_MODE, -KS_ERR_VERSION, -KS_ERR_OPT_INVALID, -KS_ERR_ASM_EXPR_TOKEN = 128, -KS_ERR_ASM_DIRECTIVE_VALUE_RANGE, -KS_ERR_ASM_DIRECTIVE_ID, -KS_ERR_ASM_DIRECTIVE_TOKEN, -KS_ERR_ASM_DIRECTIVE_STR, -KS_ERR_ASM_DIRECTIVE_COMMA, -KS_ERR_ASM_DIRECTIVE_RELOC_NAME, -KS_ERR_ASM_DIRECTIVE_RELOC_TOKEN, -KS_ERR_ASM_DIRECTIVE_FPOINT, -KS_ERR_ASM_DIRECTIVE_UNKNOWN, -KS_ERR_ASM_DIRECTIVE_EQU, -KS_ERR_ASM_DIRECTIVE_INVALID, -KS_ERR_ASM_VARIANT_INVALID, -KS_ERR_ASM_EXPR_BRACKET, -KS_ERR_ASM_SYMBOL_MODIFIER, -KS_ERR_ASM_SYMBOL_REDEFINED, -KS_ERR_ASM_SYMBOL_MISSING, -KS_ERR_ASM_RPAREN, -KS_ERR_ASM_STAT_TOKEN, -KS_ERR_ASM_UNSUPPORTED, -KS_ERR_ASM_MACRO_TOKEN, -KS_ERR_ASM_MACRO_PAREN, -KS_ERR_ASM_MACRO_EQU, -KS_ERR_ASM_MACRO_ARGS, -KS_ERR_ASM_MACRO_LEVELS_EXCEED, -KS_ERR_ASM_MACRO_STR, -KS_ERR_ASM_MACRO_INVALID, -KS_ERR_ASM_ESC_BACKSLASH, -KS_ERR_ASM_ESC_OCTAL, -KS_ERR_ASM_ESC_SEQUENCE, -KS_ERR_ASM_ESC_STR, -KS_ERR_ASM_TOKEN_INVALID, -KS_ERR_ASM_INSN_UNSUPPORTED, -KS_ERR_ASM_FIXUP_INVALID, -KS_ERR_ASM_LABEL_INVALID, -KS_ERR_ASM_FRAGMENT_INVALID, -KS_ERR_ASM_INVALIDOPERAND = 512, -KS_ERR_ASM_MISSINGFEATURE, -KS_ERR_ASM_MNEMONICFAIL, \ No newline at end of file diff --git a/bindings/powershell/Keystone/Const/ks_mode_cons.cs b/bindings/powershell/Keystone/Const/ks_mode_cons.cs deleted file mode 100755 index 97f64f5..0000000 --- a/bindings/powershell/Keystone/Const/ks_mode_cons.cs +++ /dev/null @@ -1,19 +0,0 @@ -KS_MODE_LITTLE_ENDIAN = 0, -KS_MODE_BIG_ENDIAN = 1 << 30, -KS_MODE_ARM = 1 << 0, -KS_MODE_THUMB = 1 << 4, -KS_MODE_V8 = 1 << 6, -KS_MODE_MICRO = 1 << 4, -KS_MODE_MIPS3 = 1 << 5, -KS_MODE_MIPS32R6 = 1 << 6, -KS_MODE_MIPS32 = 1 << 2, -KS_MODE_MIPS64 = 1 << 3, -KS_MODE_16 = 1 << 1, -KS_MODE_32 = 1 << 2, -KS_MODE_64 = 1 << 3, -KS_MODE_PPC32 = 1 << 2, -KS_MODE_PPC64 = 1 << 3, -KS_MODE_QPX = 1 << 4, -KS_MODE_SPARC32 = 1 << 2, -KS_MODE_SPARC64 = 1 << 3, -KS_MODE_V9 = 1 << 4, \ No newline at end of file diff --git a/bindings/powershell/Keystone/Const/ks_opt_value_cons.cs b/bindings/powershell/Keystone/Const/ks_opt_value_cons.cs deleted file mode 100755 index f904ad2..0000000 --- a/bindings/powershell/Keystone/Const/ks_opt_value_cons.cs +++ /dev/null @@ -1,5 +0,0 @@ -KS_OPT_SYNTAX_INTEL = 1 << 0, -KS_OPT_SYNTAX_ATT = 1 << 1, -KS_OPT_SYNTAX_NASM = 1 << 2, -KS_OPT_SYNTAX_MASM = 1 << 3, -KS_OPT_SYNTAX_GAS = 1 << 4, \ No newline at end of file diff --git a/bindings/powershell/Keystone/Keystone.psm1 b/bindings/powershell/Keystone/Keystone.psm1 index ddfdcbb..2133daf 100755 --- a/bindings/powershell/Keystone/Keystone.psm1 +++ b/bindings/powershell/Keystone/Keystone.psm1 @@ -130,10 +130,10 @@ function Get-KeystoneAssembly { } # Load C# constants - $ks_err = Get-Content $($PSScriptRoot + '\Const\ks_err_cons.cs') - $ks_arch = Get-Content $($PSScriptRoot + '\Const\ks_arch_cons.cs') - $ks_mode = Get-Content $($PSScriptRoot + '\Const\ks_mode_cons.cs') - $ks_opt_value = Get-Content $($PSScriptRoot + '\Const\ks_opt_value_cons.cs') + $ks_err = Select-String "KS_ERR_" $($PSScriptRoot + '\Const\keystone_h.cs') |select -exp line + $ks_arch = Select-String "KS_ARCH_" $($PSScriptRoot + '\Const\keystone_h.cs') |select -exp line + $ks_mode = Select-String "KS_MODE_" $($PSScriptRoot + '\Const\keystone_h.cs') |select -exp line + $ks_opt_value = Select-String "KS_OPT_SYNTAX_" $($PSScriptRoot + '\Const\keystone_h.cs') |select -exp line # Inline C# to parse the unmanaged keystone DLL Add-Type -TypeDefinition @" -- GitLab