Pergunta

Esta questão está relacionada com a minha anterior .

Você pode explicar ou fornecer um link para uma explicação de como o código Excel VBA proteção de senha realmente funciona em versões anteriores a 2007? Qual é a diferença no Excel 2007 e versões anteriores em termos de proteção de senha?

Também faz a proteção de senha do Excel realmente criptografar o código? Como o Excel executar o código se ele é criptografado?

Por fim, como é que software de remoção de senha para o trabalho excel?

Foi útil?

Solução

segurança

VBA é amplamente considerado como sendo muito pobre. O código VBA não é compilado, ea fonte está disponível no arquivo excel. A proteção por senha é muito fácil de contornar.

Pelo que entendi, Office 2003 e anteriores salva o código VBA como parte do formato binário da planilha (ou documento / apresentação). Quando você fogo até o VBA IDE, ele simplesmente olha para ver se o código VBA foi "protegido" ou não. Isso não significa que ele é criptografado - apenas disponível para visualização. A teoria é que isso interrompe seus usuários contra a intromissão com o seu código, mas um codificador hard-core seria capaz de contornar a senha.

Assim Excel não precisa descriptografar qualquer código -. Ele só precisa impedir que as pessoas vê-lo

Office 2007 faz criptografar macros (não me pergunte como ou o algoritmo). Isso é necessário, presumivelmente porque os arquivos xlsm (ou qualquer arquivo Office 2007) são apenas arquivos zip com uma extensão diferente. Qualquer um pode entrar nesses arquivos e bisbilhotar.

Para responder à sua última pergunta - como faz o trabalho de remoção de senha no mais velhos formatos do Office, eu não sou inteiramente certo. Diferentes fornecedores possivelmente irá abordar as maneiras problema diferente, mas eu suspeito que a abordagem mais comum será um ataque de força bruta nas senhas até que uma correspondência seja encontrada.

O objeto Excel VBProject tem uma propriedade de proteção que retornará enumerações diferentes, dependendo do status de proteção da macro (vbext_pp_locked se a macro é protegido, por exemplo). Se você tivesse que continuar tentando senhas programaticamente até o vbext_pp_locked avaliado como false, você teria encontrado a sua senha.

Outras dicas

Phil está correto - a senha de impedi-lo de olhar para os módulos, eles não são criptografados si. Eu sei que no Excel 2007 um arquivo é essencialmente uma coleção zipada de XML e outros arquivos, mas eu não sei os detalhes de como criptografia é tratado. Para versões anteriores - excel 2, 3, 4, 5, 95, 97, 2000, XP, e 2003, não é a abrangente OpenOffice.org de Documentação do Microsoft Excel File Format :

O formato de arquivo Excel é nomeado BIFF (Binary Interchange File Format). Ele é usado para armazenar todos os tipos de documentos: documentos de planilha, documentos pasta de trabalho e documentos da área de trabalho. Existem diferentes versões deste formato de arquivo, dependendo da versão do Excel que tem escrito o arquivo, e, dependendo do tipo de documento.

Um documento pasta de trabalho com várias folhas (BIFF5-BIFF8) é normalmente armazenado usando o formato de arquivo de documento composto (também conhecido como “formato de armazenamento OLE2 arquivo” ou “Microsoft Office formato de arquivo de armazenamento compatível”). Ele contém vários fluxos para diferentes tipos de dados. A documentação completa do formato de ficheiros de documentos compostos pode ser encontrada aqui .

A Proteção Bloco livro ocorre logo após o bloco DEFINEDNAME (isto é, intervalos nomeados) na maioria dos fluxos BIFF, embora BIFF8 é uma ruptura importante com esse padrão. O bloco de protecção registo Nos Biff5 - BIFF8 a estrutura da Proteção Bloco livro:

  • configurações WINDOWPROTECT Janela: 1 = protegido
  • proteger o conteúdo da pasta de trabalho: 1 = protegido
  • valor hash de senha da senha; 0 = nenhuma senha
  • PROT4REV Shared pasta de trabalho: 1 = protegido
  • PROT4REVPASS valor hash da senha compartilhada; 0 = nenhuma senha

O bloco lojas de senha um valor hash de 16 bits, calculados a partir da senha planilha ou proteção pasta de trabalho.

Alguém fez um código VBA de trabalho que altera a senha de proteção VBA para "macro", para todos os arquivos do Excel, incluindo .xlsm (2007+ versões). Você pode ver como ele funciona, navegando seu código.

Aqui está o cara blog: http: // lbeliarl .blogspot.com / 2014/03 / excel-removendo-password-de-vba.html Aqui está o arquivo que faz o trabalho: https://docs.google.com/file/d / 0B6sFi5sSqEKbLUIwUTVhY3lWZE0 / editar

colado a partir de um post anterior de seu blog:

Para Excel 2007/2010 arquivos (.xlsm) que os seguintes passos:

  1. Crie um novo arquivo .xlsm.
  2. Na parte VBA, defina uma senha simples (por exemplo, 'macro').
  3. Salve o arquivo e saia.
  4. arquivo Mudança extensão para '.zip', abri-lo por qualquer programa de arquivador.
  5. Localize o arquivo:. 'VbaProject.bin' (na pasta 'xl')
  6. extraí-lo do arquivo.
  7. Abra o arquivo que você acabou extraído com um editor hexadecimal.
  8. Localizar e copiar o valor do parâmetro DPB (valor em aspas), exemplo: DPB = "282A84CBA1CBA1345FCCB154E20721DE77F7D2378D0EAC90427A22021A46E9CE6F17188A". (Este valor gerado para password 'macro'. Você pode usar esse valor DPB pular etapas 1-8)

  9. Siga os passos 4-7 para arquivo com senha desconhecida (arquivo que deseja desbloquear).

  10. valor Mudança DBP neste arquivo sobre o valor que você copiou na etapa 8.

    Se o valor copiado é mais curto do que no arquivo criptografado que você deve preencher caracteres em falta com 0 (zero). Se o valor for maior -. Que não é um problema (colá-lo como é)

  11. arquivo e sair Salvar o 'vbaProject.bin' do editor hex.

  12. Substituir arquivo existente 'vbaProject.bin' com um modificado.
  13. Alterar extensão de '.zip' de volta para '.xlsm'
  14. Agora, abra o arquivo excel que você precisa para ver o código do VBA. A senha para o código VBA será simplesmente macro (como no exemplo que estou mostrando aqui).
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top