smda 2.2.1__tar.gz → 2.2.3__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.1/smda.egg-info → smda-2.2.3}/PKG-INFO +2 -1
  2. {smda-2.2.1 → smda-2.2.3}/README.md +1 -0
  3. {smda-2.2.1 → smda-2.2.3}/setup.py +1 -1
  4. {smda-2.2.1 → smda-2.2.3}/smda/SmdaConfig.py +1 -1
  5. {smda-2.2.1 → smda-2.2.3}/smda/common/SmdaReport.py +8 -1
  6. {smda-2.2.1 → smda-2.2.3}/smda/utility/ElfFileLoader.py +1 -1
  7. {smda-2.2.1 → smda-2.2.3/smda.egg-info}/PKG-INFO +2 -1
  8. {smda-2.2.1 → smda-2.2.3}/LICENSE +0 -0
  9. {smda-2.2.1 → smda-2.2.3}/setup.cfg +0 -0
  10. {smda-2.2.1 → smda-2.2.3}/smda/Disassembler.py +0 -0
  11. {smda-2.2.1 → smda-2.2.3}/smda/DisassemblyResult.py +0 -0
  12. {smda-2.2.1 → smda-2.2.3}/smda/DisassemblyStatistics.py +0 -0
  13. {smda-2.2.1 → smda-2.2.3}/smda/__init__.py +0 -0
  14. {smda-2.2.1 → smda-2.2.3}/smda/cil/CilDisassembler.py +0 -0
  15. {smda-2.2.1 → smda-2.2.3}/smda/cil/CilInstructionEscaper.py +0 -0
  16. {smda-2.2.1 → smda-2.2.3}/smda/cil/FunctionAnalysisState.py +0 -0
  17. {smda-2.2.1 → smda-2.2.3}/smda/cil/__init__.py +0 -0
  18. {smda-2.2.1 → smda-2.2.3}/smda/common/BasicBlock.py +0 -0
  19. {smda-2.2.1 → smda-2.2.3}/smda/common/BinaryInfo.py +0 -0
  20. {smda-2.2.1 → smda-2.2.3}/smda/common/BlockLocator.py +0 -0
  21. {smda-2.2.1 → smda-2.2.3}/smda/common/CodeXref.py +0 -0
  22. {smda-2.2.1 → smda-2.2.3}/smda/common/DominatorTree.py +0 -0
  23. {smda-2.2.1 → smda-2.2.3}/smda/common/SmdaBasicBlock.py +0 -0
  24. {smda-2.2.1 → smda-2.2.3}/smda/common/SmdaFunction.py +0 -0
  25. {smda-2.2.1 → smda-2.2.3}/smda/common/SmdaInstruction.py +0 -0
  26. {smda-2.2.1 → smda-2.2.3}/smda/common/TailcallAnalyzer.py +0 -0
  27. {smda-2.2.1 → smda-2.2.3}/smda/common/Tarjan.py +0 -0
  28. {smda-2.2.1 → smda-2.2.3}/smda/common/__init__.py +0 -0
  29. {smda-2.2.1 → smda-2.2.3}/smda/common/labelprovider/AbstractLabelProvider.py +0 -0
  30. {smda-2.2.1 → smda-2.2.3}/smda/common/labelprovider/CilSymbolProvider.py +0 -0
  31. {smda-2.2.1 → smda-2.2.3}/smda/common/labelprovider/DelphiKbSymbolProvider.py +0 -0
  32. {smda-2.2.1 → smda-2.2.3}/smda/common/labelprovider/ElfApiResolver.py +0 -0
  33. {smda-2.2.1 → smda-2.2.3}/smda/common/labelprovider/ElfSymbolProvider.py +0 -0
  34. {smda-2.2.1 → smda-2.2.3}/smda/common/labelprovider/GoLabelProvider.py +0 -0
  35. {smda-2.2.1 → smda-2.2.3}/smda/common/labelprovider/OrdinalHelper.py +0 -0
  36. {smda-2.2.1 → smda-2.2.3}/smda/common/labelprovider/PdbSymbolProvider.py +0 -0
  37. {smda-2.2.1 → smda-2.2.3}/smda/common/labelprovider/PeSymbolProvider.py +0 -0
  38. {smda-2.2.1 → smda-2.2.3}/smda/common/labelprovider/WinApiResolver.py +0 -0
  39. {smda-2.2.1 → smda-2.2.3}/smda/common/labelprovider/__init__.py +0 -0
  40. {smda-2.2.1 → smda-2.2.3}/smda/ida/BackendInterface.py +0 -0
  41. {smda-2.2.1 → smda-2.2.3}/smda/ida/IdaExporter.py +0 -0
  42. {smda-2.2.1 → smda-2.2.3}/smda/ida/IdaInterface.py +0 -0
  43. {smda-2.2.1 → smda-2.2.3}/smda/ida/__init__.py +0 -0
  44. {smda-2.2.1 → smda-2.2.3}/smda/intel/BitnessAnalyzer.py +0 -0
  45. {smda-2.2.1 → smda-2.2.3}/smda/intel/FunctionAnalysisState.py +0 -0
  46. {smda-2.2.1 → smda-2.2.3}/smda/intel/FunctionCandidate.py +0 -0
  47. {smda-2.2.1 → smda-2.2.3}/smda/intel/FunctionCandidateManager.py +0 -0
  48. {smda-2.2.1 → smda-2.2.3}/smda/intel/IndirectCallAnalyzer.py +0 -0
  49. {smda-2.2.1 → smda-2.2.3}/smda/intel/IntelDisassembler.py +0 -0
  50. {smda-2.2.1 → smda-2.2.3}/smda/intel/IntelInstructionEscaper.py +0 -0
  51. {smda-2.2.1 → smda-2.2.3}/smda/intel/JumpTableAnalyzer.py +0 -0
  52. {smda-2.2.1 → smda-2.2.3}/smda/intel/LanguageAnalyzer.py +0 -0
  53. {smda-2.2.1 → smda-2.2.3}/smda/intel/MnemonicTfIdf.py +0 -0
  54. {smda-2.2.1 → smda-2.2.3}/smda/intel/__init__.py +0 -0
  55. {smda-2.2.1 → smda-2.2.3}/smda/intel/definitions.py +0 -0
  56. {smda-2.2.1 → smda-2.2.3}/smda/utility/BracketQueue.py +0 -0
  57. {smda-2.2.1 → smda-2.2.3}/smda/utility/DelphiKbFileLoader.py +0 -0
  58. {smda-2.2.1 → smda-2.2.3}/smda/utility/FileLoader.py +0 -0
  59. {smda-2.2.1 → smda-2.2.3}/smda/utility/MachoFileLoader.py +0 -0
  60. {smda-2.2.1 → smda-2.2.3}/smda/utility/MemoryFileLoader.py +0 -0
  61. {smda-2.2.1 → smda-2.2.3}/smda/utility/PeFileLoader.py +0 -0
  62. {smda-2.2.1 → smda-2.2.3}/smda/utility/PriorityQueue.py +0 -0
  63. {smda-2.2.1 → smda-2.2.3}/smda/utility/StringExtractor.py +0 -0
  64. {smda-2.2.1 → smda-2.2.3}/smda/utility/__init__.py +0 -0
  65. {smda-2.2.1 → smda-2.2.3}/smda.egg-info/SOURCES.txt +0 -0
  66. {smda-2.2.1 → smda-2.2.3}/smda.egg-info/dependency_links.txt +0 -0
  67. {smda-2.2.1 → smda-2.2.3}/smda.egg-info/requires.txt +0 -0
  68. {smda-2.2.1 → smda-2.2.3}/smda.egg-info/top_level.txt +0 -0
  69. {smda-2.2.1 → smda-2.2.3}/tests/testBracketQueue.py +0 -0
  70. {smda-2.2.1 → smda-2.2.3}/tests/testEscaper.py +0 -0
  71. {smda-2.2.1 → smda-2.2.3}/tests/testFileFormatParsers.py +0 -0
  72. {smda-2.2.1 → smda-2.2.3}/tests/testIntegration.py +0 -0
  73. {smda-2.2.1 → smda-2.2.3}/tests/testTarjan.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: smda
