diff --git a/utils/jad/decompile.sh b/utils/jad/decompile.sh deleted file mode 100755 index 2b0bfc3..0000000 --- a/utils/jad/decompile.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/bash - -# Remove old -rm -rf ./jarfile ./classes - -# Create directories -mkdir jarfile -mkdir classes - -# Decompress the jarfile into the jarfile folder -unzip jarfile.jar -d ./jarfile - -# Find all the classes and pass then through JAD -#find . -type d -name *.class -exec rm -rf {} \; -ls ./jarfile/*.class | xargs -n1 ./jad -sjava -dclasses - -# Remove classfiles and left only other files -rm ./jarfile/*.class diff --git a/utils/jad/match2.py b/utils/jad/match2.py deleted file mode 100644 index 52c2e33..0000000 --- a/utils/jad/match2.py +++ /dev/null @@ -1,110 +0,0 @@ -#!/usr/bin/env python - -import re -import json -import sys -from pprint import pprint - -### -# CONFIGURATION -### - -DEBUG = True - -ITEMS_FILE = 'wk.java' -BLOCKS_FILE = 'apa.java' - -#bL = (new xc(135, 4, 0.6F, apa.ch.cz, apa.aE.cz)).b("carrots"); -#bM = (new xc(136, 1, 0.3F, apa.ci.cz, apa.aE.cz)).b("potato"); -#bO = (new wf(138, 2, 0.3F, false)).a(mk.u.H, 5, 0, 0.6F).b("potatoPoisonous"); -#bQ = (new wf(140, 6, 1.2F, false)).b("carrotGolden").c(xu.l); -#ITEMS_PATTERN = 'new (?P\w{1,2}.*)\;' -ITEMS_PATTERN = "new (?P[a-z]{2}\((?P[1-9]{1,3})[, (?P\d+)]?.*\"(?P\w+)\"\))" -BLOCKS_PATTERN = ITEMS_PATTERN - -class GameItem(object): - def __init__(self, game_id, b=None, c=None, d=None, e=None): - self.game_id = int(game_id) - pass - - def __str__(self): - return "" % (self.game_id, self.name) - - def b(self, name): - "Sets the item name." - self.name = name - return self - - def d(self, a): - return self - - def p(self): - return self - - def j(self): - return self - - def a(self, a=None, b=None, c=None, d=None, e=None): - return self - -def sanitize(string): - "Converts parameters and stuff to be correctly evaluated." - # Remove double parentesis - sane = string.strip().replace('))', ')') - # Boolean values - sane = sane.strip().replace('false', 'False') - sane = sane.strip().replace('true', 'True') - # Convert float values to string - #regex = re.compile('(\d\.\d\w)') - #sane = regex.sub("'\1'", sane) - # Convert rest t - regex = re.compile('([, |\(])([0-9a-zA-Z\.]+)') - sane = regex.sub(r'\1"\2"', sane) - return sane - -### -# GLOBALS -### -BLOCKS = [] -ITEMS = [] - -### -# GET ITEMS INFO FROM CLASSFILE -### -print("=> Mining items") -# Old items for final count -try: - olditems = open('items.json').read() - OLD_ITEMS = len(json.loads(olditems)) -except: - OLD_ITEMS = 0 - -file_handler = open('./classes/%s' % ITEMS_FILE) -data = file_handler.read().split("\n") - -item_regex = re.compile(ITEMS_PATTERN) -class_error_regex = re.compile('name \'(?P\w+)\' is not defined') - -for line in data: - if '"' in line: - t = item_regex.search(line) - if t: - item = t.groupdict() - print("Line: " + item['code']) - item['code'] = sanitize(item['code']) - print("Sanitize: " + item['code']) - try: - obj = eval(item['code']) - except NameError as error: - class_name = class_error_regex.search(error.__str__()).group('name') - setattr(sys.modules[__name__], class_name, GameItem) - obj = eval(item['code']) - - print("result object: " + obj.__str__()) - - ITEMS.append(obj) - print('- - - - - -') -print('Fetched %d items (%d new)' % (len(ITEMS), abs(OLD_ITEMS-len(ITEMS)))) - -#olditems = open('items.json', 'w') -#olditems.write(json.dumps(ITEMS)) diff --git a/utils/miner/blocks.py b/utils/miner/blocks.py new file mode 100644 index 0000000..5afbbd0 --- /dev/null +++ b/utils/miner/blocks.py @@ -0,0 +1,105 @@ +#!/usr/bin/env python + +# General libs +import re +import json +import os +import sys + +# Tool libs +from utils import run, sanitize +import conf +from objects import GameBlock + + +print("=> Phase: blocks") + + +### +# GLOBALS +### +BLOCKS = [] + +### +# LOOK FOR CORRECT JAVA FILES +### +print(" => Looking for java files...") +print(" Keywords: %s" % ', '.join(conf.BLOCKS_JAVA_KEYWORDS)) +for keyword in conf.BLOCKS_JAVA_KEYWORDS: + command = run('grep \'%s\' ./classes/*' % keyword) + lines = [] + [lines.append(x) for x in command] + lines = ''.join(lines).split('\n') + for result in lines: + if result and result is not '': + java_file = os.path.basename(result.strip().split()[0][:-1]) + if java_file not in conf.BLOCKS_FILES: + print(" Found: %s" % java_file) + conf.BLOCKS_FILES.append(java_file) + +### +# GET ITEMS INFO FROM CLASSFILE +### +print(" => Mining blocks...") + +# Old items for final count +try: + OLD_BLOCKS = json.loads(open('blocks.json').read()) +except: + OLD_BLOCKS = {} + OLD_BLOCKS['list'] = {} + +for java_file in conf.BLOCKS_FILES: + file_handler = open('./classes/%s' % java_file) + data = file_handler.read().split("\n") + + item_regex = re.compile(conf.BLOCKS_PATTERN) + class_error_regex = re.compile('name \'(?P\w+)\' is not defined') + + for line in data: + if '"' in line: # Reduces iterations + t = item_regex.search(line) + if t: + item = t.groupdict() + if conf.DEBUG: + print("Line: " + item['code']) + + item['code'] = sanitize(item['code']) + + if conf.DEBUG: + print("Sanitize: " + item['code']) + + try: + obj = eval(item['code']) + except NameError as error: + # Create class for the given classname + class_name = class_error_regex.search(error.__str__()).group('name') + if conf.DEBUG: + print("Classname: %s" % class_name) + setattr(sys.modules[__name__], class_name, type(class_name, (GameBlock,), {})) + obj = eval(item['code']) + + if conf.DEBUG: + print("result object: " + obj.__str__()) + print('- - - - - -') + + BLOCKS.append(obj) + +# Print the miner summary and compile the new old data +print(' => Summary') +new_old_data = {} +new_old_data['list'] = [] +[new_old_data['list'].append(x.name) for x in BLOCKS] +new_blocks = len(new_old_data['list'])-len(OLD_BLOCKS['list']) +print(' Fetched %d items (%d new)' % (len(new_old_data['list']), new_blocks)) +print(' Modifications:') +for item in BLOCKS: + if item.name not in OLD_BLOCKS['list']: + print(' + %s' % item.name) + +for item in OLD_BLOCKS['list']: + if item not in new_old_data['list']: + print(' - %s' % item) + +oldblocks = open('blocks.json', 'w') +oldblocks.write(json.dumps(new_old_data)) diff --git a/utils/miner/conf.py b/utils/miner/conf.py new file mode 100644 index 0000000..e1de394 --- /dev/null +++ b/utils/miner/conf.py @@ -0,0 +1,30 @@ +DEBUG = False + +### +# TEXTURES +### +TEXTURES_PATHS = ['jarfile/textures/blocks', 'jarfile/textures/items'] + +### +# ITEMS +### + +ITEMS_FILES = [] +ITEMS_JAVA_KEYWORDS = ['flintAndSteel', 'axeStone', 'swordDiamond'] +ITEMS_PATTERN = "new (?P[a-z]{2}\((?P[1-9]{1,3}).*\"(?P\w+)\"\))" + +### +# BLOCKS +### + +BLOCKS_FILES = [] +BLOCKS_JAVA_KEYWORDS = ['stonebrick'] +BLOCKS_PATTERN = "new (?P[a-z]{1,3}\((?P[1-9]{1,3}).*\"(?P\w+)\"\))" + +### +# BLACKLIST +### + +CLASS_BLACKLIST = [ + 'and', 'abs', 'all', 'any', 'bin', 'chr' +] diff --git a/utils/miner/decompile.sh b/utils/miner/decompile.sh new file mode 100755 index 0000000..c23d3b1 --- /dev/null +++ b/utils/miner/decompile.sh @@ -0,0 +1,30 @@ +#!/bin/bash + +# Jarfile +JARFILE=$1 + +if [ "$JARFILE" != "" ]; then + echo "=> Phase: JAR file" + # Remove old + rm -rf ./jarfile ./classes + + # Create directories + mkdir jarfile + mkdir classes + + # Decompress the jarfile into the jarfile folder + echo " => Unpackaging jar file" + unzip -qq $JARFILE -d ./jarfile + + # Find all the classes and pass then through JAD + #find . -type d -name *.class -exec rm -rf {} \; + echo " => Decompiling classes" + ls ./jarfile/*.class | xargs -n1 ./tools/jad/jad -sjava -dclasses &> /dev/null + + # Remove classfiles and left only other files + echo " => Cleaning" + rm ./jarfile/*.class +else + echo "No jarfile specified." + exit +fi diff --git a/utils/miner/items.py b/utils/miner/items.py new file mode 100644 index 0000000..7975d83 --- /dev/null +++ b/utils/miner/items.py @@ -0,0 +1,102 @@ +#!/usr/bin/env python + +# General libs +import re +import json +import os +import sys + +# Tool libs +from utils import run, sanitize +import conf +from objects import GameItem + + +print("=> Phase: items") + + +### +# GLOBALS +### +ITEMS = [] + +### +# LOOK FOR CORRECT JAVA FILES +### +print(" => Looking for java files...") +print(" Keywords: %s" % ', '.join(conf.ITEMS_JAVA_KEYWORDS)) +for keyword in conf.ITEMS_JAVA_KEYWORDS: + cmd = run('grep \'%s\' ./classes/*' % keyword) + for result in cmd: + if result and result is not '': + java_file = os.path.basename(result.strip().split()[0][:-1]) + if java_file not in conf.ITEMS_FILES: + print(" Found: %s" % java_file) + conf.ITEMS_FILES.append(java_file) + +### +# GET ITEMS INFO FROM CLASSFILE +### +print(" => Mining items...") + +# Old items for final count +try: + OLD_ITEMS = json.loads(open('items.json').read()) +except: + OLD_ITEMS = {} + OLD_ITEMS['list'] = [] + +for java_file in conf.ITEMS_FILES: + file_handler = open('./classes/%s' % java_file) + data = file_handler.read().split("\n") + + item_regex = re.compile(conf.ITEMS_PATTERN) + class_error_regex = re.compile('name \'(?P\w+)\' is not defined') + + for line in data: + if '"' in line: + t = item_regex.search(line) + if t: + item = t.groupdict() + if conf.DEBUG: + print("Line: " + item['code']) + + item['code'] = sanitize(item['code']) + + if conf.DEBUG: + print("Sanitize: " + item['code']) + + try: + obj = eval(item['code']) + except NameError as error: + # Create class for the given classname + class_name = class_error_regex.search(error.__str__()).group('name') + if conf.DEBUG: + print("Classname: %s" % class_name) + setattr(sys.modules[__name__], class_name, type(class_name, (GameItem,), {})) + obj = eval(item['code']) + #if obj.name == 'appleGold': + if conf.DEBUG: + print("result object: " + obj.__str__()) + print('- - - - - -') + + ITEMS.append(obj) + +# Print the miner summary and compile the new old data +print(' => Summary') +new_old_data = {} +new_old_data['list'] = [] +[new_old_data['list'].append(x.name) for x in ITEMS] +new_items = len(new_old_data['list'])-len(OLD_ITEMS['list']) +print(' Fetched %d items (%d new)' % (len(ITEMS), new_items)) +print(' Modifications:') +for item in ITEMS: + if item.name not in OLD_ITEMS['list']: + print(' + %s' % item.name) + +for item in OLD_ITEMS['list']: + if item not in new_old_data['list']: + print(' - %s' % item) + +olditems = open('items.json', 'w') +olditems.write(json.dumps(new_old_data)) diff --git a/utils/jad/match.py b/utils/miner/match.py similarity index 100% rename from utils/jad/match.py rename to utils/miner/match.py diff --git a/utils/miner/objects.py b/utils/miner/objects.py new file mode 100644 index 0000000..bf7e44c --- /dev/null +++ b/utils/miner/objects.py @@ -0,0 +1,53 @@ +## +# ITEM +## +class GameItem(object): + def __init__(self, game_id, *args): + self.id = int(game_id) + + def __str__(self, *args): + return "" % ( + self.id, + self.name + ) + + def method(self, *args): + if len(args) == 1 and isinstance(args[0], str): + "Sets the name" + self.name = args[0] + return self + + def __getattr__(self, *args): + return self.method + +## +# BLOCK +## +class GameBlock(object): + def __init__(self, game_id, *args): + self.id = int(game_id) + + def __str__(self, *args): + return "" % ( + self.id, + self.name + ) + + def method(self, *args): + if len(args) == 1 and isinstance(args[0], str): + "Sets the name" + self.name = args[0] + return self + + def __getattr__(self, *args): + return self.method + +## +# TEXTURE +## +class GameTexture(object): + def __init__(self, name): + self.name = self.parse_name(name) + + def parse_name(self, name): + return name.split('.')[0] diff --git a/utils/miner/run.sh b/utils/miner/run.sh new file mode 100755 index 0000000..458e670 --- /dev/null +++ b/utils/miner/run.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +./decompile.sh $1 + +python textures.py + +python items.py + +python blocks.py diff --git a/utils/miner/textures.py b/utils/miner/textures.py new file mode 100644 index 0000000..21745fb --- /dev/null +++ b/utils/miner/textures.py @@ -0,0 +1,19 @@ +# General libs +from os import listdir +from os.path import isfile, join + +# Tool libs +import conf +from objects import GameTexture + +print("=> Phase: textures") + +TEXTURES = [] + +for path in conf.TEXTURES_PATHS: + # GO! + for f in listdir(path): + if isfile(join(path, f)): + TEXTURES.append(GameTexture(f)) + +print(" Got %d textures" % len(TEXTURES)) diff --git a/utils/miner/tools/dex2jar/LICENSE.txt b/utils/miner/tools/dex2jar/LICENSE.txt new file mode 100644 index 0000000..6b0b127 --- /dev/null +++ b/utils/miner/tools/dex2jar/LICENSE.txt @@ -0,0 +1,203 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + diff --git a/utils/miner/tools/dex2jar/NOTICE.txt b/utils/miner/tools/dex2jar/NOTICE.txt new file mode 100644 index 0000000..8674497 --- /dev/null +++ b/utils/miner/tools/dex2jar/NOTICE.txt @@ -0,0 +1,7 @@ +dex2jar - Tools to work with android .dex and java .class files +Copyright (c) 2009-2012 Panxiaobo + +contributors + - Panxiaobo + - yyjdelete + diff --git a/utils/miner/tools/dex2jar/d2j-apk-sign.bat b/utils/miner/tools/dex2jar/d2j-apk-sign.bat new file mode 100644 index 0000000..87c7fd2 --- /dev/null +++ b/utils/miner/tools/dex2jar/d2j-apk-sign.bat @@ -0,0 +1,23 @@ +@echo off + +REM +REM dex2jar - Tools to work with android .dex and java .class files +REM Copyright (c) 2009-2012 Panxiaobo +REM +REM Licensed under the Apache License, Version 2.0 (the "License"); +REM you may not use this file except in compliance with the License. +REM You may obtain a copy of the License at +REM +REM http://www.apache.org/licenses/LICENSE-2.0 +REM +REM Unless required by applicable law or agreed to in writing, software +REM distributed under the License is distributed on an "AS IS" BASIS, +REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +REM See the License for the specific language governing permissions and +REM limitations under the License. +REM + +set CLASSPATH= +FOR %%i IN ("%~dp0lib\*.jar") DO CALL "%~dp0setclasspath.bat" %%i + +java -Xms512m -Xmx1024m -cp "%CLASSPATH%" "com.googlecode.dex2jar.tools.ApkSign" %* diff --git a/utils/miner/tools/dex2jar/d2j-apk-sign.sh b/utils/miner/tools/dex2jar/d2j-apk-sign.sh new file mode 100755 index 0000000..a4c226b --- /dev/null +++ b/utils/miner/tools/dex2jar/d2j-apk-sign.sh @@ -0,0 +1,40 @@ +#!/bin/sh + +# +# dex2jar - Tools to work with android .dex and java .class files +# Copyright (c) 2009-2012 Panxiaobo +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +# copy from $Tomcat/bin/startup.sh +# resolve links - $0 may be a softlink +PRG="$0" +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`/"$link" + fi +done +PRGDIR=`dirname "$PRG"` +# + +_classpath="." +for k in "$PRGDIR"/lib/*.jar +do + _classpath="${_classpath}:${k}" +done +java -Xms512m -Xmx1024m -classpath "${_classpath}" "com.googlecode.dex2jar.tools.ApkSign" $@ diff --git a/utils/miner/tools/dex2jar/d2j-asm-verify.bat b/utils/miner/tools/dex2jar/d2j-asm-verify.bat new file mode 100644 index 0000000..9ebaaff --- /dev/null +++ b/utils/miner/tools/dex2jar/d2j-asm-verify.bat @@ -0,0 +1,23 @@ +@echo off + +REM +REM dex2jar - Tools to work with android .dex and java .class files +REM Copyright (c) 2009-2012 Panxiaobo +REM +REM Licensed under the Apache License, Version 2.0 (the "License"); +REM you may not use this file except in compliance with the License. +REM You may obtain a copy of the License at +REM +REM http://www.apache.org/licenses/LICENSE-2.0 +REM +REM Unless required by applicable law or agreed to in writing, software +REM distributed under the License is distributed on an "AS IS" BASIS, +REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +REM See the License for the specific language governing permissions and +REM limitations under the License. +REM + +set CLASSPATH= +FOR %%i IN ("%~dp0lib\*.jar") DO CALL "%~dp0setclasspath.bat" %%i + +java -Xms512m -Xmx1024m -cp "%CLASSPATH%" "com.googlecode.dex2jar.tools.AsmVerify" %* diff --git a/utils/miner/tools/dex2jar/d2j-asm-verify.sh b/utils/miner/tools/dex2jar/d2j-asm-verify.sh new file mode 100755 index 0000000..3331c76 --- /dev/null +++ b/utils/miner/tools/dex2jar/d2j-asm-verify.sh @@ -0,0 +1,40 @@ +#!/bin/sh + +# +# dex2jar - Tools to work with android .dex and java .class files +# Copyright (c) 2009-2012 Panxiaobo +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +# copy from $Tomcat/bin/startup.sh +# resolve links - $0 may be a softlink +PRG="$0" +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`/"$link" + fi +done +PRGDIR=`dirname "$PRG"` +# + +_classpath="." +for k in "$PRGDIR"/lib/*.jar +do + _classpath="${_classpath}:${k}" +done +java -Xms512m -Xmx1024m -classpath "${_classpath}" "com.googlecode.dex2jar.tools.AsmVerify" $@ diff --git a/utils/miner/tools/dex2jar/d2j-decrpyt-string.bat b/utils/miner/tools/dex2jar/d2j-decrpyt-string.bat new file mode 100644 index 0000000..cfc0b90 --- /dev/null +++ b/utils/miner/tools/dex2jar/d2j-decrpyt-string.bat @@ -0,0 +1,23 @@ +@echo off + +REM +REM dex2jar - Tools to work with android .dex and java .class files +REM Copyright (c) 2009-2012 Panxiaobo +REM +REM Licensed under the Apache License, Version 2.0 (the "License"); +REM you may not use this file except in compliance with the License. +REM You may obtain a copy of the License at +REM +REM http://www.apache.org/licenses/LICENSE-2.0 +REM +REM Unless required by applicable law or agreed to in writing, software +REM distributed under the License is distributed on an "AS IS" BASIS, +REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +REM See the License for the specific language governing permissions and +REM limitations under the License. +REM + +set CLASSPATH= +FOR %%i IN ("%~dp0lib\*.jar") DO CALL "%~dp0setclasspath.bat" %%i + +java -Xms512m -Xmx1024m -cp "%CLASSPATH%" "com.googlecode.dex2jar.tools.DecryptStringCmd" %* diff --git a/utils/miner/tools/dex2jar/d2j-decrpyt-string.sh b/utils/miner/tools/dex2jar/d2j-decrpyt-string.sh new file mode 100755 index 0000000..c3b7135 --- /dev/null +++ b/utils/miner/tools/dex2jar/d2j-decrpyt-string.sh @@ -0,0 +1,40 @@ +#!/bin/sh + +# +# dex2jar - Tools to work with android .dex and java .class files +# Copyright (c) 2009-2012 Panxiaobo +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +# copy from $Tomcat/bin/startup.sh +# resolve links - $0 may be a softlink +PRG="$0" +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`/"$link" + fi +done +PRGDIR=`dirname "$PRG"` +# + +_classpath="." +for k in "$PRGDIR"/lib/*.jar +do + _classpath="${_classpath}:${k}" +done +java -Xms512m -Xmx1024m -classpath "${_classpath}" "com.googlecode.dex2jar.tools.DecryptStringCmd" $@ diff --git a/utils/miner/tools/dex2jar/d2j-dex-asmifier.bat b/utils/miner/tools/dex2jar/d2j-dex-asmifier.bat new file mode 100644 index 0000000..3465c94 --- /dev/null +++ b/utils/miner/tools/dex2jar/d2j-dex-asmifier.bat @@ -0,0 +1,23 @@ +@echo off + +REM +REM dex2jar - Tools to work with android .dex and java .class files +REM Copyright (c) 2009-2012 Panxiaobo +REM +REM Licensed under the Apache License, Version 2.0 (the "License"); +REM you may not use this file except in compliance with the License. +REM You may obtain a copy of the License at +REM +REM http://www.apache.org/licenses/LICENSE-2.0 +REM +REM Unless required by applicable law or agreed to in writing, software +REM distributed under the License is distributed on an "AS IS" BASIS, +REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +REM See the License for the specific language governing permissions and +REM limitations under the License. +REM + +set CLASSPATH= +FOR %%i IN ("%~dp0lib\*.jar") DO CALL "%~dp0setclasspath.bat" %%i + +java -Xms512m -Xmx1024m -cp "%CLASSPATH%" "com.googlecode.dex2jar.util.ASMifierFileV" %* diff --git a/utils/miner/tools/dex2jar/d2j-dex-asmifier.sh b/utils/miner/tools/dex2jar/d2j-dex-asmifier.sh new file mode 100755 index 0000000..661672f --- /dev/null +++ b/utils/miner/tools/dex2jar/d2j-dex-asmifier.sh @@ -0,0 +1,40 @@ +#!/bin/sh + +# +# dex2jar - Tools to work with android .dex and java .class files +# Copyright (c) 2009-2012 Panxiaobo +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +# copy from $Tomcat/bin/startup.sh +# resolve links - $0 may be a softlink +PRG="$0" +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`/"$link" + fi +done +PRGDIR=`dirname "$PRG"` +# + +_classpath="." +for k in "$PRGDIR"/lib/*.jar +do + _classpath="${_classpath}:${k}" +done +java -Xms512m -Xmx1024m -classpath "${_classpath}" "com.googlecode.dex2jar.util.ASMifierFileV" $@ diff --git a/utils/miner/tools/dex2jar/d2j-dex-dump.bat b/utils/miner/tools/dex2jar/d2j-dex-dump.bat new file mode 100644 index 0000000..3ec674a --- /dev/null +++ b/utils/miner/tools/dex2jar/d2j-dex-dump.bat @@ -0,0 +1,23 @@ +@echo off + +REM +REM dex2jar - Tools to work with android .dex and java .class files +REM Copyright (c) 2009-2012 Panxiaobo +REM +REM Licensed under the Apache License, Version 2.0 (the "License"); +REM you may not use this file except in compliance with the License. +REM You may obtain a copy of the License at +REM +REM http://www.apache.org/licenses/LICENSE-2.0 +REM +REM Unless required by applicable law or agreed to in writing, software +REM distributed under the License is distributed on an "AS IS" BASIS, +REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +REM See the License for the specific language governing permissions and +REM limitations under the License. +REM + +set CLASSPATH= +FOR %%i IN ("%~dp0lib\*.jar") DO CALL "%~dp0setclasspath.bat" %%i + +java -Xms512m -Xmx1024m -cp "%CLASSPATH%" "com.googlecode.dex2jar.util.Dump" %* diff --git a/utils/miner/tools/dex2jar/d2j-dex-dump.sh b/utils/miner/tools/dex2jar/d2j-dex-dump.sh new file mode 100755 index 0000000..1579b4e --- /dev/null +++ b/utils/miner/tools/dex2jar/d2j-dex-dump.sh @@ -0,0 +1,40 @@ +#!/bin/sh + +# +# dex2jar - Tools to work with android .dex and java .class files +# Copyright (c) 2009-2012 Panxiaobo +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +# copy from $Tomcat/bin/startup.sh +# resolve links - $0 may be a softlink +PRG="$0" +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`/"$link" + fi +done +PRGDIR=`dirname "$PRG"` +# + +_classpath="." +for k in "$PRGDIR"/lib/*.jar +do + _classpath="${_classpath}:${k}" +done +java -Xms512m -Xmx1024m -classpath "${_classpath}" "com.googlecode.dex2jar.util.Dump" $@ diff --git a/utils/miner/tools/dex2jar/d2j-dex2jar.bat b/utils/miner/tools/dex2jar/d2j-dex2jar.bat new file mode 100644 index 0000000..f21e6b9 --- /dev/null +++ b/utils/miner/tools/dex2jar/d2j-dex2jar.bat @@ -0,0 +1,23 @@ +@echo off + +REM +REM dex2jar - Tools to work with android .dex and java .class files +REM Copyright (c) 2009-2012 Panxiaobo +REM +REM Licensed under the Apache License, Version 2.0 (the "License"); +REM you may not use this file except in compliance with the License. +REM You may obtain a copy of the License at +REM +REM http://www.apache.org/licenses/LICENSE-2.0 +REM +REM Unless required by applicable law or agreed to in writing, software +REM distributed under the License is distributed on an "AS IS" BASIS, +REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +REM See the License for the specific language governing permissions and +REM limitations under the License. +REM + +set CLASSPATH= +FOR %%i IN ("%~dp0lib\*.jar") DO CALL "%~dp0setclasspath.bat" %%i + +java -Xms512m -Xmx1024m -cp "%CLASSPATH%" "com.googlecode.dex2jar.tools.Dex2jarCmd" %* diff --git a/utils/miner/tools/dex2jar/d2j-dex2jar.sh b/utils/miner/tools/dex2jar/d2j-dex2jar.sh new file mode 100755 index 0000000..de86bd6 --- /dev/null +++ b/utils/miner/tools/dex2jar/d2j-dex2jar.sh @@ -0,0 +1,40 @@ +#!/bin/sh + +# +# dex2jar - Tools to work with android .dex and java .class files +# Copyright (c) 2009-2012 Panxiaobo +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +# copy from $Tomcat/bin/startup.sh +# resolve links - $0 may be a softlink +PRG="$0" +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`/"$link" + fi +done +PRGDIR=`dirname "$PRG"` +# + +_classpath="." +for k in "$PRGDIR"/lib/*.jar +do + _classpath="${_classpath}:${k}" +done +java -Xms512m -Xmx1024m -classpath "${_classpath}" "com.googlecode.dex2jar.tools.Dex2jarCmd" $@ diff --git a/utils/miner/tools/dex2jar/d2j-init-deobf.bat b/utils/miner/tools/dex2jar/d2j-init-deobf.bat new file mode 100644 index 0000000..187dc8e --- /dev/null +++ b/utils/miner/tools/dex2jar/d2j-init-deobf.bat @@ -0,0 +1,23 @@ +@echo off + +REM +REM dex2jar - Tools to work with android .dex and java .class files +REM Copyright (c) 2009-2012 Panxiaobo +REM +REM Licensed under the Apache License, Version 2.0 (the "License"); +REM you may not use this file except in compliance with the License. +REM You may obtain a copy of the License at +REM +REM http://www.apache.org/licenses/LICENSE-2.0 +REM +REM Unless required by applicable law or agreed to in writing, software +REM distributed under the License is distributed on an "AS IS" BASIS, +REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +REM See the License for the specific language governing permissions and +REM limitations under the License. +REM + +set CLASSPATH= +FOR %%i IN ("%~dp0lib\*.jar") DO CALL "%~dp0setclasspath.bat" %%i + +java -Xms512m -Xmx1024m -cp "%CLASSPATH%" "com.googlecode.dex2jar.tools.DeObfInitCmd" %* diff --git a/utils/miner/tools/dex2jar/d2j-init-deobf.sh b/utils/miner/tools/dex2jar/d2j-init-deobf.sh new file mode 100755 index 0000000..44ba56e --- /dev/null +++ b/utils/miner/tools/dex2jar/d2j-init-deobf.sh @@ -0,0 +1,40 @@ +#!/bin/sh + +# +# dex2jar - Tools to work with android .dex and java .class files +# Copyright (c) 2009-2012 Panxiaobo +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +# copy from $Tomcat/bin/startup.sh +# resolve links - $0 may be a softlink +PRG="$0" +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`/"$link" + fi +done +PRGDIR=`dirname "$PRG"` +# + +_classpath="." +for k in "$PRGDIR"/lib/*.jar +do + _classpath="${_classpath}:${k}" +done +java -Xms512m -Xmx1024m -classpath "${_classpath}" "com.googlecode.dex2jar.tools.DeObfInitCmd" $@ diff --git a/utils/miner/tools/dex2jar/d2j-jar-access.bat b/utils/miner/tools/dex2jar/d2j-jar-access.bat new file mode 100644 index 0000000..7346bfe --- /dev/null +++ b/utils/miner/tools/dex2jar/d2j-jar-access.bat @@ -0,0 +1,23 @@ +@echo off + +REM +REM dex2jar - Tools to work with android .dex and java .class files +REM Copyright (c) 2009-2012 Panxiaobo +REM +REM Licensed under the Apache License, Version 2.0 (the "License"); +REM you may not use this file except in compliance with the License. +REM You may obtain a copy of the License at +REM +REM http://www.apache.org/licenses/LICENSE-2.0 +REM +REM Unless required by applicable law or agreed to in writing, software +REM distributed under the License is distributed on an "AS IS" BASIS, +REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +REM See the License for the specific language governing permissions and +REM limitations under the License. +REM + +set CLASSPATH= +FOR %%i IN ("%~dp0lib\*.jar") DO CALL "%~dp0setclasspath.bat" %%i + +java -Xms512m -Xmx1024m -cp "%CLASSPATH%" "com.googlecode.dex2jar.tools.JarAccessCmd" %* diff --git a/utils/miner/tools/dex2jar/d2j-jar-access.sh b/utils/miner/tools/dex2jar/d2j-jar-access.sh new file mode 100755 index 0000000..9196600 --- /dev/null +++ b/utils/miner/tools/dex2jar/d2j-jar-access.sh @@ -0,0 +1,40 @@ +#!/bin/sh + +# +# dex2jar - Tools to work with android .dex and java .class files +# Copyright (c) 2009-2012 Panxiaobo +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +# copy from $Tomcat/bin/startup.sh +# resolve links - $0 may be a softlink +PRG="$0" +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`/"$link" + fi +done +PRGDIR=`dirname "$PRG"` +# + +_classpath="." +for k in "$PRGDIR"/lib/*.jar +do + _classpath="${_classpath}:${k}" +done +java -Xms512m -Xmx1024m -classpath "${_classpath}" "com.googlecode.dex2jar.tools.JarAccessCmd" $@ diff --git a/utils/miner/tools/dex2jar/d2j-jar-remap.bat b/utils/miner/tools/dex2jar/d2j-jar-remap.bat new file mode 100644 index 0000000..30dbd96 --- /dev/null +++ b/utils/miner/tools/dex2jar/d2j-jar-remap.bat @@ -0,0 +1,23 @@ +@echo off + +REM +REM dex2jar - Tools to work with android .dex and java .class files +REM Copyright (c) 2009-2012 Panxiaobo +REM +REM Licensed under the Apache License, Version 2.0 (the "License"); +REM you may not use this file except in compliance with the License. +REM You may obtain a copy of the License at +REM +REM http://www.apache.org/licenses/LICENSE-2.0 +REM +REM Unless required by applicable law or agreed to in writing, software +REM distributed under the License is distributed on an "AS IS" BASIS, +REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +REM See the License for the specific language governing permissions and +REM limitations under the License. +REM + +set CLASSPATH= +FOR %%i IN ("%~dp0lib\*.jar") DO CALL "%~dp0setclasspath.bat" %%i + +java -Xms512m -Xmx1024m -cp "%CLASSPATH%" "com.googlecode.dex2jar.tools.JarRemap" %* diff --git a/utils/miner/tools/dex2jar/d2j-jar-remap.sh b/utils/miner/tools/dex2jar/d2j-jar-remap.sh new file mode 100755 index 0000000..a761b0a --- /dev/null +++ b/utils/miner/tools/dex2jar/d2j-jar-remap.sh @@ -0,0 +1,40 @@ +#!/bin/sh + +# +# dex2jar - Tools to work with android .dex and java .class files +# Copyright (c) 2009-2012 Panxiaobo +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +# copy from $Tomcat/bin/startup.sh +# resolve links - $0 may be a softlink +PRG="$0" +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`/"$link" + fi +done +PRGDIR=`dirname "$PRG"` +# + +_classpath="." +for k in "$PRGDIR"/lib/*.jar +do + _classpath="${_classpath}:${k}" +done +java -Xms512m -Xmx1024m -classpath "${_classpath}" "com.googlecode.dex2jar.tools.JarRemap" $@ diff --git a/utils/miner/tools/dex2jar/d2j-jar2dex.bat b/utils/miner/tools/dex2jar/d2j-jar2dex.bat new file mode 100644 index 0000000..92da5f6 --- /dev/null +++ b/utils/miner/tools/dex2jar/d2j-jar2dex.bat @@ -0,0 +1,23 @@ +@echo off + +REM +REM dex2jar - Tools to work with android .dex and java .class files +REM Copyright (c) 2009-2012 Panxiaobo +REM +REM Licensed under the Apache License, Version 2.0 (the "License"); +REM you may not use this file except in compliance with the License. +REM You may obtain a copy of the License at +REM +REM http://www.apache.org/licenses/LICENSE-2.0 +REM +REM Unless required by applicable law or agreed to in writing, software +REM distributed under the License is distributed on an "AS IS" BASIS, +REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +REM See the License for the specific language governing permissions and +REM limitations under the License. +REM + +set CLASSPATH= +FOR %%i IN ("%~dp0lib\*.jar") DO CALL "%~dp0setclasspath.bat" %%i + +java -Xms512m -Xmx1024m -cp "%CLASSPATH%" "com.googlecode.dex2jar.tools.Jar2Dex" %* diff --git a/utils/miner/tools/dex2jar/d2j-jar2dex.sh b/utils/miner/tools/dex2jar/d2j-jar2dex.sh new file mode 100755 index 0000000..94734a4 --- /dev/null +++ b/utils/miner/tools/dex2jar/d2j-jar2dex.sh @@ -0,0 +1,40 @@ +#!/bin/sh + +# +# dex2jar - Tools to work with android .dex and java .class files +# Copyright (c) 2009-2012 Panxiaobo +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +# copy from $Tomcat/bin/startup.sh +# resolve links - $0 may be a softlink +PRG="$0" +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`/"$link" + fi +done +PRGDIR=`dirname "$PRG"` +# + +_classpath="." +for k in "$PRGDIR"/lib/*.jar +do + _classpath="${_classpath}:${k}" +done +java -Xms512m -Xmx1024m -classpath "${_classpath}" "com.googlecode.dex2jar.tools.Jar2Dex" $@ diff --git a/utils/miner/tools/dex2jar/d2j-jar2jasmin.bat b/utils/miner/tools/dex2jar/d2j-jar2jasmin.bat new file mode 100644 index 0000000..4b4dd8c --- /dev/null +++ b/utils/miner/tools/dex2jar/d2j-jar2jasmin.bat @@ -0,0 +1,23 @@ +@echo off + +REM +REM dex2jar - Tools to work with android .dex and java .class files +REM Copyright (c) 2009-2012 Panxiaobo +REM +REM Licensed under the Apache License, Version 2.0 (the "License"); +REM you may not use this file except in compliance with the License. +REM You may obtain a copy of the License at +REM +REM http://www.apache.org/licenses/LICENSE-2.0 +REM +REM Unless required by applicable law or agreed to in writing, software +REM distributed under the License is distributed on an "AS IS" BASIS, +REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +REM See the License for the specific language governing permissions and +REM limitations under the License. +REM + +set CLASSPATH= +FOR %%i IN ("%~dp0lib\*.jar") DO CALL "%~dp0setclasspath.bat" %%i + +java -Xms512m -Xmx1024m -cp "%CLASSPATH%" "com.googlecode.dex2jar.tools.Jar2Jasmin" %* diff --git a/utils/miner/tools/dex2jar/d2j-jar2jasmin.sh b/utils/miner/tools/dex2jar/d2j-jar2jasmin.sh new file mode 100755 index 0000000..b759be9 --- /dev/null +++ b/utils/miner/tools/dex2jar/d2j-jar2jasmin.sh @@ -0,0 +1,40 @@ +#!/bin/sh + +# +# dex2jar - Tools to work with android .dex and java .class files +# Copyright (c) 2009-2012 Panxiaobo +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +# copy from $Tomcat/bin/startup.sh +# resolve links - $0 may be a softlink +PRG="$0" +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`/"$link" + fi +done +PRGDIR=`dirname "$PRG"` +# + +_classpath="." +for k in "$PRGDIR"/lib/*.jar +do + _classpath="${_classpath}:${k}" +done +java -Xms512m -Xmx1024m -classpath "${_classpath}" "com.googlecode.dex2jar.tools.Jar2Jasmin" $@ diff --git a/utils/miner/tools/dex2jar/d2j-jasmin2jar.bat b/utils/miner/tools/dex2jar/d2j-jasmin2jar.bat new file mode 100644 index 0000000..2fb339d --- /dev/null +++ b/utils/miner/tools/dex2jar/d2j-jasmin2jar.bat @@ -0,0 +1,23 @@ +@echo off + +REM +REM dex2jar - Tools to work with android .dex and java .class files +REM Copyright (c) 2009-2012 Panxiaobo +REM +REM Licensed under the Apache License, Version 2.0 (the "License"); +REM you may not use this file except in compliance with the License. +REM You may obtain a copy of the License at +REM +REM http://www.apache.org/licenses/LICENSE-2.0 +REM +REM Unless required by applicable law or agreed to in writing, software +REM distributed under the License is distributed on an "AS IS" BASIS, +REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +REM See the License for the specific language governing permissions and +REM limitations under the License. +REM + +set CLASSPATH= +FOR %%i IN ("%~dp0lib\*.jar") DO CALL "%~dp0setclasspath.bat" %%i + +java -Xms512m -Xmx1024m -cp "%CLASSPATH%" "com.googlecode.dex2jar.tools.Jasmin2Jar" %* diff --git a/utils/miner/tools/dex2jar/d2j-jasmin2jar.sh b/utils/miner/tools/dex2jar/d2j-jasmin2jar.sh new file mode 100755 index 0000000..26278fd --- /dev/null +++ b/utils/miner/tools/dex2jar/d2j-jasmin2jar.sh @@ -0,0 +1,40 @@ +#!/bin/sh + +# +# dex2jar - Tools to work with android .dex and java .class files +# Copyright (c) 2009-2012 Panxiaobo +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +# copy from $Tomcat/bin/startup.sh +# resolve links - $0 may be a softlink +PRG="$0" +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`/"$link" + fi +done +PRGDIR=`dirname "$PRG"` +# + +_classpath="." +for k in "$PRGDIR"/lib/*.jar +do + _classpath="${_classpath}:${k}" +done +java -Xms512m -Xmx1024m -classpath "${_classpath}" "com.googlecode.dex2jar.tools.Jasmin2Jar" $@ diff --git a/utils/miner/tools/dex2jar/dex-dump.bat b/utils/miner/tools/dex2jar/dex-dump.bat new file mode 100644 index 0000000..11a26c8 --- /dev/null +++ b/utils/miner/tools/dex2jar/dex-dump.bat @@ -0,0 +1,6 @@ +@echo off +set CLASSPATH= + +FOR %%i IN ("%~dp0lib\*.jar") DO CALL "%~dp0setclasspath.bat" %%i + +java -Xms512m -Xmx1024m -cp "%CLASSPATH%" com.googlecode.dex2jar.util.Dump %* diff --git a/utils/miner/tools/dex2jar/dex-dump.sh b/utils/miner/tools/dex2jar/dex-dump.sh new file mode 100755 index 0000000..648b640 --- /dev/null +++ b/utils/miner/tools/dex2jar/dex-dump.sh @@ -0,0 +1,23 @@ +#!/bin/sh + +# copy from $Tomcat/bin/startup.sh +# resolve links - $0 may be a softlink +PRG="$0" +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`/"$link" + fi +done +PRGDIR=`dirname "$PRG"` +# + +_classpath="." +for k in "$PRGDIR"/lib/*.jar +do + _classpath="${_classpath}:${k}" +done +java -Xms512m -Xmx1024m -classpath "${_classpath}" "com.googlecode.dex2jar.util.Dump" $1 $2 $3 $4 $5 $6 diff --git a/utils/miner/tools/dex2jar/dex2jar.bat b/utils/miner/tools/dex2jar/dex2jar.bat new file mode 100644 index 0000000..eda75e8 --- /dev/null +++ b/utils/miner/tools/dex2jar/dex2jar.bat @@ -0,0 +1,23 @@ +@echo off + +REM +REM dex2jar - Tools to work with android .dex and java .class files +REM Copyright (c) 2009-2012 Panxiaobo +REM +REM Licensed under the Apache License, Version 2.0 (the "License"); +REM you may not use this file except in compliance with the License. +REM You may obtain a copy of the License at +REM +REM http://www.apache.org/licenses/LICENSE-2.0 +REM +REM Unless required by applicable law or agreed to in writing, software +REM distributed under the License is distributed on an "AS IS" BASIS, +REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +REM See the License for the specific language governing permissions and +REM limitations under the License. +REM + +set CLASSPATH= +FOR %%i IN ("%~dp0lib\*.jar") DO CALL "%~dp0setclasspath.bat" %%i + +java -Xms512m -Xmx1024m -cp "%CLASSPATH%" "com.googlecode.dex2jar.v3.Main" %* diff --git a/utils/miner/tools/dex2jar/dex2jar.sh b/utils/miner/tools/dex2jar/dex2jar.sh new file mode 100755 index 0000000..6848c94 --- /dev/null +++ b/utils/miner/tools/dex2jar/dex2jar.sh @@ -0,0 +1,40 @@ +#!/bin/sh + +# +# dex2jar - Tools to work with android .dex and java .class files +# Copyright (c) 2009-2012 Panxiaobo +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +# copy from $Tomcat/bin/startup.sh +# resolve links - $0 may be a softlink +PRG="$0" +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`/"$link" + fi +done +PRGDIR=`dirname "$PRG"` +# + +_classpath="." +for k in "$PRGDIR"/lib/*.jar +do + _classpath="${_classpath}:${k}" +done +java -Xms512m -Xmx1024m -classpath "${_classpath}" "com.googlecode.dex2jar.v3.Main" $@ diff --git a/utils/miner/tools/dex2jar/lib/asm-LICENSE.txt b/utils/miner/tools/dex2jar/lib/asm-LICENSE.txt new file mode 100644 index 0000000..d0cd82d --- /dev/null +++ b/utils/miner/tools/dex2jar/lib/asm-LICENSE.txt @@ -0,0 +1,28 @@ + + ASM: a very small and fast Java bytecode manipulation framework + Copyright (c) 2000-2005 INRIA, France Telecom + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. Neither the name of the copyright holders nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + THE POSSIBILITY OF SUCH DAMAGE. diff --git a/utils/miner/tools/dex2jar/lib/asm-all-3.3.1.jar b/utils/miner/tools/dex2jar/lib/asm-all-3.3.1.jar new file mode 100644 index 0000000..39a0d6d Binary files /dev/null and b/utils/miner/tools/dex2jar/lib/asm-all-3.3.1.jar differ diff --git a/utils/miner/tools/dex2jar/lib/commons-cli-1.2.jar b/utils/miner/tools/dex2jar/lib/commons-cli-1.2.jar new file mode 100644 index 0000000..ce4b9ff Binary files /dev/null and b/utils/miner/tools/dex2jar/lib/commons-cli-1.2.jar differ diff --git a/utils/miner/tools/dex2jar/lib/commons-io-LICENSE.txt b/utils/miner/tools/dex2jar/lib/commons-io-LICENSE.txt new file mode 100644 index 0000000..6b0b127 --- /dev/null +++ b/utils/miner/tools/dex2jar/lib/commons-io-LICENSE.txt @@ -0,0 +1,203 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + diff --git a/utils/miner/tools/dex2jar/lib/commons-io-NOTICE.txt b/utils/miner/tools/dex2jar/lib/commons-io-NOTICE.txt new file mode 100644 index 0000000..d17ab70 --- /dev/null +++ b/utils/miner/tools/dex2jar/lib/commons-io-NOTICE.txt @@ -0,0 +1,6 @@ +Apache Commons IO +Copyright 2002-2010 The Apache Software Foundation + +This product includes software developed by +The Apache Software Foundation (http://www.apache.org/). + diff --git a/utils/miner/tools/dex2jar/lib/commons-lite-1.14.jar b/utils/miner/tools/dex2jar/lib/commons-lite-1.14.jar new file mode 100644 index 0000000..64633fd Binary files /dev/null and b/utils/miner/tools/dex2jar/lib/commons-lite-1.14.jar differ diff --git a/utils/miner/tools/dex2jar/lib/dex-ir-1.11.jar b/utils/miner/tools/dex2jar/lib/dex-ir-1.11.jar new file mode 100644 index 0000000..f4859c1 Binary files /dev/null and b/utils/miner/tools/dex2jar/lib/dex-ir-1.11.jar differ diff --git a/utils/miner/tools/dex2jar/lib/dex-reader-1.14.jar b/utils/miner/tools/dex2jar/lib/dex-reader-1.14.jar new file mode 100644 index 0000000..eb0e02b Binary files /dev/null and b/utils/miner/tools/dex2jar/lib/dex-reader-1.14.jar differ diff --git a/utils/miner/tools/dex2jar/lib/dex-tools-0.0.9.13.jar b/utils/miner/tools/dex2jar/lib/dex-tools-0.0.9.13.jar new file mode 100644 index 0000000..7f69893 Binary files /dev/null and b/utils/miner/tools/dex2jar/lib/dex-tools-0.0.9.13.jar differ diff --git a/utils/miner/tools/dex2jar/lib/dex-translator-0.0.9.13.jar b/utils/miner/tools/dex2jar/lib/dex-translator-0.0.9.13.jar new file mode 100644 index 0000000..754a125 Binary files /dev/null and b/utils/miner/tools/dex2jar/lib/dex-translator-0.0.9.13.jar differ diff --git a/utils/miner/tools/dex2jar/lib/dx-NOTICE b/utils/miner/tools/dex2jar/lib/dx-NOTICE new file mode 100644 index 0000000..c5b1efa --- /dev/null +++ b/utils/miner/tools/dex2jar/lib/dx-NOTICE @@ -0,0 +1,190 @@ + + Copyright (c) 2005-2008, The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + diff --git a/utils/miner/tools/dex2jar/lib/dx.jar b/utils/miner/tools/dex2jar/lib/dx.jar new file mode 100644 index 0000000..ed008c1 Binary files /dev/null and b/utils/miner/tools/dex2jar/lib/dx.jar differ diff --git a/utils/miner/tools/dex2jar/lib/jar-rename-1.5.jar b/utils/miner/tools/dex2jar/lib/jar-rename-1.5.jar new file mode 100644 index 0000000..537a11d Binary files /dev/null and b/utils/miner/tools/dex2jar/lib/jar-rename-1.5.jar differ diff --git a/utils/miner/tools/dex2jar/lib/jasmin-p2.5.jar b/utils/miner/tools/dex2jar/lib/jasmin-p2.5.jar new file mode 100644 index 0000000..37a3248 Binary files /dev/null and b/utils/miner/tools/dex2jar/lib/jasmin-p2.5.jar differ diff --git a/utils/miner/tools/dex2jar/lib/license-jasmin.txt b/utils/miner/tools/dex2jar/lib/license-jasmin.txt new file mode 100644 index 0000000..a92f080 --- /dev/null +++ b/utils/miner/tools/dex2jar/lib/license-jasmin.txt @@ -0,0 +1,30 @@ +/* + * Copyright (c) 1996-2004, Jon Meyer + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are permitted provided + * that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this list of conditions + * and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, this list of conditions + * and the following disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Jon Meyer nor the names of its contributors may be used to + * endorse or promote products derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * Jasmin was written by Jon Meyer, www.cybergrain.com + * The Jasmin website is jasmin.sourceforge.net. + */ + \ No newline at end of file diff --git a/utils/miner/tools/dex2jar/setclasspath.bat b/utils/miner/tools/dex2jar/setclasspath.bat new file mode 100644 index 0000000..ce44ccf --- /dev/null +++ b/utils/miner/tools/dex2jar/setclasspath.bat @@ -0,0 +1,8 @@ +SET _CLASSPATHCOMPONENT=%1 +:argCheck +IF %2a==a GOTO gotAllArgs +SHIFT +SET _CLASSPATHCOMPONENT=%_CLASSPATHCOMPONENT% %1 +GOTO argCheck +:gotAllArgs +SET CLASSPATH=%_CLASSPATHCOMPONENT%;%CLASSPATH% diff --git a/utils/jad/jad b/utils/miner/tools/jad/jad similarity index 100% rename from utils/jad/jad rename to utils/miner/tools/jad/jad diff --git a/utils/miner/utils.py b/utils/miner/utils.py new file mode 100644 index 0000000..825b646 --- /dev/null +++ b/utils/miner/utils.py @@ -0,0 +1,37 @@ +import subprocess +import re +from conf import CLASS_BLACKLIST +import random +import string + +def replace_classnames(code): + char_set = string.ascii_lowercase + result = code + for item in CLASS_BLACKLIST: + if "%s(" % item in result: + rand = ''.join(random.sample(char_set*6,6)) + result = result.replace(item, rand) + return result + + +def run(cmd): + p = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True) + output, error = p.communicate() + yield output + + +def sanitize(string): + "Converts parameters and stuff to be correctly evaluated." + # Remove double parentesis + sane = string.strip().replace('))', ')') + # Boolean values + sane = sane.strip().replace('false', 'False') + sane = sane.strip().replace('true', 'True') + # Convert float values to string + regex = re.compile('([\-]?\d?\.?\d\F)') + sane = regex.sub("'\1'", sane) + # Convert rest t + regex = re.compile('([, |\(])([\w+\d+\.]+)') + sane = regex.sub(r'\1"\2"', sane) + sane = replace_classnames(sane) + return sane