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.
Files changed (73) hide show
  1. {smda-2.2.0/smda.egg-info → smda-2.2.1}/PKG-INFO +2 -1
  2. {smda-2.2.0 → smda-2.2.1}/README.md +1 -0
  3. {smda-2.2.0 → smda-2.2.1}/setup.py +1 -1
  4. {smda-2.2.0 → smda-2.2.1}/smda/SmdaConfig.py +1 -1
  5. {smda-2.2.0 → smda-2.2.1}/smda/utility/StringExtractor.py +3 -1
  6. {smda-2.2.0 → smda-2.2.1/smda.egg-info}/PKG-INFO +2 -1
  7. {smda-2.2.0 → smda-2.2.1}/LICENSE +0 -0
  8. {smda-2.2.0 → smda-2.2.1}/setup.cfg +0 -0
  9. {smda-2.2.0 → smda-2.2.1}/smda/Disassembler.py +0 -0
  10. {smda-2.2.0 → smda-2.2.1}/smda/DisassemblyResult.py +0 -0
  11. {smda-2.2.0 → smda-2.2.1}/smda/DisassemblyStatistics.py +0 -0
  12. {smda-2.2.0 → smda-2.2.1}/smda/__init__.py +0 -0
  13. {smda-2.2.0 → smda-2.2.1}/smda/cil/CilDisassembler.py +0 -0
  14. {smda-2.2.0 → smda-2.2.1}/smda/cil/CilInstructionEscaper.py +0 -0
  15. {smda-2.2.0 → smda-2.2.1}/smda/cil/FunctionAnalysisState.py +0 -0
  16. {smda-2.2.0 → smda-2.2.1}/smda/cil/__init__.py +0 -0
  17. {smda-2.2.0 → smda-2.2.1}/smda/common/BasicBlock.py +0 -0
  18. {smda-2.2.0 → smda-2.2.1}/smda/common/BinaryInfo.py +0 -0
  19. {smda-2.2.0 → smda-2.2.1}/smda/common/BlockLocator.py +0 -0
  20. {smda-2.2.0 → smda-2.2.1}/smda/common/CodeXref.py +0 -0
  21. {smda-2.2.0 → smda-2.2.1}/smda/common/DominatorTree.py +0 -0
  22. {smda-2.2.0 → smda-2.2.1}/smda/common/SmdaBasicBlock.py +0 -0
  23. {smda-2.2.0 → smda-2.2.1}/smda/common/SmdaFunction.py +0 -0
  24. {smda-2.2.0 → smda-2.2.1}/smda/common/SmdaInstruction.py +0 -0
  25. {smda-2.2.0 → smda-2.2.1}/smda/common/SmdaReport.py +0 -0
  26. {smda-2.2.0 → smda-2.2.1}/smda/common/TailcallAnalyzer.py +0 -0
  27. {smda-2.2.0 → smda-2.2.1}/smda/common/Tarjan.py +0 -0
  28. {smda-2.2.0 → smda-2.2.1}/smda/common/__init__.py +0 -0
  29. {smda-2.2.0 → smda-2.2.1}/smda/common/labelprovider/AbstractLabelProvider.py +0 -0
  30. {smda-2.2.0 → smda-2.2.1}/smda/common/labelprovider/CilSymbolProvider.py +0 -0
  31. {smda-2.2.0 → smda-2.2.1}/smda/common/labelprovider/DelphiKbSymbolProvider.py +0 -0
  32. {smda-2.2.0 → smda-2.2.1}/smda/common/labelprovider/ElfApiResolver.py +0 -0
  33. {smda-2.2.0 → smda-2.2.1}/smda/common/labelprovider/ElfSymbolProvider.py +0 -0
  34. {smda-2.2.0 → smda-2.2.1}/smda/common/labelprovider/GoLabelProvider.py +0 -0
  35. {smda-2.2.0 → smda-2.2.1}/smda/common/labelprovider/OrdinalHelper.py +0 -0
  36. {smda-2.2.0 → smda-2.2.1}/smda/common/labelprovider/PdbSymbolProvider.py +0 -0
  37. {smda-2.2.0 → smda-2.2.1}/smda/common/labelprovider/PeSymbolProvider.py +0 -0
  38. {smda-2.2.0 → smda-2.2.1}/smda/common/labelprovider/WinApiResolver.py +0 -0
  39. {smda-2.2.0 → smda-2.2.1}/smda/common/labelprovider/__init__.py +0 -0
  40. {smda-2.2.0 → smda-2.2.1}/smda/ida/BackendInterface.py +0 -0
  41. {smda-2.2.0 → smda-2.2.1}/smda/ida/IdaExporter.py +0 -0
  42. {smda-2.2.0 → smda-2.2.1}/smda/ida/IdaInterface.py +0 -0
  43. {smda-2.2.0 → smda-2.2.1}/smda/ida/__init__.py +0 -0
  44. {smda-2.2.0 → smda-2.2.1}/smda/intel/BitnessAnalyzer.py +0 -0
  45. {smda-2.2.0 → smda-2.2.1}/smda/intel/FunctionAnalysisState.py +0 -0
  46. {smda-2.2.0 → smda-2.2.1}/smda/intel/FunctionCandidate.py +0 -0
  47. {smda-2.2.0 → smda-2.2.1}/smda/intel/FunctionCandidateManager.py +0 -0
  48. {smda-2.2.0 → smda-2.2.1}/smda/intel/IndirectCallAnalyzer.py +0 -0
  49. {smda-2.2.0 → smda-2.2.1}/smda/intel/IntelDisassembler.py +0 -0
  50. {smda-2.2.0 → smda-2.2.1}/smda/intel/IntelInstructionEscaper.py +0 -0
  51. {smda-2.2.0 → smda-2.2.1}/smda/intel/JumpTableAnalyzer.py +0 -0
  52. {smda-2.2.0 → smda-2.2.1}/smda/intel/LanguageAnalyzer.py +0 -0
  53. {smda-2.2.0 → smda-2.2.1}/smda/intel/MnemonicTfIdf.py +0 -0
  54. {smda-2.2.0 → smda-2.2.1}/smda/intel/__init__.py +0 -0
  55. {smda-2.2.0 → smda-2.2.1}/smda/intel/definitions.py +0 -0
  56. {smda-2.2.0 → smda-2.2.1}/smda/utility/BracketQueue.py +0 -0
  57. {smda-2.2.0 → smda-2.2.1}/smda/utility/DelphiKbFileLoader.py +0 -0
  58. {smda-2.2.0 → smda-2.2.1}/smda/utility/ElfFileLoader.py +0 -0
  59. {smda-2.2.0 → smda-2.2.1}/smda/utility/FileLoader.py +0 -0
  60. {smda-2.2.0 → smda-2.2.1}/smda/utility/MachoFileLoader.py +0 -0
  61. {smda-2.2.0 → smda-2.2.1}/smda/utility/MemoryFileLoader.py +0 -0
  62. {smda-2.2.0 → smda-2.2.1}/smda/utility/PeFileLoader.py +0 -0
  63. {smda-2.2.0 → smda-2.2.1}/smda/utility/PriorityQueue.py +0 -0
  64. {smda-2.2.0 → smda-2.2.1}/smda/utility/__init__.py +0 -0
  65. {smda-2.2.0 → smda-2.2.1}/smda.egg-info/SOURCES.txt +0 -0
  66. {smda-2.2.0 → smda-2.2.1}/smda.egg-info/dependency_links.txt +0 -0
  67. {smda-2.2.0 → smda-2.2.1}/smda.egg-info/requires.txt +0 -0
  68. {smda-2.2.0 → smda-2.2.1}/smda.egg-info/top_level.txt +0 -0
  69. {smda-2.2.0 → smda-2.2.1}/tests/testBracketQueue.py +0 -0
  70. {smda-2.2.0 → smda-2.2.1}/tests/testEscaper.py +0 -0
  71. {smda-2.2.0 → smda-2.2.1}/tests/testFileFormatParsers.py +0 -0
  72. {smda-2.2.0 → smda-2.2.1}/tests/testIntegration.py +0 -0
  73. {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.0
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.0',
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.0"
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
- else:
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.0
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