3
- Version: 2.2.1
3
+ Version: 2.2.3
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-25: v2.2.3 - Minor bugfixes.
77
78
  * 2025-07-23: v2.2.1 - Added xmetadata field to SmdaReport, with information about imports and exports. Improved string extraction from Go binaries.
78
79
  * 2025-06-13: v2.1.0 - Support for export from IDA 9.0+ (THX to @jershmagersh for the update!).
79
80
  * 2025-02-26: v2.0.2 - Adjusting relative import, adding init file.
@@ -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-25: v2.2.3 - Minor bugfixes.
59
60
  * 2025-07-23: v2.2.1 - Added xmetadata field to SmdaReport, with information about imports and exports. Improved string extraction from Go binaries.
60
61
  * 2025-06-13: v2.1.0 - Support for export from IDA 9.0+ (THX to @jershmagersh for the update!).
61
62
  * 2025-02-26: v2.0.2 - Adjusting relative import, adding init file.
@@ -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.1',
22
+ version='2.2.3',
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.1"
8
+ VERSION = "2.2.3"
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, "..", ".."])))
@@ -268,13 +268,20 @@ class SmdaReport(object):
268
268
  return smda_report
269
269
 
270
270
  def toDict(self) -> dict:
271
+ transformed_code_sections = []
272
+ if self.code_sections:
273
+ for section in self.code_sections:
274
+ if section is not None:
275
+ transformed_code_sections.append(("", section[1], section[2]))
276
+ else:
277
+ transformed_code_sections.append(("", 0, 0))
271
278
  return {
272
279
  "architecture": self.architecture,
273
280
  "base_addr": self.base_addr,
274
281
  "binary_size": self.binary_size,
275
282
  "bitness": self.bitness,
276
283
  "code_areas": self.code_areas,
277
- "code_sections": [("", section[1], section[2]) for section in self.code_sections],
284
+ "code_sections": transformed_code_sections,
278
285
  "confidence_threshold": self.confidence_threshold,
279
286
  "disassembly_errors": self.disassembly_errors,
280
287
  "execution_time": self.execution_time,
@@ -225,7 +225,7 @@ class ElfFileLoader(object):
225
225
  if segment.flags.value & lief.ELF.Section.FLAGS.EXECINSTR.value:
226
226
  segment_start = segment.virtual_address
227
227
  segment_size = segment.virtual_size
228
- if segment_size % segment.alignment != 0:
228
+ if segment.alignment and segment_size % segment.alignment != 0:
229
229
  segment_size += segment.alignment - (segment_size % segment.alignment)
230
230
  segment_end = segment_start + segment_size
231
231
  code_areas.append([segment_start, segment_end])
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: smda
3
- Version: 2.2.1
3
+ Version: 2.2.3
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-25: v2.2.3 - Minor bugfixes.
77
78
  * 2025-07-23: v2.2.1 - Added xmetadata field to SmdaReport, with information about imports and exports. Improved string extraction from Go binaries.
78
79
  * 2025-06-13: v2.1.0 - Support for export from IDA 9.0+ (THX to @jershmagersh for the update!).
79
80
  * 2025-02-26: v2.0.2 - Adjusting relative import, adding init file.
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