SmartMUV ist ein Smart Contract-Analyse- und Datenextraktionstool in Python 3. SmartMUV kann den vollständigen Zustand/die Daten des Smart-Vertrags extrahieren und es Benutzern ermöglichen, ihre Smart-Verträge zusammen mit den Daten über alle EVM-kompatiblen Blockchains zu migrieren oder zu migrieren. SmartMUV kann auch für die Nachverfolgung oder Abrufen von Smart -Vertragsdaten intelligent (IE -Inhaberliste oder Einträge Liste eines beliebigen Datentyps wie Mapping, Arrays usw.) verwendet werden.
Da Solidität die Tasten von Mapping -Variablen nicht verfolgt, verwendet SmartMUV statische Zeitquellcode -Analysetechniken, um die Analyse der Schlüsselnäherungen für Mapping -Variablen durchzuführen. Es analysiert das vollständige Layout eines intelligenten Vertrags und kann nicht nur reguläre Variablen, sondern auch komplexe Variablen (dh Mappings und mehrdimensionale Arrays) und benutzerdefinierte Variablen extrahieren.
git clone https://github.com/WaizKhan7/SmartMuv.git
Sie können alle erforderlichen Pakete mit dem folgenden Befehl installieren:
python3 setup.py install
Sie können alle erforderlichen Soliditäts Compiler mit dem folgenden Befehl installieren:
python3 install_compilers.py
SmartMUV verwendet EVM-kompatible Blockchain- RPC URL für die Zustandsextraktion und Block-Explorer- APIs , dh Ethercan, Polygonscan, BSCScan usw., um Smart Contract-Transaktionen zu erhalten. API -Schlüssel und URLs für RPC- und Block -Explorer müssen der Datei config.ini hinzugefügt werden, damit das Tool ordnungsgemäß funktioniert.
Sie können SmartMUV mit dem folgenden Befehl für die bereitgestellten Beispielverträge ausführen:
python3 -m try_smartmuv
Wählen Sie den Smart -Vertrag aus der angegebenen Liste aus, und SmartMUV wird seinen vollständigen Zustand analysieren und extrahieren.
1 0xc9ae11a393a08e86d46ce683fde7699db01a5f15 AUX1769
2 0x51bb7917efcad03ec8b1d37251a06cd56b0c4a72 DSRCoin
3 0x24dd6e1fe742bd8fd3a1d144fece1680f16296aa OBK
4 0x143e685dd51d467d77663a3be119217185d81b99 CommunityBankCoin
5 0x145f9bbd9f1ca0923e81e05c2ac04fda2310d774 VACCToken
Select contract no from above to run SmartMuv ->
Fügen Sie die Vertragsdetails in die Datei smartmuv.py hinzu und führen Sie aus:
python3 -m smartmuv
HINWEIS: Fügen Sie den Quellcode Ihres Projekts in "Contract_Directory" -Pad hinzu, das in config.ini -Datei angegeben ist. Die Codedatei sollte den gesamten Code ohne import enthalten.
slot 0 - mapping balances[address] = uint256;
slot 1 - mapping allowed[address][address] = uint256;
slot 2 - uint256 totalSupply;
slot 3 - string name;
slot 4 - uint8 decimals;
slot 5 - string symbol;
[Name, Typ, Wert, Größe (Bytes), Steckplatznummer]
['owner', 'address', '0xb520de5470c80d57f7005d3b771af675ad311f91', 20, '0x0']
['totalSupply', 'uint256', 100000000000000000, 32, '0x1']
['decimals', 'uint8', 6, 1, '0x2']
['name', 'string', 'Community Decentralized Banking>', 32, '0x3']
['symbol', 'string', 'CMD', 32, '0x4']
['tokenIsFrozen', 'bool', 'False', 1, '0x5']
['tokenMintingEnabled', 'bool', 'False', 1, '0x5']
['contractLaunched', 'bool', 'False', 1, '0x5']
['stakingStatus', 'bool', 'False', 1, '0x5']
['balances:key:0xb520de5470c80d57f7005d3b771af675ad311f91', 'uint256', 99000000000000000, 32, '0x4fa3db652fe4fb0b4583b73847299fbd568219c49826e6778a89ecc882273865']
['balances:key:0x5b7b3ccfc5a89caf6a459627029dc1e1255ee360', 'uint256', 999998994679681, 32, '0xb500fc54d70185966c1ff1538715017b5b6b324727f02becd41481a337bcf77a']
['balances:key:0x642481c0d64f1d8a06da621599b9d64cf41740b8', 'uint256', 2023908, 32, '0xb930fddb7465b82ccbad649c33609aafcf74f4f0763fcd3609a15183bb6e2d8e']
['balances:key:0x4a30f1974Ff2338C4d8f8Eb2f7FE11353FE6f71d', 'uint256', 3296411, 32, '0xffb44d017dc752df1a3231eb81905c9cac26214ade36e0a2a3bc72fcdcbef740']
['balances:key:0x38BC418476D274900167f33e2098A86aB01b96Af', 'uint256', 1000000000, 32, '0x430d203e4eb0ef42503559f8c2f4410eef444da81d0b910d2c40ed75d9c2f34a']
python3 -m tests.test_ast_parsing
python3 -m tests.test_slot_analysis
python3 -m tests.test_key_approx_analysis
python3 -m tests.test_state_extraction
Slot -Analyse eines intelligenten Vertrags , um ein vollständiges Speicherlayout eines intelligenten Vertrags zu erhalten.
Smart Contract Storage Audit .
Smart Contract Komplette interne Datenindexierung für Blockchain Explorer -Plattformen .
Status -Extraktion (Snapshot) von Smart Contract -Daten.
Wiedereinsetzung/Upgrade von intelligenten Verträgen zusammen mit ihren vorhandenen Daten.
Migration von intelligenten Verträgen sowie Vertragsdaten dh L1 auf L2 oder L2 zu L2 -Migrationen.
Im Falle einer Anfrage können Sie uns eine E -Mail an [email protected] senden