hackingtool/tools/reverse_engineering.py
naveennamani eaa920a7e3 Refactored the whole project
List of changes

+ Handling information about a tool has been improved a lot by providing a `HackingTool` class, which takes care of showing the options, running the selected option, executing the required commands
+ This class is designed with flexibililty and simplicity in mind, so adding a new tool is a lot easier, mention TITLE, DESCRIPTION, list of INSTALL_COMMANDS, RUN_COMMANDS and PROJECT_URL and there you go...

+ grouping all the `HackingTool`s is also made super simpler by providing a `HackingToolsCollection` class which groups the tools into their respective categories. Just add the instances of `HackingTool` classes to the TOOLS property of the `HackingToolsCollection`.

+ Refactored all the tools into separate files based on their categories.
+ Added a READM_template.md and generate_readme.py script to automatically generate Table of contents and the list of tools available automatically.
+ Now each tool in the README.md points to its project url if provided. This makes it easier to visit the project from the readme.
2020-08-14 16:41:59 +05:30

57 lines
1.7 KiB
Python

# coding=utf-8
import subprocess
from core import HackingTool
from core import HackingToolsCollection
class AndroGuard(HackingTool):
TITLE = "Androguard"
DESCRIPTION = "Androguard is a Reverse engineering, Malware and goodware " \
"analysis of Android applications and more"
INSTALL_COMMANDS = ["sudo pip install -U androguard"]
PROJECT_URL = "https://github.com/androguard/androguard "
def __init__(self):
super(AndroGuard, self).__init__(runnable = False)
class Apk2Gold(HackingTool):
TITLE = "Apk2Gold"
DESCRIPTION = "Apk2Gold is a CLI tool for decompiling Android apps to Java"
INSTALL_COMMANDS = [
"sudo git clone https://github.com/lxdvs/apk2gold.git",
"cd apk2gold;sudo bash make.sh"
]
PROJECT_URL = "https://github.com/lxdvs/apk2gold "
def run(self):
uinput = input("Enter (.apk) File >> ")
subprocess.run(["sudo", "apk2gold", uinput])
class Jadx(HackingTool):
TITLE = "JadX"
DESCRIPTION = "Jadx is Dex to Java decompiler.\n" \
"[*] decompile Dalvik bytecode to java classes from APK, dex," \
" aar and zip files\n" \
"[*] decode AndroidManifest.xml and other resources from " \
"resources.arsc"
INSTALL_COMMANDS = [
"sudo git clone https://github.com/skylot/jadx.git",
"cd jadx;./gradlew dist"
]
PROJECT_URL = "https://github.com/skylot/jadx"
def __init__(self):
super(Jadx, self).__init__(runnable = False)
class ReverseEngineeringTools(HackingToolsCollection):
TITLE = "Reverse engineering tools"
TOOLS = [
AndroGuard(),
Apk2Gold(),
Jadx()
]