Veredicto do motor local
BSC · DIAGNÓSTICO DE CONTRATOS
Verificação de Invariantes
Explore o diagnóstico do contrato, consulte o seu histórico e exporte os resultados num único painel.
Snapshot passivo BSC: bytecode, getters e slots observados no bloco indicado. Cenários dinâmicos não executados; a matriz explica as lacunas. Nenhuma transação pública foi enviada.
NÃO IDENTIFICADOClassificação estrutural
Impacto na avaliação local
- TEMPO DE EXECUÇÃO Leigo: Mostra quanto tempo demorou o processo que realizou esta avaliação.Pro: wall_seconds mede a duração observada do ciclo do subprocesso isolado. O painel apresenta segundos com três casas decimais, não uma medição exata em milissegundos.
- 5.737 s
- CONSUMO DE MEMÓRIA Leigo: Mostra o maior consumo de memória observado no processo desta consulta, não o consumo total do servidor.Pro: peak_session_RSS_KiB é o pico RSS amostrado da sessão, convertido para MiB dividindo por 1024. Não é uma medição atómica; cerca de 33 MiB é uma referência observada, não um teto fixo.
- 32.9 MiB
- ESTADO DA EVM
- PURGADO & LIMPO
Duração medida do processo
Pico RSS amostrado da sessão
Limpeza do processo local
Métricas do worker local; a limpeza confirmada não demonstra sucesso da avaliação, segurança do contrato ou RSS global constante.
🛡️ MATRIZ DE SEGURANÇA ESTRUTURAL
12 propriedadesRastreio estrutural do bytecode. Um indicador exige revisão; ausência de indicadores não certifica segurança.
Factos observados na rede
Respostas de getters e slots no bloco do relatório. Não provam, por si só, os poderes efetivos nem a ausência de outros administradores.
- owner()
- 0xf68a4b64162906eff0ff6ae34e2bb1cd42fef62d · endereço não nulo
- getOwner()
- 0xf68a4b64162906eff0ff6ae34e2bb1cd42fef62d · endereço não nulo
- Slot EIP-1967 · implementation
- Slot zero; não exclui outros modelos de proxy
- Slot EIP-1967 · admin
- Slot zero; não exclui outros modelos de proxy
- Slot EIP-1967 · beacon
- Slot zero; não exclui outros modelos de proxy
- DEFAULT_ADMIN_ROLE · 0xf68a4b64162906eff0ff6ae34e2bb1cd42fef62d
- Leitura indisponível
- Role reportado · DEFAULT_ADMIN_ROLE
- Enumeração indisponível; não significa ausência de administradores
- Cobertura · source
- not_evaluated · build_settings_incomplete
- Cobertura · route
- configured · etapa disponível
- Cobertura · transfer
- not_evaluated · etapa disponível
- Cobertura · mint
- not_evaluated · etapa disponível
- Cobertura · ownership
- not_evaluated · etapa disponível
- Cobertura · initializer
- not_evaluated · etapa disponível
- Cobertura · blacklist
- not_evaluated · etapa disponível
- Cobertura · upgrade
- not_evaluated · etapa disponível
- Cobertura · router_mutability
- not_evaluated · etapa disponível
- Cobertura · supply
- not_evaluated · etapa disponível
- Cobertura · code
- not_evaluated · etapa disponível
- Cobertura · airdrop
- not_evaluated · etapa disponível
- Cobertura · dynamic_scenarios
- not_run · target_not_authorized
- Rota V2 ensaiada · direct_v2
- 0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c → 0x55d398326f99059ff775485246999027b3197955
Cobertura das 12 propriedades: 0 ensaios favoráveis · 0 alertas de cenário · 1 factos observados · 3 indicadores · 8 por demonstrar · 0 erros de execução. Não é uma pontuação de segurança.
Propriedades de segurança · evidências e limites
Minting restrito
⚠ Indicador encontrado · propriedade por demonstrar
PUSH4 compatível com mint(uint256) Permissões de mint não demonstradas: owner/roles não bastam; são necessários fonte verificada e cenário controlado. Motivo: Fonte verificada não vinculada: build settings incomplete. Cenário dinâmico não executado: o endereço não está autorizado para cenários dinâmicos.
Fornecimento imutável
⚠ Indicador encontrado · propriedade por demonstrar
PUSH4 compatível com burn(uint256) Motivo: Cenário dinâmico não executado: o endereço não está autorizado para cenários dinâmicos.
Código não-atualizável
⚠ Propriedade por demonstrar
Sem indicador reconhecido; ausência de seletor não prova a propriedade. Motivo: Nenhuma função suportada foi reconhecida no runtime observado: upgradeTo(address), upgradeToAndCall(address,bytes). Cenário dinâmico não executado: o endereço não está autorizado para cenários dinâmicos.
Sem taxas de transferência
⚠ Propriedade por demonstrar
Sem indicador reconhecido; ausência de seletor não prova a propriedade. Motivo: Nenhuma função suportada foi reconhecida no runtime observado: setTaxFeePercent(uint256), setFees(uint256,uint256). Cenário dinâmico não executado: o endereço não está autorizado para cenários dinâmicos.
Sem limites de transação por bloco
⚠ Propriedade por demonstrar
Sem indicador reconhecido; ausência de seletor não prova a propriedade. Motivo: Nenhuma função suportada foi reconhecida no runtime observado: setMaxTxAmount(uint256), maxTransactionAmount(). Cenário dinâmico não executado: o endereço não está autorizado para cenários dinâmicos.
Sem cooldown
⚠ Propriedade por demonstrar
Sem indicador reconhecido; ausência de seletor não prova a propriedade. Motivo: Nenhuma função suportada foi reconhecida no runtime observado: cooldownEnabled(), setCooldownEnabled(bool). Cenário dinâmico não executado: o endereço não está autorizado para cenários dinâmicos.
Sem funções de blacklist
⚠ Propriedade por demonstrar
Sem indicador reconhecido; ausência de seletor não prova a propriedade. Motivo: Nenhuma função suportada foi reconhecida no runtime observado: blacklist(address), addBlackList(address), isBlackListed(address), isBlacklisted(address), blacklisted(address). Cenário dinâmico não executado: o endereço não está autorizado para cenários dinâmicos.
Renúncia de propriedade validada
⚠ Indicador encontrado · propriedade por demonstrar
PUSH4 compatível com owner() PUSH4 compatível com getOwner() PUSH4 compatível com transferOwnership(address) owner() devolve 0xf68a4b64162906eff0ff6ae34e2bb1cd42fef62d; não prova ausência de outros privilégios. getOwner() devolve 0xf68a4b64162906eff0ff6ae34e2bb1cd42fef62d; não prova ausência de outros privilégios. Motivo: Cenário dinâmico não executado: o endereço não está autorizado para cenários dinâmicos.
Inicializador trancado
⚠ Propriedade por demonstrar
Sem indicador reconhecido; ausência de seletor não prova a propriedade. Motivo: Nenhuma função suportada foi reconhecida no runtime observado: initialize(), initialize(address), openTrading(). Fonte verificada não vinculada: build settings incomplete. Cenário dinâmico não executado: o endereço não está autorizado para cenários dinâmicos.
Router de troca fixo
⚠ Propriedade por demonstrar
Sem indicador reconhecido; ausência de seletor não prova a propriedade. Motivo: Nenhuma função suportada foi reconhecida no runtime observado: setRouter(address), updateRouter(address). Cenário dinâmico não executado: o endereço não está autorizado para cenários dinâmicos.
Código presente no snapshot
✓ Facto observado · código presente
Runtime não vazio observado no bloco indicado; não garante execução funcional nem persistência futura.
Airdrop · efeitos no cenário
⚠ Propriedade por demonstrar
Sem indicador reconhecido; ausência de seletor não prova a propriedade. Motivo: Nenhuma função suportada foi reconhecida no runtime observado: airdrop(address[],uint256), multiTransfer(address[],uint256). Cenário dinâmico não executado: o endereço não está autorizado para cenários dinâmicos.
Bloco: 132733794. As observações referem-se ao snapshot, não ao estado futuro.
Manual de Auditoria de InvariantesROTEIRO
Roteiro de ensaio para cenários suportados; não é um registo de operações executadas neste pedido.
- Depósito da conta de controlo: estabelecer o estado inicial e registar os balanços e os direitos de levantamento.
- Posição limite da conta de teste: definir a condição de fronteira e a propriedade financeira esperada.
- Replay atómico via Alchemy: num ensaio de fork configurado, executar o cenário e comparar os estados. Numa execução ativa, o laboratório utiliza um fork BSC via RPC; os cenários executados e os respetivos limites constam do JSON. Demonstrações e snapshots de histórico não executam um novo fork.
- Purga final anti-zombie do processo: encerrar e recolher os processos descendentes no finally; verificar cleanup_complete no diagnóstico. Isto não demonstra RSS global constante.
Um alerta estático não prova impacto no contrato publicado. O PDF exporta este snapshot, sem repetir a análise. Disponível durante dez minutos nesta sessão.
JSON completo do diagnósticoDADOS
{
"target_address": "0x55d398326f99059ff775485246999027b3197955",
"local_diagnostic_status": "verified_observation",
"structural_pattern_identified": null,
"local_impact_demonstrated": false,
"result_origin": "bsc_live_fork",
"fresh_execution_performed": true,
"security_matrix": {
"version": 2,
"method": "runtime_structural_screen",
"block_number": 132733794,
"block_hash": "0x065f0a95627a5c887244171dae5eda42eba18eec1be990c97c4bd78f61b1ab2d",
"checks": [
{
"id": "restricted_mint",
"label": "Minting restrito",
"status": "review_required",
"evidence": [
"PUSH4 compatível com mint(uint256)",
"Permissões de mint não demonstradas: owner/roles não bastam; são necessários fonte verificada e cenário controlado."
],
"reason": "Fonte verificada não vinculada: build settings incomplete. Cenário dinâmico não executado: o endereço não está autorizado para cenários dinâmicos."
},
{
"id": "immutable_supply",
"label": "Fornecimento imutável",
"status": "review_required",
"evidence": [
"PUSH4 compatível com burn(uint256)"
],
"reason": "Cenário dinâmico não executado: o endereço não está autorizado para cenários dinâmicos."
},
{
"id": "non_upgradeable",
"label": "Código não-atualizável",
"status": "inconclusive",
"evidence": [
"Sem indicador reconhecido; ausência de seletor não prova a propriedade."
],
"reason": "Nenhuma função suportada foi reconhecida no runtime observado: upgradeTo(address), upgradeToAndCall(address,bytes). Cenário dinâmico não executado: o endereço não está autorizado para cenários dinâmicos."
},
{
"id": "no_transfer_fees",
"label": "Sem taxas de transferência",
"status": "inconclusive",
"evidence": [
"Sem indicador reconhecido; ausência de seletor não prova a propriedade."
],
"reason": "Nenhuma função suportada foi reconhecida no runtime observado: setTaxFeePercent(uint256), setFees(uint256,uint256). Cenário dinâmico não executado: o endereço não está autorizado para cenários dinâmicos."
},
{
"id": "no_block_limits",
"label": "Sem limites de transação por bloco",
"status": "inconclusive",
"evidence": [
"Sem indicador reconhecido; ausência de seletor não prova a propriedade."
],
"reason": "Nenhuma função suportada foi reconhecida no runtime observado: setMaxTxAmount(uint256), maxTransactionAmount(). Cenário dinâmico não executado: o endereço não está autorizado para cenários dinâmicos."
},
{
"id": "no_cooldown",
"label": "Sem cooldown",
"status": "inconclusive",
"evidence": [
"Sem indicador reconhecido; ausência de seletor não prova a propriedade."
],
"reason": "Nenhuma função suportada foi reconhecida no runtime observado: cooldownEnabled(), setCooldownEnabled(bool). Cenário dinâmico não executado: o endereço não está autorizado para cenários dinâmicos."
},
{
"id": "no_blacklist",
"label": "Sem funções de blacklist",
"status": "inconclusive",
"evidence": [
"Sem indicador reconhecido; ausência de seletor não prova a propriedade."
],
"reason": "Nenhuma função suportada foi reconhecida no runtime observado: blacklist(address), addBlackList(address), isBlackListed(address), isBlacklisted(address), blacklisted(address). Cenário dinâmico não executado: o endereço não está autorizado para cenários dinâmicos."
},
{
"id": "ownership_renounced",
"label": "Renúncia de propriedade validada",
"status": "review_required",
"evidence": [
"PUSH4 compatível com owner()",
"PUSH4 compatível com getOwner()",
"PUSH4 compatível com transferOwnership(address)",
"owner() devolve 0xf68a4b64162906eff0ff6ae34e2bb1cd42fef62d; não prova ausência de outros privilégios.",
"getOwner() devolve 0xf68a4b64162906eff0ff6ae34e2bb1cd42fef62d; não prova ausência de outros privilégios."
],
"reason": "Cenário dinâmico não executado: o endereço não está autorizado para cenários dinâmicos."
},
{
"id": "initializer_locked",
"label": "Inicializador trancado",
"status": "inconclusive",
"evidence": [
"Sem indicador reconhecido; ausência de seletor não prova a propriedade."
],
"reason": "Nenhuma função suportada foi reconhecida no runtime observado: initialize(), initialize(address), openTrading(). Fonte verificada não vinculada: build settings incomplete. Cenário dinâmico não executado: o endereço não está autorizado para cenários dinâmicos."
},
{
"id": "fixed_router",
"label": "Router de troca fixo",
"status": "inconclusive",
"evidence": [
"Sem indicador reconhecido; ausência de seletor não prova a propriedade."
],
"reason": "Nenhuma função suportada foi reconhecida no runtime observado: setRouter(address), updateRouter(address). Cenário dinâmico não executado: o endereço não está autorizado para cenários dinâmicos."
},
{
"id": "not_destroyed",
"label": "Código presente no snapshot",
"status": "verified",
"evidence": [
"Runtime não vazio observado no bloco indicado; não garante execução funcional nem persistência futura."
]
},
{
"id": "no_malicious_airdrop",
"label": "Airdrop · efeitos no cenário",
"status": "inconclusive",
"evidence": [
"Sem indicador reconhecido; ausência de seletor não prova a propriedade."
],
"reason": "Nenhuma função suportada foi reconhecida no runtime observado: airdrop(address[],uint256), multiTransfer(address[],uint256). Cenário dinâmico não executado: o endereço não está autorizado para cenários dinâmicos."
}
],
"limitations": [
"Seletores podem colidir ou pertencer a dados; não demonstram funções alcançáveis.",
"Sem análise de fonte verificada, implementação de proxy ou prova comportamental.",
"Leituras parciais de owner, roles e slots; proxies personalizados, beacons e facetas não resolvidos exaustivamente."
],
"access_observations": {
"block_tag": "0x7e95b62",
"getters": {
"owner()": {
"status": "canonical_address_returned",
"address": "0xf68a4b64162906eff0ff6ae34e2bb1cd42fef62d"
},
"getOwner()": {
"status": "canonical_address_returned",
"address": "0xf68a4b64162906eff0ff6ae34e2bb1cd42fef62d"
}
},
"proxy_slots": {
"implementation": {
"status": "read",
"address": "0x0000000000000000000000000000000000000000"
},
"admin": {
"status": "read",
"address": "0x0000000000000000000000000000000000000000"
},
"beacon": {
"status": "read",
"address": "0x0000000000000000000000000000000000000000"
}
},
"implementation": null,
"roles_enumerated": false,
"mint_permissions_proven": false,
"default_admin_role_probes": [
{
"account": "0xf68a4b64162906eff0ff6ae34e2bb1cd42fef62d",
"member": null
}
],
"role_samples": [
{
"role": "DEFAULT_ADMIN_ROLE",
"role_id": "0x0000000000000000000000000000000000000000000000000000000000000000",
"status": "unavailable",
"reported_count": null,
"members": [],
"complete_authority_mapping": false
}
]
},
"runtime_keccak256": "0x97a48aa4c129657440dafdacd4c836389734d28cc4a0ca7403e68da660a74a59",
"pipeline_version": 5,
"target_pipeline": {
"source": {
"status": "not_evaluated",
"reason": "build_settings_incomplete",
"contract_name": "BEP20USDT",
"compiler_version": "v0.5.16+commit.9c3226ce",
"source_sha256": "524e5600fd0447b3ac724e01d6b12945ad417cf261abbdf7278657f3a579822e",
"runtime_binding_verified": false
},
"route": {
"status": "configured",
"reason": null,
"target": "0x55d398326f99059ff775485246999027b3197955",
"block_tag": "0x7e95b62",
"router": "0x10ed43c718714eb63d5aa57b78b54704e256024e",
"attempts": [
{
"path": [
"0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c",
"0x55d398326f99059ff775485246999027b3197955"
],
"status": "validated"
}
],
"wrapped_native": "0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c",
"factory": "0xca143ce32fe78f1f7019d7d551a6402fc5350c73",
"pair": "0x16b9a82891338f9ba80e2d6970fdda79d1eb0dae",
"pairs": [
"0x16b9a82891338f9ba80e2d6970fdda79d1eb0dae"
],
"path": [
"0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c",
"0x55d398326f99059ff775485246999027b3197955"
],
"bridge": null,
"route_kind": "direct_v2"
},
"dynamic_scenarios": {
"status": "not_run",
"reason": "target_not_authorized"
}
},
"coverage_summary": {
"version": 1,
"total_properties": 12,
"counts": {
"scoped_pass": 0,
"scenario_alert": 0,
"observed_fact": 1,
"indicator": 3,
"unresolved": 8,
"execution_error": 0
},
"scope": "evidence_categories_not_a_security_score"
}
},
"contract_identity": {
"address": "0x55d398326f99059ff775485246999027b3197955",
"block_tag": "0x7e95b62",
"name": "Tether USD",
"symbol": "USDT",
"source": "token_getters_untrusted"
},
"local_diagnostic": {
"status": "verified_observation",
"reason": "passive_snapshot_completed_dynamic_scenarios_not_run",
"local_execution_context": "read_only_bsc_snapshot",
"financial_property_evaluated": false,
"impact_demonstrated": false,
"forge_execution_performed": false,
"public_transactions_sent": false,
"observation": {
"block_number": 132733794,
"block_hash": "0x065f0a95627a5c887244171dae5eda42eba18eec1be990c97c4bd78f61b1ab2d",
"runtime_sha256": "a5a6d887c581c25cba4104e4281a530044ba59d718e62cdaa80ef89900299d50",
"runtime_bytes": 4413,
"native_balance_wei": "0",
"scope": "passive_bsc_rpc_snapshot_only"
},
"rpc_transport": {
"scope": "python_read_only_calls_excludes_forge_and_explorer",
"calls": 24,
"attempts": 24,
"retries": 0,
"sleep_seconds": 0.0,
"http_failures": {}
},
"process_resources": {
"wall_seconds": 5.736576912982855,
"peak_session_RSS_KiB": 33640,
"sampled_session_CPU_seconds": 1.09,
"memory_mib": 512,
"cpu_seconds": 60,
"wall_limit_seconds": 90,
"cleanup_complete": true,
"session_cleanup_attempted": true
}
},
"limitations": [
"Dynamic scenarios were not run because this target is not authorized for them."
],
"time": "5.737 s",
"memory": "32.9 MiB"
}MONITORIZAÇÃO À SUA ESCALA
Planos de Monitorização Comercial
Proposta comercial ilustrativa. As capacidades executadas são as registadas no diagnóstico.
Plano Gratuito de Teste
$0
Ideal para explorar os cinco exemplos locais e conhecer o painel.
- Leitura Básica de Bytecode
- Acesso estrito aos 5 exemplos locais da cache
- Limitação de 3 Scans diários por IP
Plano Trader / Growth
$49/mês
Análises pontuais para acompanhar os contratos da sua estratégia.
- Auditoria Ativa de Qualquer Contrato DeFi
- Simulação EVM em Tempo Real via Alchemy
- Plafond Limitado a 20 Scans Manuais/mês
- Sem Monitorização Contínua 24/7
Plano Sentinela Pro
$249/mês
Diagnósticos, histórico e relatórios num único espaço de trabalho.
- Desbloqueio Total sem Limites Manuais
- Monitorização Contínua e Alertas de Rede 24/7
- Isolamento de Heap RAM (~33 MiB estáveis)*
- Exportação Ilimitada de Relatórios PDF Forenses
Plano Enterprise
Custom
Uma proposta adaptada às necessidades da sua equipa.
- Mapeamento Deep PC EVM (Resolver N34)
- Chave de API de Alta Velocidade Dedicada
- Nós RPC Dedicados da Alchemy
- Varreduras e Alertas Ilimitados
* Cerca de 33 MiB foram medidos em workers de callback; não constituem um teto universal. N34 permanece OPEN. Este protótipo não provisiona planos, APIs ou nós RPC. PayPal apenas em Sandbox: pagamentos de teste únicos, sem renovação mensal automática. É necessário login e configuração Sandbox; não há cobrança real. Contacto comercial ainda não disponível.