smda 2.2.1__tar.gz → 2.2.2__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.2}/PKG-INFO +2 -1
  2. {smda-2.2.1 → smda-2.2.2}/README.md +1 -0
  3. {smda-2.2.1 → smda-2.2.2}/setup.py +1 -1
  4. {smda-2.2.1 → smda-2.2.2}/smda/SmdaConfig.py +1 -1
  5. {smda-2.2.1 → smda-2.2.2}/smda/common/SmdaReport.py +7 -1
  6. {smda-2.2.1 → smda-2.2.2}/smda/utility/ElfFileLoader.py +1 -1
  7. {smda-2.2.1 → smda-2.2.2/smda.egg-info}/PKG-INFO +2 -1
  8. {smda-2.2.1 → smda-2.2.2}/LICENSE +0 -0
  9. {smda-2.2.1 → smda-2.2.2}/setup.cfg +0 -0
  10. {smda-2.2.1 → smda-2.2.2}/smda/Disassembler.py +0 -0
  11. {smda-2.2.1 → smda-2.2.2}/smda/DisassemblyResult.py +0 -0
  12. {smda-2.2.1 → smda-2.2.2}/smda/DisassemblyStatistics.py +0 -0
  13. {smda-2.2.1 → smda-2.2.2}/smda/__init__.py +0 -0
  14. {smda-2.2.1 → smda-2.2.2}/smda/cil/CilDisassembler.py +0 -0
  15. {smda-2.2.1 → smda-2.2.2}/smda/cil/CilInstructionEscaper.py +0 -0
  16. {smda-2.2.1 → smda-2.2.2}/smda/cil/FunctionAnalysisState.py +0 -0
  17. {smda-2.2.1 → smda-2.2.2}/smda/cil/__init__.py +0 -0
  18. {smda-2.2.1 → smda-2.2.2}/smda/common/BasicBlock.py +0 -0
  19. {smda-2.2.1 → smda-2.2.2}/smda/common/BinaryInfo.py +0 -0
  20. {smda-2.2.1 → smda-2.2.2}/smda/common/BlockLocator.py +0 -0
  21. {smda-2.2.1 → smda-2.2.2}/smda/common/CodeXref.py +0 -0
  22. {smda-2.2.1 → smda-2.2.2}/smda/common/DominatorTree.py +0 -0
  23. {smda-2.2.1 → smda-2.2.2}/smda/common/SmdaBasicBlock.py +0 -0
  24. {smda-2.2.1 → smda-2.2.2}/smda/common/SmdaFunction.py +0 -0
  25. {smda-2.2.1 → smda-2.2.2}/smda/common/SmdaInstruction.py +0 -0
  26. {smda-2.2.1 → smda-2.2.2}/smda/common/TailcallAnalyzer.py +0 -0
  27. {smda-2.2.1 → smda-2.2.2}/smda/common/Tarjan.py +0 -0
  28. {smda-2.2.1 → smda-2.2.2}/smda/common/__init__.py +0 -0
  29. {smda-2.2.1 → smda-2.2.2}/smda/common/labelprovider/AbstractLabelProvider.py +0 -0
  30. {smda-2.2.1 → smda-2.2.2}/smda/common/labelprovider/CilSymbolProvider.py +0 -0
  31. {smda-2.2.1 → smda-2.2.2}/smda/common/labelprovider/DelphiKbSymbolProvider.py +0 -0
  32. {smda-2.2.1 → smda-2.2.2}/smda/common/labelprovider/ElfApiResolver.py +0 -0
  33. {smda-2.2.1 → smda-2.2.2}/smda/common/labelprovider/ElfSymbolProvider.py +0 -0
  34. {smda-2.2.1 → smda-2.2.2}/smda/common/labelprovider/GoLabelProvider.py +0 -0
  35. {smda-2.2.1 → smda-2.2.2}/smda/common/labelprovider/OrdinalHelper.py +0 -0
  36. {smda-2.2.1 → smda-2.2.2}/smda/common/labelprovider/PdbSymbolProvider.py +0 -0
  37. {smda-2.2.1 → smda-2.2.2}/smda/common/labelprovider/PeSymbolProvider.py +0 -0
  38. {smda-2.2.1 → smda-2.2.2}/smda/common/labelprovider/WinApiResolver.py +0 -0
  39. {smda-2.2.1 → smda-2.2.2}/smda/common/labelprovider/__init__.py +0 -0
  40. {smda-2.2.1 → smda-2.2.2}/smda/ida/BackendInterface.py +0 -0
  41. {smda-2.2.1 → smda-2.2.2}/smda/ida/IdaExporter.py +0 -0
  42. {smda-2.2.1 → smda-2.2.2}/smda/ida/IdaInterface.py +0 -0
  43. {smda-2.2.1 → smda-2.2.2}/smda/ida/__init__.py +0 -0
  44. {smda-2.2.1 → smda-2.2.2}/smda/intel/BitnessAnalyzer.py +0 -0
  45. {smda-2.2.1 → smda-2.2.2}/smda/intel/FunctionAnalysisState.py +0 -0
  46. {smda-2.2.1 → smda-2.2.2}/smda/intel/FunctionCandidate.py +0 -0
  47. {smda-2.2.1 → smda-2.2.2}/smda/intel/FunctionCandidateManager.py +0 -0
  48. {smda-2.2.1 → smda-2.2.2}/smda/intel/IndirectCallAnalyzer.py +0 -0
  49. {smda-2.2.1 → smda-2.2.2}/smda/intel/IntelDisassembler.py +0 -0
  50. {smda-2.2.1 → smda-2.2.2}/smda/intel/IntelInstructionEscaper.py +0 -0
  51. {smda-2.2.1 → smda-2.2.2}/smda/intel/JumpTableAnalyzer.py +0 -0
  52. {smda-2.2.1 → smda-2.2.2}/smda/intel/LanguageAnalyzer.py +0 -0
  53. {smda-2.2.1 → smda-2.2.2}/smda/intel/MnemonicTfIdf.py +0 -0
  54. {smda-2.2.1 → smda-2.2.2}/smda/intel/__init__.py +0 -0
  55. {smda-2.2.1 → smda-2.2.2}/smda/intel/definitions.py +0 -0
  56. {smda-2.2.1 → smda-2.2.2}/smda/utility/BracketQueue.py +0 -0
  57. {smda-2.2.1 → smda-2.2.2}/smda/utility/DelphiKbFileLoader.py +0 -0
  58. {smda-2.2.1 → smda-2.2.2}/smda/utility/FileLoader.py +0 -0
  59. {smda-2.2.1 → smda-2.2.2}/smda/utility/MachoFileLoader.py +0 -0
  60. {smda-2.2.1 → smda-2.2.2}/smda/utility/MemoryFileLoader.py +0 -0
  61. {smda-2.2.1 → smda-2.2.2}/smda/utility/PeFileLoader.py +0 -0
  62. {smda-2.2.1 → smda-2.2.2}/smda/utility/PriorityQueue.py +0 -0
  63. {smda-2.2.1 → smda-2.2.2}/smda/utility/StringExtractor.py +0 -0
  64. {smda-2.2.1 → smda-2.2.2}/smda/utility/__init__.py +0 -0
  65. {smda-2.2.1 → smda-2.2.2}/smda.egg-info/SOURCES.txt +0 -0
  66. {smda-2.2.1 → smda-2.2.2}/smda.egg-info/dependency_links.txt +0 -0
  67. {smda-2.2.1 → smda-2.2.2}/smda.egg-info/requires.txt +0 -0
  68. {smda-2.2.1 → smda-2.2.2}/smda.egg-info/top_level.txt +0 -0
  69. {smda-2.2.1 → smda-2.2.2}/tests/testBracketQueue.py +0 -0
  70. {smda-2.2.1 → smda-2.2.2}/tests/testEscaper.py +0 -0
  71. {smda-2.2.1 → smda-2.2.2}/tests/testFileFormatParsers.py +0 -0
  72. {smda-2.2.1 → smda-2.2.2}/tests/testIntegration.py +0 -0
  73. {smda-2.2.1 → smda-2.2.2}/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.2
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.2 - 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.2 - 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.2',
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.2"
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,19 @@ class SmdaReport(object):
268
268
  return smda_report
269
269
 
270
270
  def toDict(self) -> dict:
271
+ transformed_code_sections = []
272
+ for section in self.code_sections:
273
+ if section is not None:
274
+ transformed_code_sections.append(("", section[1], section[2]))
275
+ else:
276
+ transformed_code_sections.append(("", 0, 0)) # Handle None sections gracefully
271
277
  return {
272
278
  "architecture": self.architecture,
273
279
  "base_addr": self.base_addr,
274
280
  "binary_size": self.binary_size,
275
281
  "bitness": self.bitness,
276
282
  "code_areas": self.code_areas,
277
- "code_sections": [("", section[1], section[2]) for section in self.code_sections],
283
+ "code_sections": transformed_code_sections,
278
284
  "confidence_threshold": self.confidence_threshold,
279
285
  "disassembly_errors": self.disassembly_errors,
280
286
  "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.2
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.2 - 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