@@ -5,35 +5,36 @@ build-backend = "setuptools.build_meta"
55[project ]
66name = " patternanalyzer"
77version = " 0.1.0"
8- description = " Binary pattern analysis framework"
8+ description = " A comprehensive, plugin-based framework for binary data analysis in Python. "
99readme = " README.md"
1010license = {text = " MIT" }
1111requires-python = " >=3.10"
1212authors = [
1313 {name = " EdgeTypE" , email = " edgetype@goygoyengine.com" }
1414]
15+ keywords = [" binary-analysis" , " security" , " reverse-engineering" , " cryptography" , " forensics" , " malware-analysis" , " statistical-analysis" ]
1516classifiers = [
1617 " Development Status :: 3 - Alpha" ,
1718 " Intended Audience :: Developers" ,
19+ " Intended Audience :: Science/Research" ,
1820 " License :: OSI Approved :: MIT License" ,
1921 " Programming Language :: Python :: 3" ,
2022 " Programming Language :: Python :: 3.10" ,
2123 " Programming Language :: Python :: 3.11" ,
2224 " Programming Language :: Python :: 3.12" ,
25+ " Topic :: Security" ,
26+ " Topic :: Software Development :: Libraries :: Python Modules" ,
27+ " Topic :: Utilities"
2328]
2429dependencies = [
2530 " click>=8.0.0" ,
2631 " numpy>=1.25.0" ,
2732 " scipy>=1.10.0" ,
28- # Format-analysis helpers
2933 " python-magic>=0.4.27" ,
3034 " pefile>=2024.2.1" ,
3135 " oletools>=0.60.1" ,
32- # Crypto helpers used by new plugins
3336 " cryptography>=41.0.0" ,
34- " pycryptodome>=3.18.0" ,
35- # Optional ML dependencies for anomaly detection plugins (recommended extras 'ml')
36- # Note: these are heavy; kept as optional extras to avoid forcing installs for all users.
37+ " pycryptodome>=3.18.0"
3738]
3839
3940[project .optional-dependencies ]
4647 " scikit-learn>=1.2.0" ,
4748 " joblib>=1.2.0" ,
4849 " pandas>=2.0.0" ,
49- # "tensorflow-io>=0.32.0 ; python_version >= '3.10'",
5050]
51-
5251ui = [
5352 " streamlit>=1.30.0" ,
5453 " textual" ,
@@ -57,14 +56,7 @@ ui = [
5756[project .scripts ]
5857patternanalyzer = " patternanalyzer.cli:cli"
5958
60-
6159[project .entry-points ."patternanalyzer .plugins" ]
62- # Auto-generated: map all discovered plugin modules -> their export symbols
63- # Selection rules used:
64- # - Prefer explicit well-known export/class names when present (ENTRY_POINT, PLUGIN, Plugin, make_plugin, load_plugin)
65- # - Otherwise use the single TestPlugin/VisualPlugin-derived class defined in the module.
66- # Notes:
67- # - patternanalyzer.plugins.parallel_helpers defines two test classes; both are registered intentionally.
6860approximate_entropy = " patternanalyzer.plugins.approximate_entropy:ApproximateEntropyTest"
6961autocorrelation = " patternanalyzer.plugins.autocorrelation:AutocorrelationTest"
7062binary_matrix_rank = " patternanalyzer.plugins.binary_matrix_rank:BinaryMatrixRankTest"
@@ -87,10 +79,8 @@ runs = "patternanalyzer.plugins.runs_test:RunsTest"
8779serial = " patternanalyzer.plugins.serial_test:SerialTest"
8880vigenere = " patternanalyzer.plugins.vigenere:VigenerePlugin"
8981xor_const = " patternanalyzer.plugins.xor_const:XOPlugin"
90- # parallel_helpers exposes two TestPlugin implementations used in tests; keep both entry points.
9182parallel_quick_stat = " patternanalyzer.plugins.parallel_helpers:QuickStat"
9283parallel_blocking = " patternanalyzer.plugins.parallel_helpers:BlockingTest"
93- # New advanced statistical test plugins (Dieharder, TestU01, spectral adv, Hurst)
9484diehard_birthday_spacings = " patternanalyzer.plugins.diehard_birthday_spacings:BirthdaySpacingsTest"
9585diehard_overlapping_sums = " patternanalyzer.plugins.diehard_overlapping_sums:OverlappingSumsTest"
9686diehard_3d_spheres = " patternanalyzer.plugins.diehard_3d_spheres:ThreeDSpheresTest"
@@ -100,23 +90,21 @@ hurst_exponent = "patternanalyzer.plugins.hurst_exponent:HurstExponentTest"
10090conditional_entropy = " patternanalyzer.plugins.conditional_entropy:ConditionalEntropyTest"
10191mutual_information = " patternanalyzer.plugins.mutual_information:MutualInformationTest"
10292transfer_entropy = " patternanalyzer.plugins.transfer_entropy:TransferEntropyTest"
103- # Machine-learning based anomaly detection plugins (LSTM/GRU, Autoencoder, Classifier labeler)
10493lstm_gru_anomaly = " patternanalyzer.plugins.lstm_gru_anomaly:LSTMGRUAnomalyPlugin"
10594autoencoder_anomaly = " patternanalyzer.plugins.autoencoder_anomaly:AutoencoderAnomalyPlugin"
10695classifier_labeler = " patternanalyzer.plugins.classifier_labeler:ClassifierLabelerPlugin"
107- # Structural/format analysis plugins added by integration
10896magic_detector = " patternanalyzer.plugins.magic_detector:MagicDetector"
10997png_structure = " patternanalyzer.plugins.png_structure:PNGStructure"
11098zip_structure = " patternanalyzer.plugins.zip_structure:ZIPStructure"
11199pdf_structure = " patternanalyzer.plugins.pdf_structure:PDFStructure"
112- # Crypto analysis plugins integrated: ECB detection, frequency/pattern, known constants/S-box search
113100ecb_detector = " patternanalyzer.plugins.ecb_detector:ECBDetector"
114101frequency_pattern = " patternanalyzer.plugins.frequency_pattern:FrequencyPattern"
115102known_constants_search = " patternanalyzer.plugins.known_constants_search:KnownConstantsSearch"
103+
116104[project .urls ]
117105Homepage = " https://github.com/EdgeTypE/pattern-analyzer"
118106Repository = " https://github.com/EdgeTypE/pattern-analyzer.git"
119- Issues = " https://github.com/EdgeTypE/pattern-analyzer/issues"
107+ "Bug Tracker" = " https://github.com/EdgeTypE/pattern-analyzer/issues"
120108
121109[tool .setuptools .packages .find ]
122110where = [" ." ]
0 commit comments