smda 2.2.0__tar.gz → 2.2.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {smda-2.2.0/smda.egg-info → smda-2.2.1}/PKG-INFO +2 -1
- {smda-2.2.0 → smda-2.2.1}/README.md +1 -0
- {smda-2.2.0 → smda-2.2.1}/setup.py +1 -1
- {smda-2.2.0 → smda-2.2.1}/smda/SmdaConfig.py +1 -1
- {smda-2.2.0 → smda-2.2.1}/smda/utility/StringExtractor.py +3 -1
- {smda-2.2.0 → smda-2.2.1/smda.egg-info}/PKG-INFO +2 -1
- {smda-2.2.0 → smda-2.2.1}/LICENSE +0 -0
- {smda-2.2.0 → smda-2.2.1}/setup.cfg +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda/Disassembler.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda/DisassemblyResult.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda/DisassemblyStatistics.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda/__init__.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda/cil/CilDisassembler.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda/cil/CilInstructionEscaper.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda/cil/FunctionAnalysisState.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda/cil/__init__.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda/common/BasicBlock.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda/common/BinaryInfo.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda/common/BlockLocator.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda/common/CodeXref.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda/common/DominatorTree.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda/common/SmdaBasicBlock.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda/common/SmdaFunction.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda/common/SmdaInstruction.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda/common/SmdaReport.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda/common/TailcallAnalyzer.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda/common/Tarjan.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda/common/__init__.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda/common/labelprovider/AbstractLabelProvider.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda/common/labelprovider/CilSymbolProvider.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda/common/labelprovider/DelphiKbSymbolProvider.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda/common/labelprovider/ElfApiResolver.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda/common/labelprovider/ElfSymbolProvider.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda/common/labelprovider/GoLabelProvider.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda/common/labelprovider/OrdinalHelper.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda/common/labelprovider/PdbSymbolProvider.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda/common/labelprovider/PeSymbolProvider.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda/common/labelprovider/WinApiResolver.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda/common/labelprovider/__init__.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda/ida/BackendInterface.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda/ida/IdaExporter.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda/ida/IdaInterface.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda/ida/__init__.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda/intel/BitnessAnalyzer.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda/intel/FunctionAnalysisState.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda/intel/FunctionCandidate.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda/intel/FunctionCandidateManager.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda/intel/IndirectCallAnalyzer.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda/intel/IntelDisassembler.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda/intel/IntelInstructionEscaper.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda/intel/JumpTableAnalyzer.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda/intel/LanguageAnalyzer.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda/intel/MnemonicTfIdf.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda/intel/__init__.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda/intel/definitions.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda/utility/BracketQueue.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda/utility/DelphiKbFileLoader.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda/utility/ElfFileLoader.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda/utility/FileLoader.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda/utility/MachoFileLoader.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda/utility/MemoryFileLoader.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda/utility/PeFileLoader.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda/utility/PriorityQueue.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda/utility/__init__.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda.egg-info/SOURCES.txt +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda.egg-info/dependency_links.txt +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda.egg-info/requires.txt +0 -0
- {smda-2.2.0 → smda-2.2.1}/smda.egg-info/top_level.txt +0 -0
- {smda-2.2.0 → smda-2.2.1}/tests/testBracketQueue.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/tests/testEscaper.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/tests/testFileFormatParsers.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/tests/testIntegration.py +0 -0
- {smda-2.2.0 → smda-2.2.1}/tests/testTarjan.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: smda
|
|
3
|
-
Version: 2.2.
|
|
3
|
+
Version: 2.2.1
|
|
4
4
|
Summary: A recursive disassmbler optimized for CFG recovery from memory dumps. Based on capstone.
|
|
5
5
|
Home-page: https://github.com/danielplohmann/smda
|
|
6
6
|
Author: Daniel Plohmann
|
|
@@ -74,6 +74,7 @@ To take full advantage of SMDA's capabilities, make sure to (optionally) install
|
|
|
74
74
|
* pdbparse (currently as fork from https://github.com/VPaulV/pdbparse to support Python3)
|
|
75
75
|
|
|
76
76
|
## Version History
|
|
77
|
+
* 2025-07-23: v2.2.1 - Added xmetadata field to SmdaReport, with information about imports and exports. Improved string extraction from Go binaries.
|
|
77
78
|
* 2025-06-13: v2.1.0 - Support for export from IDA 9.0+ (THX to @jershmagersh for the update!).
|
|
78
79
|
* 2025-02-26: v2.0.2 - Adjusting relative import, adding init file.
|
|
79
80
|
* 2025-02-25: v2.0.0 - Initial experimental support for CIL (.NET) disassembly.
|
|
@@ -56,6 +56,7 @@ To take full advantage of SMDA's capabilities, make sure to (optionally) install
|
|
|
56
56
|
* pdbparse (currently as fork from https://github.com/VPaulV/pdbparse to support Python3)
|
|
57
57
|
|
|
58
58
|
## Version History
|
|
59
|
+
* 2025-07-23: v2.2.1 - Added xmetadata field to SmdaReport, with information about imports and exports. Improved string extraction from Go binaries.
|
|
59
60
|
* 2025-06-13: v2.1.0 - Support for export from IDA 9.0+ (THX to @jershmagersh for the update!).
|
|
60
61
|
* 2025-02-26: v2.0.2 - Adjusting relative import, adding init file.
|
|
61
62
|
* 2025-02-25: v2.0.0 - Initial experimental support for CIL (.NET) disassembly.
|
|
@@ -19,7 +19,7 @@ else:
|
|
|
19
19
|
setup(
|
|
20
20
|
name='smda',
|
|
21
21
|
# note to self: always change this in config as well.
|
|
22
|
-
version='2.2.
|
|
22
|
+
version='2.2.1',
|
|
23
23
|
description='A recursive disassmbler optimized for CFG recovery from memory dumps. Based on capstone.',
|
|
24
24
|
long_description_content_type="text/markdown",
|
|
25
25
|
long_description=long_description,
|
|
@@ -5,7 +5,7 @@ import logging
|
|
|
5
5
|
class SmdaConfig(object):
|
|
6
6
|
|
|
7
7
|
# note to self: always change this in setup.py as well!
|
|
8
|
-
VERSION = "2.2.
|
|
8
|
+
VERSION = "2.2.1"
|
|
9
9
|
ESCAPER_DOWNWARD_COMPATIBILITY = "1.13.16"
|
|
10
10
|
CONFIG_FILE_PATH = str(os.path.abspath(__file__))
|
|
11
11
|
PROJECT_ROOT = str(os.path.abspath(os.sep.join([CONFIG_FILE_PATH, "..", ".."])))
|
|
@@ -130,6 +130,7 @@ def extract_strings(f: SmdaFunction, mode=None) -> Iterator[Tuple[str, int]]:
|
|
|
130
130
|
if len(data_refs) == 1:
|
|
131
131
|
data_ref = data_refs[0]
|
|
132
132
|
# check if next two instructions are movs
|
|
133
|
+
found_string = False
|
|
133
134
|
if index + 2 < len(instructions) and instructions[index + 1].mnemonic == "mov" and instructions[index + 2].mnemonic == "mov":
|
|
134
135
|
operands = instructions[index + 2].operands.split(",")
|
|
135
136
|
if len(operands) == 2:
|
|
@@ -140,10 +141,11 @@ def extract_strings(f: SmdaFunction, mode=None) -> Iterator[Tuple[str, int]]:
|
|
|
140
141
|
string_result = read_string(f.smda_report, data_ref, potential_string_len)
|
|
141
142
|
if string_result:
|
|
142
143
|
string_read, string_type = string_result
|
|
144
|
+
found_string = True
|
|
143
145
|
yield string_read.rstrip("\x00"), insn.offset, data_ref, string_type
|
|
144
146
|
except:
|
|
145
147
|
pass
|
|
146
|
-
|
|
148
|
+
if not found_string:
|
|
147
149
|
string_result = read_go_string(f.smda_report, data_ref)
|
|
148
150
|
if string_result:
|
|
149
151
|
string_read, string_type = string_result
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: smda
|
|
3
|
-
Version: 2.2.
|
|
3
|
+
Version: 2.2.1
|
|
4
4
|
Summary: A recursive disassmbler optimized for CFG recovery from memory dumps. Based on capstone.
|
|
5
5
|
Home-page: https://github.com/danielplohmann/smda
|
|
6
6
|
Author: Daniel Plohmann
|
|
@@ -74,6 +74,7 @@ To take full advantage of SMDA's capabilities, make sure to (optionally) install
|
|
|
74
74
|
* pdbparse (currently as fork from https://github.com/VPaulV/pdbparse to support Python3)
|
|
75
75
|
|
|
76
76
|
## Version History
|
|
77
|
+
* 2025-07-23: v2.2.1 - Added xmetadata field to SmdaReport, with information about imports and exports. Improved string extraction from Go binaries.
|
|
77
78
|
* 2025-06-13: v2.1.0 - Support for export from IDA 9.0+ (THX to @jershmagersh for the update!).
|
|
78
79
|
* 2025-02-26: v2.0.2 - Adjusting relative import, adding init file.
|
|
79
80
|
* 2025-02-25: v2.0.0 - Initial experimental support for CIL (.NET) disassembly.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|