├── .coveragerc ├── .github └── workflows │ └── ci.yml ├── .gitignore ├── .pre-commit-config.yaml ├── .pylintrc ├── LICENSE ├── Makefile ├── README.md ├── analyze.py ├── data ├── apiscout_win7_prof-n_sp1.json └── apiscout_winxp_prof_sp3.json ├── export.py ├── ida_analyze.py ├── pyproject.toml ├── requirements.txt ├── setup.py ├── smda ├── Disassembler.py ├── DisassemblyResult.py ├── DisassemblyStatistics.py ├── SmdaConfig.py ├── __init__.py ├── cil │ ├── CilDisassembler.py │ ├── CilInstructionEscaper.py │ ├── FunctionAnalysisState.py │ └── __init__.py ├── common │ ├── BasicBlock.py │ ├── BinaryInfo.py │ ├── BlockLocator.py │ ├── CodeXref.py │ ├── DominatorTree.py │ ├── SmdaBasicBlock.py │ ├── SmdaFunction.py │ ├── SmdaInstruction.py │ ├── SmdaReport.py │ ├── TailcallAnalyzer.py │ ├── Tarjan.py │ ├── __init__.py │ └── labelprovider │ │ ├── AbstractLabelProvider.py │ │ ├── CilSymbolProvider.py │ │ ├── DelphiKbSymbolProvider.py │ │ ├── DelphiReSymProvider.py │ │ ├── ElfApiResolver.py │ │ ├── ElfSymbolProvider.py │ │ ├── GoLabelProvider.py │ │ ├── OrdinalHelper.py │ │ ├── PdbSymbolProvider.py │ │ ├── PeSymbolProvider.py │ │ ├── WinApiResolver.py │ │ └── __init__.py ├── ida │ ├── BackendInterface.py │ ├── IdaExporter.py │ ├── IdaInterface.py │ └── __init__.py ├── intel │ ├── BitnessAnalyzer.py │ ├── FunctionAnalysisState.py │ ├── FunctionCandidate.py │ ├── FunctionCandidateManager.py │ ├── IndirectCallAnalyzer.py │ ├── IntelDisassembler.py │ ├── IntelInstructionEscaper.py │ ├── JumpTableAnalyzer.py │ ├── LanguageAnalyzer.py │ ├── MnemonicTfIdf.py │ ├── __init__.py │ └── definitions.py └── utility │ ├── BracketQueue.py │ ├── DelphiKbFileLoader.py │ ├── ElfFileLoader.py │ ├── FileLoader.py │ ├── MachoFileLoader.py │ ├── MemoryFileLoader.py │ ├── PeFileLoader.py │ ├── PriorityQueue.py │ ├── StringExtractor.py │ └── __init__.py ├── tests ├── __init__.py ├── asprox_0x008D0000_xored ├── bashlite_xored ├── context.py ├── cutwail_xored ├── komplex_xored ├── njrat_xored ├── testBracketQueue.py ├── testEscaper.py ├── testFileFormatParsers.py ├── testIntegration.py ├── testPeFileLoader.py └── testTarjan.py └── version_history.md /.coveragerc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/.coveragerc -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/.github/workflows/ci.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/.gitignore -------------------------------------------------------------------------------- /.pre-commit-config.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/.pre-commit-config.yaml -------------------------------------------------------------------------------- /.pylintrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/.pylintrc -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/LICENSE -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/Makefile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/README.md -------------------------------------------------------------------------------- /analyze.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/analyze.py -------------------------------------------------------------------------------- /data/apiscout_win7_prof-n_sp1.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/data/apiscout_win7_prof-n_sp1.json -------------------------------------------------------------------------------- /data/apiscout_winxp_prof_sp3.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/data/apiscout_winxp_prof_sp3.json -------------------------------------------------------------------------------- /export.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/export.py -------------------------------------------------------------------------------- /ida_analyze.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/ida_analyze.py -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/pyproject.toml -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | pytest 2 | capstone 3 | dncil 4 | dnfile 5 | lief>=0.16.0 6 | ruff 7 | pre-commit 8 | -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/setup.py -------------------------------------------------------------------------------- /smda/Disassembler.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/smda/Disassembler.py -------------------------------------------------------------------------------- /smda/DisassemblyResult.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/smda/DisassemblyResult.py -------------------------------------------------------------------------------- /smda/DisassemblyStatistics.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/smda/DisassemblyStatistics.py -------------------------------------------------------------------------------- /smda/SmdaConfig.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/smda/SmdaConfig.py -------------------------------------------------------------------------------- /smda/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /smda/cil/CilDisassembler.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/smda/cil/CilDisassembler.py -------------------------------------------------------------------------------- /smda/cil/CilInstructionEscaper.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/smda/cil/CilInstructionEscaper.py -------------------------------------------------------------------------------- /smda/cil/FunctionAnalysisState.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/smda/cil/FunctionAnalysisState.py -------------------------------------------------------------------------------- /smda/cil/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /smda/common/BasicBlock.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/smda/common/BasicBlock.py -------------------------------------------------------------------------------- /smda/common/BinaryInfo.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/smda/common/BinaryInfo.py -------------------------------------------------------------------------------- /smda/common/BlockLocator.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/smda/common/BlockLocator.py -------------------------------------------------------------------------------- /smda/common/CodeXref.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/smda/common/CodeXref.py -------------------------------------------------------------------------------- /smda/common/DominatorTree.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/smda/common/DominatorTree.py -------------------------------------------------------------------------------- /smda/common/SmdaBasicBlock.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/smda/common/SmdaBasicBlock.py -------------------------------------------------------------------------------- /smda/common/SmdaFunction.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/smda/common/SmdaFunction.py -------------------------------------------------------------------------------- /smda/common/SmdaInstruction.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/smda/common/SmdaInstruction.py -------------------------------------------------------------------------------- /smda/common/SmdaReport.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/smda/common/SmdaReport.py -------------------------------------------------------------------------------- /smda/common/TailcallAnalyzer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/smda/common/TailcallAnalyzer.py -------------------------------------------------------------------------------- /smda/common/Tarjan.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/smda/common/Tarjan.py -------------------------------------------------------------------------------- /smda/common/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /smda/common/labelprovider/AbstractLabelProvider.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/smda/common/labelprovider/AbstractLabelProvider.py -------------------------------------------------------------------------------- /smda/common/labelprovider/CilSymbolProvider.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/smda/common/labelprovider/CilSymbolProvider.py -------------------------------------------------------------------------------- /smda/common/labelprovider/DelphiKbSymbolProvider.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/smda/common/labelprovider/DelphiKbSymbolProvider.py -------------------------------------------------------------------------------- /smda/common/labelprovider/DelphiReSymProvider.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/smda/common/labelprovider/DelphiReSymProvider.py -------------------------------------------------------------------------------- /smda/common/labelprovider/ElfApiResolver.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/smda/common/labelprovider/ElfApiResolver.py -------------------------------------------------------------------------------- /smda/common/labelprovider/ElfSymbolProvider.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/smda/common/labelprovider/ElfSymbolProvider.py -------------------------------------------------------------------------------- /smda/common/labelprovider/GoLabelProvider.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/smda/common/labelprovider/GoLabelProvider.py -------------------------------------------------------------------------------- /smda/common/labelprovider/OrdinalHelper.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/smda/common/labelprovider/OrdinalHelper.py -------------------------------------------------------------------------------- /smda/common/labelprovider/PdbSymbolProvider.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/smda/common/labelprovider/PdbSymbolProvider.py -------------------------------------------------------------------------------- /smda/common/labelprovider/PeSymbolProvider.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/smda/common/labelprovider/PeSymbolProvider.py -------------------------------------------------------------------------------- /smda/common/labelprovider/WinApiResolver.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/smda/common/labelprovider/WinApiResolver.py -------------------------------------------------------------------------------- /smda/common/labelprovider/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /smda/ida/BackendInterface.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/smda/ida/BackendInterface.py -------------------------------------------------------------------------------- /smda/ida/IdaExporter.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/smda/ida/IdaExporter.py -------------------------------------------------------------------------------- /smda/ida/IdaInterface.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/smda/ida/IdaInterface.py -------------------------------------------------------------------------------- /smda/ida/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /smda/intel/BitnessAnalyzer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/smda/intel/BitnessAnalyzer.py -------------------------------------------------------------------------------- /smda/intel/FunctionAnalysisState.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/smda/intel/FunctionAnalysisState.py -------------------------------------------------------------------------------- /smda/intel/FunctionCandidate.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/smda/intel/FunctionCandidate.py -------------------------------------------------------------------------------- /smda/intel/FunctionCandidateManager.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/smda/intel/FunctionCandidateManager.py -------------------------------------------------------------------------------- /smda/intel/IndirectCallAnalyzer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/smda/intel/IndirectCallAnalyzer.py -------------------------------------------------------------------------------- /smda/intel/IntelDisassembler.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/smda/intel/IntelDisassembler.py -------------------------------------------------------------------------------- /smda/intel/IntelInstructionEscaper.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/smda/intel/IntelInstructionEscaper.py -------------------------------------------------------------------------------- /smda/intel/JumpTableAnalyzer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/smda/intel/JumpTableAnalyzer.py -------------------------------------------------------------------------------- /smda/intel/LanguageAnalyzer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/smda/intel/LanguageAnalyzer.py -------------------------------------------------------------------------------- /smda/intel/MnemonicTfIdf.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/smda/intel/MnemonicTfIdf.py -------------------------------------------------------------------------------- /smda/intel/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /smda/intel/definitions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/smda/intel/definitions.py -------------------------------------------------------------------------------- /smda/utility/BracketQueue.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/smda/utility/BracketQueue.py -------------------------------------------------------------------------------- /smda/utility/DelphiKbFileLoader.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/smda/utility/DelphiKbFileLoader.py -------------------------------------------------------------------------------- /smda/utility/ElfFileLoader.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/smda/utility/ElfFileLoader.py -------------------------------------------------------------------------------- /smda/utility/FileLoader.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/smda/utility/FileLoader.py -------------------------------------------------------------------------------- /smda/utility/MachoFileLoader.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/smda/utility/MachoFileLoader.py -------------------------------------------------------------------------------- /smda/utility/MemoryFileLoader.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/smda/utility/MemoryFileLoader.py -------------------------------------------------------------------------------- /smda/utility/PeFileLoader.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/smda/utility/PeFileLoader.py -------------------------------------------------------------------------------- /smda/utility/PriorityQueue.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/smda/utility/PriorityQueue.py -------------------------------------------------------------------------------- /smda/utility/StringExtractor.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/smda/utility/StringExtractor.py -------------------------------------------------------------------------------- /smda/utility/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/asprox_0x008D0000_xored: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/tests/asprox_0x008D0000_xored -------------------------------------------------------------------------------- /tests/bashlite_xored: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/tests/bashlite_xored -------------------------------------------------------------------------------- /tests/context.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/tests/context.py -------------------------------------------------------------------------------- /tests/cutwail_xored: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/tests/cutwail_xored -------------------------------------------------------------------------------- /tests/komplex_xored: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/tests/komplex_xored -------------------------------------------------------------------------------- /tests/njrat_xored: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/tests/njrat_xored -------------------------------------------------------------------------------- /tests/testBracketQueue.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/tests/testBracketQueue.py -------------------------------------------------------------------------------- /tests/testEscaper.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/tests/testEscaper.py -------------------------------------------------------------------------------- /tests/testFileFormatParsers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/tests/testFileFormatParsers.py -------------------------------------------------------------------------------- /tests/testIntegration.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/tests/testIntegration.py -------------------------------------------------------------------------------- /tests/testPeFileLoader.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/tests/testPeFileLoader.py -------------------------------------------------------------------------------- /tests/testTarjan.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/tests/testTarjan.py -------------------------------------------------------------------------------- /version_history.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielplohmann/smda/HEAD/version_history.md --------------------------------------------------------------------------------