Você está na página 1de 20

15/03/2022 04:08 Segurança – Quebrando senhas de projetos VBA do Microsoft Office | Tomás Vásquez – Blog

SEGURANÇA, VBA

SEGURANÇA – QUEBRANDO SENHAS DE


PROJETOS VBA DO MICROSOFT OFFICE
15 15UTC SEPTEMBER 15UTC 2008 | TOMÁS VÁSQUEZ | 35 COMENTÁRIOS

Essa é uma informação um pouco perigosa, devo admitir. Ela compromete uma série de desenvolve-
dores de aplicativos baseados em VBA, principalmente no contexto de produto.

Mas como considero isso mais uma “falha” do que um “macete”, publicarei aqui a informação para re-
gistro e possíveis providências.

O lado bom
Os desenvolvedores VBA recorrem geralmente à proteção de seus projetos pelo mecanismo de pro-
teção padrão oferecido pelo editor. Clicando com o botão direito sobre o projeto, selecione o opção
VBAProject Properties (Propriedades do Projeto VBA):

Privacidade e cookies: Esse site utiliza cookies. Ao continuar a usar este site, você concorda com seu uso.

Para saber mais, inclusive sobre como controlar os cookies, consulte aqui:
Política de cookies
1ª MENSALIDADE
A PARTIR DE

59
Fechar e aceitar
r$

https://www.tomasvasquez.com.br/blog/microsoft-office/vba/seguranca-quebrando-senhas-de-projetos-vba-do-microsoft-office/ 1/20
15/03/2022 04:08 Segurança – Quebrando senhas de projetos VBA do Microsoft Office | Tomás Vásquez – Blog

A seguinte janela será mostrada após a seleção da aba Protection (Proteção):

Até aqui é o tradicional. Basta informar a senha nos dois campos e travar o projeto para visualização
(lock project for viewing) que teremos nosso projeto VBA bloqueado para visualização e edição na
próxima vez em que o arquivo for aberto.

O lado mau
Qualquer veterano na linguagem VBA sabe que existem uma série de programas que “quebram” as
senhas destes projetos. Na verdade eles a sobrescrevem de alguma forma. O resultado é que os pro-
jetos, mesmo protegidos por senha ficam vulneráveis.

Geralmente estes softwares usam de artimanhas que vão desde a força bruta (tentativa e erro) ou
eles entram mesmo no âmago do arquivo mexem no que não devem, substituindo assim a o dado
devido.

Privacidade e cookies: Esse site utiliza cookies. Ao continuar a usar este site, você concorda com seu uso.

Para saber mais, inclusive sobre como controlar os cookies, consulte aqui:
Política de cookies
1ª MENSALIDADE
A PARTIR DE

59
Fechar e aceitar
r$

https://www.tomasvasquez.com.br/blog/microsoft-office/vba/seguranca-quebrando-senhas-de-projetos-vba-do-microsoft-office/ 2/20
15/03/2022 04:08 Segurança – Quebrando senhas de projetos VBA do Microsoft Office | Tomás Vásquez – Blog

Esses softwares são pagos na maioria das vezes, o que pelo menos caracteriza um pouco de profissio-
nalismo por parte de seus fabricantes.

Concordo que em alguns casos existe o esquecimento por parte do autor, mas diria que este são a mi-
noria. Geralmente alguém que tem conhecimento em VBA suficiente para construir um projeto que
precisa ser protegido por senha, costuma ser organizado com este tipo de coisa. Temos uma outra
situação onde empresas geralmente sofrem com funcionários de má fé que vão embora e largam ar-
quivos bloqueados.

Estes são os únicos casos em que vejo necessidade da existência deste tipo de aplicativo, pois trata-
se de cuidar da propriedade intectual do proprietário do código fonte.

Tirando isso, o resto pode ser caracterizado como violação de propriedade.

Bom, posto isso, vem aí a má notícia.

Privacidade e cookies: Esse site utiliza cookies. Ao continuar a usar este site, você concorda com seu uso.

Quebrando o projeto
Para saber mais, inclusive VBAos cookies, consulte1ªaqui:
Política
sobre como controlar
MENSALIDADE
de cookies

A PARTIR DE

59
É um pouco assustador, mas vamos lá. r$ Fechar e aceitar

https://www.tomasvasquez.com.br/blog/microsoft-office/vba/seguranca-quebrando-senhas-de-projetos-vba-do-microsoft-office/ 3/20
15/03/2022 04:08 Segurança – Quebrando senhas de projetos VBA do Microsoft Office | Tomás Vásquez – Blog

Para ter acesso ao código de um projeto VBA, é fácil e barato. Basta baixar o Open Office neste
endereço:

http://www.broffice.org/download

Para quem não sabe, o Open Office é uma suíte de aplicativos de escritório concorrente do Microsoft
Office, assim como o Star Office. Não vou discutir as capacidades do Open Office, além da impor-
tante característica que ele possui de também ter disponível um suíte de programação muito seme-
lhante ao VBA, também baseada no Visual Basic, capaz de construir aplicações da mesma forma.

Quando você abre um arquivo do Excel ou Word no aplicativos respectivos no Open Office (Calc e
Writer), você tem acesso a todo o conteúdo do arquivo da mesma forma, bem como a todo o projeto
VBA, incluindo módulos e formulários.

Muito bem, isso tudo é muito bom pois significa uma compatibilidade quase que universal entre ar-
quivos e aplicativos. Com isso não seria necessário conversões na hora de trocar arquivos com ou-
tros sistemas.

O problema é que o Open Office abre o projeto em VBA, mesmo que ele esteja protegido por senha.

isso dá a qualquer um acesso completo a todo o código do projeto.

Não há como demonstrar isso aqui, mas para testar:

crie um novo arquivo no Excel ou Word


abra o VBA
adicione alguns módulos e formulários
adicione alguns controles a estes formulários e alguns códigos simples
Privacidade e cookies: Esse site utiliza cookies. Ao continuar a usar este site, você concorda com seu uso.

depois
Para disso,
saber protejasobre
mais, inclusive o projeto com senha
como controlar e bloqueie-o
os cookies, para visualização
consulte aqui:
Política de cookies (como mostrado acima)
1ª MENSALIDADE
salve e feche o arquivo A PARTIR DE

59
Fechar e aceitar
r$

https://www.tomasvasquez.com.br/blog/microsoft-office/vba/seguranca-quebrando-senhas-de-projetos-vba-do-microsoft-office/ 4/20
15/03/2022 04:08 Segurança – Quebrando senhas de projetos VBA do Microsoft Office | Tomás Vásquez – Blog

abra-o novamente no Microsoft Office para certificar-se de que o projeto está mesmo bloqueado
para visualização
após certificar-se, abra o Open Office Calc para abrir o arquivo de Excel ou o Open Office Calc
para o abrir o arquivo do Word
através do menu ferramentas, abra a tela de macros e selecione um objeto do projeto VBA e cli-
que em editar para visualizar o código

Seguindo estes passos fica provado o fato do acesso extremamente facilitado ao projeto VBA através
de um software livre e gratuito.

Conclusões e comentários
Contra a tecnologia não há nada que se possa fazer. Pelo menos com aquilo que veio da tecnologia.

Não dá para saber de quem é a culpa, se é que há algum culpado nesta história.

Da Microsoft por não promover um esquema de segurança mais eficaz?

Da fundação Open Office por não respeitar o esquema de segurança promovido pelo Microsoft
Office?

Eu tenho minha opinião. Fica aqui o protesto pelo fato e o agradecimento a blogosfera por permitir
descobrir e divulgar a informação.

Abraços

Tomás
Privacidade e cookies: Esse site utiliza cookies. Ao continuar a usar este site, você concorda com seu uso.

ParaISSO:
CURTIR saber mais, inclusive sobre como controlar os cookies, consulte aqui:
Política de cookies
1ª MENSALIDADE
A PARTIR DE

59
Carregando... Fechar e aceitar
r$

https://www.tomasvasquez.com.br/blog/microsoft-office/vba/seguranca-quebrando-senhas-de-projetos-vba-do-microsoft-office/ 5/20
15/03/2022 04:08 Segurança – Quebrando senhas de projetos VBA do Microsoft Office | Tomás Vásquez – Blog

Comentários
1 comentários

QUEBRAR SEGURANÇA SENHAS VBA

35 COMENTÁRIOS EM “SEGURANÇA – QUEBRANDO SENHAS DE PROJETOS VBA DO


MICROSOFT OFFICE”

Augusto
22 22UTC DECEMBER 22UTC 2008 ÀS 09:49 09MON, 22 DEC 2008 09:49:06 +000006.
Privacidade e cookies: Esse site utiliza cookies. Ao continuar a usar este site, você concorda com seu uso.

Olá!

Para saber mais, inclusive sobre como controlar os cookies, consulte aqui:
Política de cookies
1ª MENSALIDADE
Achei muito interessante seus comentários, gotaria de saber existe algum software que desco-
A PARTIR DE

59
bra a senha do projeto visual basic do Access. Você pode me ajudar? Fechar e aceitar
r$

https://www.tomasvasquez.com.br/blog/microsoft-office/vba/seguranca-quebrando-senhas-de-projetos-vba-do-microsoft-office/ 6/20
15/03/2022 04:08 Segurança – Quebrando senhas de projetos VBA do Microsoft Office | Tomás Vásquez – Blog

Grato,

Augusto.

 Tomás Vásquez
22 22UTC DECEMBER 22UTC 2008 ÀS 09:58 09MON, 22 DEC 2008 09:58:25 +000025.

Augusto,

Dê uma olhada nisto:

https://www.tomasvasquez.com.br/blog/microsoft-office/recupere-senhas-perdidas-ou-esque-
cidas-para-aplicativos-do-microsoft-office

Abraços

Tomás

Augusto
22 22UTC DECEMBER 22UTC 2008 ÀS 10:47 10MON, 22 DEC 2008 10:47:48 +000048.

Ok, Tomás.

Obrigado pela dica.

Augusto.

julipegassis
10 10UTC JANUARY 10UTC 2009 ÀS 12:15 12SAT, 10 JAN 2009 12:15:10 +000010.

Achei interessante, e bem explicado mas postei estas informações a um tempo na internet e não
se encontra disponível…

Muito boa sua colocação

Mateus Lana
21 21UTC MAY 21UTC 2009 ÀS 13:34 01THU, 21 MAY 2009 13:34:10 +000010.

Certo, agora e como faço pra quebrar a senha de um suplemento, como o Solver, que ficam lá no
Project Explorer? Você poderia me ajudar?

Privacidade
 TomáseVásquez
cookies: Esse site utiliza cookies. Ao continuar a usar este site, você concorda com seu uso.

Para saber mais, inclusive sobre como controlar os cookies, consulte aqui:
Política de cookies
21 21UTC MAY 21UTC 2009 ÀS 15:01 03THU, 21 MAY 2009 15:01:50 1ª MENSALIDADE
+000050.
A PARTIR DE
Mateus,
59
Fechar e aceitar
r$

https://www.tomasvasquez.com.br/blog/microsoft-office/vba/seguranca-quebrando-senhas-de-projetos-vba-do-microsoft-office/ 7/20
15/03/2022 04:08 Segurança – Quebrando senhas de projetos VBA do Microsoft Office | Tomás Vásquez – Blog

O artigo mostra uma forma de fazer a quebra de senhas, mas no intuito de fazer um protesto,
não oferecer um guia ou passo a passo de como realizar a proeza.

Fica por conta e risco. Dê uma olhada num link que já foi passado anteriormente:

https://www.tomasvasquez.com.br/blog/microsoft-office/recupere-senhas-perdidas-ou-esque-
cidas-para-aplicativos-do-microsoft-office

Abraços

Tomás

Artur
25 25UTC JUNE 25UTC 2009 ÀS 11:28 11THU, 25 JUN 2009 11:28:04 +000004.

Mateus,

Sou iniciante no VBA, e gostaria de saber, já que a modos de se quebrar essa senha.. qual a me-
lhor maneira de proteger um programa desenvolvido em VBA??

Obrigado

 Tomás Vásquez
25 25UTC JUNE 25UTC 2009 ÀS 11:42 11THU, 25 JUN 2009 11:42:24 +000024.

Artur,

Hoje em dia eu utilizo a proteção tradicional. Os leigos não se atreverão a mexer nisso e os ex-
perts não comprometerão um aplicativo desses em produção O farão por pura curiosidade.
Agora, se o código contém informações sigilosas ou uma regra muito particular, eu não faria em
VBA. Mesmo que utilizasse Excel, eu faria um aplicativo em código compilado, usando C++,
Visual Basic ou .NET. Todos estes integram facilmente com os aplicativos no Office.

No seu caso, analise o quanto é necessário proteger este projeto. Em muitos casos, vi pessoas
criarem “monstros” onde eles não existiam, compremetendo o andamento de um projeto com
um cuidade desnecessário.

Abraços

Tomás

Privacidade e cookies: Esse site utiliza cookies. Ao continuar a usar este site, você concorda com seu uso.

Para saber mais, inclusive sobre como controlar os cookies, consulte aqui:
Política de cookies
Artur 1ª MENSALIDADE
A PARTIR
25 25UTC JUNE 25UTC 2009 ÀS 19:47 07THU, 25 JUN 2009 19:47:08 DE
+000008.

59
Fechar e aceitar
r$
Tomas,
https://www.tomasvasquez.com.br/blog/microsoft-office/vba/seguranca-quebrando-senhas-de-projetos-vba-do-microsoft-office/ 8/20
15/03/2022 04:08 Segurança – Quebrando senhas de projetos VBA do Microsoft Office | Tomás Vásquez – Blog

Proteçao tradicional que vc diz é só a senha?? ou tem alguma outra coisa?? estava pesquisando e
descobri que existe um ofuscador de codigos.. mas nao achei nenhum pra VBA, vc conhece algum
free??

No meu caso tem uma regra particular ( uma rotina de calculos), mas eu uso na área academica e
quero proteger a idéia…. mas quero distribuir o software… e nao tenho familiariadade com ou-
tras linguagens

Obrigado pela ajuda

Abraço

Artur

fabio
26 26UTC JUNE 26UTC 2009 ÀS 21:39 09FRI, 26 JUN 2009 21:39:20 +000020.

é possivel usar este processo com um arquivo do ms access ? como fazer pra quebrar senha do
vba do access

 Tomás Vásquez
28 28UTC JUNE 28UTC 2009 ÀS 22:10 10SUN, 28 JUN 2009 22:10:48 +000048.

Fabio,

Não fiz o teste. Tem que haver um programa compatível. Se tiver sucesso, avise o pessoal.

Abraços

Tomás

 Tomás Vásquez
29 29UTC JUNE 29UTC 2009 ÀS 13:48 01MON, 29 JUN 2009 13:48:00 +000000.

Artur,

Sim, é só a senha. Quanto a ofuscar o código, isso não é possível no VBA pois ele não é compi-
lado. Precisa ser em alguma linguagem nativa que já citei anteriormente. Quanto a sua regra,
pense bem o quanto ela deve ser protegida. Como comentei, às vezes não vale a pena criar um
transtorno sobre algo que não deveria sê-lo. Já escrevi isso uma vez. Tente pensar da seguinte
Privacidade
forma: e cookies: Esse site utiliza cookies. Ao continuar a usar este site, você concorda com seu uso.

Para saber mais, inclusive sobre como controlar os cookies, consulte aqui:
Política de cookies
1ª MENSALIDADE
A PARTIR DE
Se você escrever em um documento a palavra “CONFIDENCIAL”, ele não chamará mais a aten-
59
Fechar e aceitar
r$
ção do que se ele não tivesse essa tarja?
https://www.tomasvasquez.com.br/blog/microsoft-office/vba/seguranca-quebrando-senhas-de-projetos-vba-do-microsoft-office/ 9/20
15/03/2022 04:08 Segurança – Quebrando senhas de projetos VBA do Microsoft Office | Tomás Vásquez – Blog

Abraços

Tomás

Paulo
03 03UTC MARCH 03UTC 2010 ÀS 15:16 03WED, 03 MAR 2010 15:16:23 +000023.

Só uma correção (por mais que seja óbvio)… o texto deveria ser:

” (…) ou o Open Office Writer para o abrir o arquivo do Word “

 Tomás Vásquez
03 03UTC MARCH 03UTC 2010 ÀS 15:48 03WED, 03 MAR 2010 15:48:29 +000029.

Opa!

Valeu a dica!

Abraços

Tomás

Alexandre
19 19UTC MAY 19UTC 2010 ÀS 09:25 09WED, 19 MAY 2010 09:25:19 +000019.

Bom dia Tomás,

Sou programador em VBA para Excel e tenho uma empresa de consultoria, desenvolvo planilhas
de custo e diversos controles financeiros, e hoje de manhã descobri através de um funcionário de
um cliente meu que você publicou esse artigo e já existe várias cópias dos meus projetos abertos
utilizando essa sua dica. Muito obrigado pela força que você me deu. Sobrevivo disso, tenho fa-
milia pra criar, passei anos estudando custo, excel, vba pra você agora esinar como quebrar a se-
nha de um projeto em vba.

 Tomás Vásquez
19 19UTC MAY 19UTC 2010 ÀS 09:59 09WED, 19 MAY 2010 09:59:19 +000019.

Alexandre,

Por favor, leia e releia o artigo. Veja minha opinião sobre o assunto. Depois, julgue a quem deve
culpar, se é que existe algum culpado nessa história. Além disso, existem outras mil formas de
Privacidade
quebraresenhas
cookies: Esse site utiliza cookies.
de projetos Ao continuarque
VBA. Acreditar a usarseus
este site, você concorda
aplicativos com seuseguros
estavam uso.
e o deixaram
Para saber mais, inclusive sobre como controlar os cookies, consulte aqui:
Política de cookies
de ser depois da publicação deste artigo seria ingenuidade 1ª MENSALIDADEprofissional.
A PARTIR DE

59
Fechar e aceitar
r$

https://www.tomasvasquez.com.br/blog/microsoft-office/vba/seguranca-quebrando-senhas-de-projetos-vba-do-microsoft-office/ 10/20
15/03/2022 04:08 Segurança – Quebrando senhas de projetos VBA do Microsoft Office | Tomás Vásquez – Blog

Um conselho: Como também consultor independente em VBA e outras tecnologias, preferi criar
outros meios de comercialização de meus aplicativos ao invés de colocar a culpa em alguém.

Abraços e sucesso

Tomás

Alexandre Nascimento
08 08UTC JUNE 08UTC 2010 ÀS 13:47 01TUE, 08 JUN 2010 13:47:21 +000021.

Sem dúvidas o artigo é muito interessante e importante, porque precisamos conhecer essas vul-
nerabilidades a fim de nos precavermos da melhor forma possível.

É óbvio que achar que o mundo desabou depois deste post é uma grande bobagem, até onde eu
sei, não foi o dono do blog que desenvolveu nem o MS Excel nem o Open Office. Se for pra culpar
alguém, pode começar a correr atrás da MS ou da BROffice…

Jhon
18 18UTC JUNE 18UTC 2010 ÀS 21:35 09FRI, 18 JUN 2010 21:35:02 +000002.

Alexandre, você pode começar a estudar outras formas de ganhar dinheiro com seus custos em
planilhas excel, é uma mera ferramenta que usamos no dia dia em casa e de pequenos escritórios.

Seja mais profissional, estude mais um pouquinho que você faz um sistema só seu e ninguém vai
mais te atormentar,

com notícias de vunerabilidades, todo mundo sabe que office é coisa de primário, seja profissio-
nal faça algo compilado. existe várias plataformas e linguagens para desenvolver esses tipos de
projetos da tua area velho!!!!

e mais outra, Tu vai fazer entrevista de um novo emprego e tu diz que é programador de Excel,
vão rir na sua cara

Corra que ainda há tempo!

 Tomás Vásquez
18 18UTC JUNE 18UTC 2010 ÀS 22:18 10FRI, 18 JUN 2010 22:18:28 +000028.

Jhon,

Agradeço a colaboração. Concordo com a parte do Alexandre profissionalizar o serviço. Mas


quanto a achar que o Excel é pouco profissional, desculpe, vou ter que discordar.

A quantidade de consultorias que existem especializadas em Excel com VBA é bastante rele-
Privacidade e cookies:
vante. Veja pelos Esse site utilizado
anúncios cookies.
site,Ao continuar
por exemplo.a usarAcompanho
este site, você concorda
também com seu uso.
com

frequência vagas de
Para saber mais, inclusive sobre como controlar os cookies, consulte aqui:
Política de cookies
emprego e a procura por analistas VBA ainda é grande, principalmente (pasmem) em bancos.
1ª MENSALIDADE
A PARTIR DE

59
Fechar e aceitar
r$

https://www.tomasvasquez.com.br/blog/microsoft-office/vba/seguranca-quebrando-senhas-de-projetos-vba-do-microsoft-office/ 11/20
15/03/2022 04:08 Segurança – Quebrando senhas de projetos VBA do Microsoft Office | Tomás Vásquez – Blog

Concordo que é mais seguro desenvolver sistemas compilados, mas o mesmo pode ser feito utili-
zando o Office.

Da mesma forma que fez com o colega, recomendo que corra atrás disso.

Outra coisa. Se não tem coragem de se identificar, por favor, fique calado.

Abraços

rogerio dos santos ferreira


26 26UTC JUNE 26UTC 2010 ÀS 11:21 11SAT, 26 JUN 2010 11:21:40 +000040.

Olá Prof. Tomás,

eu assim como muito trabalho a anos com Excel e iniciei minhas planilhas utilizando VBA.

Já sabia de códigos que tiravam a senhas das planilhas e do próprio BROffice pra acesso às plani-
lhas e códigos. O que me desanimou muito.

Assim peço algumas dicas de criar um DLL (se for esse o caso) para acesso pelo Excel, como com-
plemento e conseqüente “proteção” do código.

Agradeço desde já qualquer retorno.

Atenciosamente,

Rogério dos Santos Ferreira

 Tomás Vásquez
29 29UTC JUNE 29UTC 2010 ÀS 14:02 02TUE, 29 JUN 2010 14:02:17 +000017.

Rogerio,

As alternativas são linguagens compiladas. VB6, C++ ou .NET seriam as alternativas mais reco-
mendadas. Mas aí é uma conversa mais longa. Podemos falar no fórum:

http://www.tomasvasquez.com.br/forum

Nos vemos lá!

Thiago
06 06UTC JULY 06UTC 2010 ÀS 19:29 07TUE, 06 JUL 2010 19:29:13 +000013.

Olá Tomas!

Privacidade e cookies: Esse site


Fiz o procedimento utiliza cookies.
conforme indicaAo continuar a usarporém
esse artigo, este site,ele
vocênão
concorda
abriucom seu uso.
o VBA via
BrOffice. Tem
Para saber mais, inclusive sobre como controlar os cookies, consulte aqui:
Política de cookies
alguma dica além do apresentado? 1ª MENSALIDADE
A PARTIR DE

59
Fechar e aceitar
r$

https://www.tomasvasquez.com.br/blog/microsoft-office/vba/seguranca-quebrando-senhas-de-projetos-vba-do-microsoft-office/ 12/20
15/03/2022 04:08 Segurança – Quebrando senhas de projetos VBA do Microsoft Office | Tomás Vásquez – Blog

Abraço

Thiago

 Tomás Vásquez
07 07UTC JULY 07UTC 2010 ÀS 10:05 10WED, 07 JUL 2010 10:05:36 +000036.

Thiago,

Não sei quanto às versões mais novas. Tente nas que estavam vigentes na publicação deste ar-
tigo. Mas por favor, leia todas as recomendações acima sobre violação de direitos autorais, se for
este o caso.

Abraços

Tomás

Ozires
22 22UTC JULY 22UTC 2010 ÀS 09:18 09THU, 22 JUL 2010 09:18:20 +000020.

Tomás e demais leitores deste blog.

Também faço algumas planilhas em excel utilizando VBA e a proteção destas planilhas me tem
dado dor de cabeça. Também já conhecia como muitos alguns programas que tiram as senhas de
diversos tipos de arquivos, os mais variados, mas desconhecia que o broffice fizesse isso, apesar
de os ter usado por um tempo, com intuito de teste. Então agradeço o esclarecimento.

Quero também discordar de nosso amigo que acha que fazer alguns tipos de trabalho no excel
não é profissional. Quero relatar um fato que aconteceu comigo, será rápido e ilustrará bem.

Um cliente procurava um programador para criar um soft para ele executar determinada ativi-
dade, pois não existe nada parecido no mercado. Após consultar um monte de gente, que cobra-
vam caro e pediam muito tempo para entregar o programa pronto ele decidiu fechar com o cara
que prometeu entregar mais rápido, já que ele tinha uma certa pressa, quero salientar que não
era o mais barato. Após vencido o prazo dado o cara entregou uma versão para teste cheia de er-
ros e incoerências. Um colega meu conversando com ele passou meu telefone e ele entrou em
contato comigo. Meu conhecimento em programação é muito pouco, então indiquei um colega
programador que me tira algumas dúvidas de vez em quando, mas deixei claro que se ele qui-
sesse algo no excel que lhe atendesse eu faria em menos de 30 dias.

Após falar com esse meu colega programador os dois me ligaram. O colegar pra dizer que o que o
cara queria fazer era impossível de fazer tão rápido e não seria nada barato, o cliente pra me per-
guntar por quanto eu o faria. Fechei o preço com ele e entreguei o “programinha” em 20 dias
para ele fazer os primeiros testes. Após algumas correções rápidas sugeridas por ele estava
pronto, eecookies:
Privacidade a contento. Ele
Esse site o utiliza
utiliza cookies.até hoje e jáa usar
Ao continuar me este
indicou vários
site, você outros
concorda clientes.
com seu uso.

Para saber mais, inclusive sobre como controlar os cookies, consulte aqui:
Política de cookies
1ª MENSALIDADE
A PARTIR DE para todos se ao invés de você só
Voltando ao assunto principal seria muito mais interessante
59
Fechar e aceitar
r$
mostrar as falhas desse umas dicas para como melhor se proteger. Fica aqui a dica e garanto que

https://www.tomasvasquez.com.br/blog/microsoft-office/vba/seguranca-quebrando-senhas-de-projetos-vba-do-microsoft-office/ 13/20
15/03/2022 04:08 Segurança – Quebrando senhas de projetos VBA do Microsoft Office | Tomás Vásquez – Blog

será um post bem mais visitado e comentado.

Até outra oportunidade!!!

 Tomás Vásquez
22 22UTC JULY 22UTC 2010 ÀS 10:29 10THU, 22 JUL 2010 10:29:16 +000016.

Ozires,

Muitíssimo obrigado pelo seu relato. Ele com certeza é um alívio e prova de que as aplicações
VBA podem e devem ser levadas a sério. Quanto a segurança, coloco sempre dicas, comentários,
posts e tópicos no fórum sobre o assunto. Confira por exemplo estes dois:

https://www.tomasvasquez.com.br/blog/microsoft-office/vba-verificando-se-o-projeto-vbapro-
ject-esta-protegido

https://www.tomasvasquez.com.br/blog/microsoft-office/vba-excluindo-um-modulo-vba-
programaticamente

São artigos que impactam diretamente em técnicas de segurança para proteger seus projetos.
Com o tempo, outros serão produzidos. Se quiser colaborar, será um honra tê-lo como autor de
artigos.

Parabéns pelo blog!

Abraços

Tomás

White
13 13UTC NOVEMBER 13UTC 2010 ÀS 18:37 06SAT, 13 NOV 2010 18:37:56 +000056.

Bom se o BrOffice que só desprotegia o VbProject do Excel da no que falar, imagine isto aqui:

http://mbfigueredo.blogspot.com/2010/11/vou-postar-aqui-uma-coisa-que-descobri.html

 Tomás Vásquez
16 16UTC NOVEMBER 16UTC 2010 ÀS 17:00 05TUE, 16 NOV 2010 17:00:07 +000007.

Grande White,

Sempre tem um jeito, não? Apesar da maioria achar que são artimanhas para desbloquear aplica-
Privacidade e cookies:
tivos, para mim Esse
são site
mais utiliza cookies.
alertas Ao continuar
para a usar este site, você
os desenvolvedores concordaatentos
estarem com seu uso.

a essa realidade.
Para saber mais, inclusive sobre como controlar os cookies, consulte aqui:
Política de cookies
1ª MENSALIDADE
A PARTIR DE
Valeu a colaboração

59
Fechar e aceitar
r$
Abraços

https://www.tomasvasquez.com.br/blog/microsoft-office/vba/seguranca-quebrando-senhas-de-projetos-vba-do-microsoft-office/ 14/20
15/03/2022 04:08 Segurança – Quebrando senhas de projetos VBA do Microsoft Office | Tomás Vásquez – Blog

Tomás

Pingback: Blog – Os top 20 posts de 2010 | Tomás Vásquez - Blog

rbortone
05 05UTC FEBRUARY 05UTC 2011 ÀS 08:05 08SAT, 05 FEB 2011 08:05:25 +000025.

Algúem poderia descobrir porque esta rotina VBA não funciona Ela é para instalar a PLANILHA
somente em computadores identificados pelo nome …ela identifica o nome : Cole esta rotina em
um um módulo VBA e teste pela macro Sub ProgramRights

Option Explicit

Private Declare Function GetUserName Lib “advapi32.dll” _

Alias “GetUserNameA” (ByVal lpBuffer As String, nSize As Long) As Long

Private Declare Function GetComputerName Lib “kernel32” Alias _

“GetComputerNameA” (ByVal lpBuffer As String, ByRef nSize As Long) As Long

Private Declare Function lOpen Lib “kernel32” Alias “_lopen” _

(ByVal lpPathName As String, ByVal iReadWrite As Long) As Long

Private Declare Function lClose Lib “kernel32” _

Alias “_lclose” (ByVal hFile As Long) As Long

Private Declare Function DisplaySize Lib “user32” Alias _

“GetSystemMetrics” (ByVal nIndex As Long) As Long

Private Declare Function FindWindow Lib “user32” Alias “FindWindowA” _

(ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Declare Function GetSystemMenu Lib “user32” _

(ByVal hwnd As Long, ByVal bRevert As Long) As Long

Private Const SC_CLOSE As Long = &HF060

Private Const OF_SHARE_EXCLUSIVE = &H10

Private Const SM_CXSCREEN = 0

Private Const SM_CYSCREEN = 1

Sub ComputerCheck()

Dim CompName As String

CompName = ComputerName

‘ If CompName “W7-NOT” Then

‘ MsgBox “This application does not have the right to run on this computer.”

‘ ActiveWorkbook.Close
Privacidade SaveChanges:=False

e cookies: Esse site utiliza cookies. Ao continuar a usar este site, você concorda com seu uso.

Para saber mais, inclusive sobre como controlar os cookies, consulte aqui:
Política de cookies
‘ End If 1ª MENSALIDADE
MsgBox Prompt:=CompName, Buttons:=vbOKOnly,A PARTIR DE
Title:=”Computador Nome”

59
Fechar e aceitar
r$
End Sub

https://www.tomasvasquez.com.br/blog/microsoft-office/vba/seguranca-quebrando-senhas-de-projetos-vba-do-microsoft-office/ 15/20
15/03/2022 04:08 Segurança – Quebrando senhas de projetos VBA do Microsoft Office | Tomás Vásquez – Blog

Private Function UserName() As String

Dim sName As String * 256

Dim cChars As Long

cChars = 256

If GetUserName(sName, cChars) Then

UserName = Left$(sName, cChars – 1)

End If

End Function

Sub ProgramRights()

Dim NameofUser As String

NameofUser = UserName

Select Case NameofUser

Case Is = “W7-NOT”

MsgBox “Planilha LIberada pra este Computador”

Case Else

MsgBox “Planilha NÃO Liberada para este Computador”

End Select
ThisWorkbook.Close SaveChanges:=False

End Sub

Private Function ComputerName() As String

Dim stBuff As String * 255, lAPIResult As Long

Dim lBuffLen As Long

lBuffLen = 255

lAPIResult = GetComputerName(stBuff, lBuffLen)

If lBuffLen > 0 Then ComputerName = Left(stBuff, lBuffLen)

End Function

Se alguém descrobrir como fazê-la funcionar e publicar ai no blog, ficarei grato

 Tomás Vásquez
05 05UTC FEBRUARY 05UTC 2011 ÀS 08:54 08SAT, 05 FEB 2011 08:54:07 +000007.

Colega,

O melhor
Privacidade lugar para
e cookies: esta
Esse site dúvida
utiliza é Ao
cookies. nocontinuar
nosso fórum:
a usar este site, você concorda com seu uso.

Para saber mais, inclusive sobre como controlar os cookies, consulte aqui:
Política de cookies
1ª MENSALIDADE
http://www.tomasvasquez.com.br/forum A PARTIR DE

59
Fechar e aceitar
r$

https://www.tomasvasquez.com.br/blog/microsoft-office/vba/seguranca-quebrando-senhas-de-projetos-vba-do-microsoft-office/ 16/20
15/03/2022 04:08 Segurança – Quebrando senhas de projetos VBA do Microsoft Office | Tomás Vásquez – Blog

Nos vemos lá!

Abraços

Tomás

brunoclc
07 07UTC MARCH 07UTC 2011 ÀS 01:50 01MON, 07 MAR 2011 01:50:46 +000046.

rbortone

Por destino ou conhecidência, o seu codigo era o que eu estava procurando… e como eu uso o
Excel x64 tive q adpatar o código mas, o que aconteceu aqui foi o seguinte, todas as “(aspas) e
‘(apostrofes) tiveram q ser substituidos, pois estavam em um padrão diferente do VBA e a string
“ThisWorkbook.Close SaveChanges:=False” da SUB programRights deve vir abaixo do evento
“Case Else” assim:

Sub ProgramRights()

Dim NameofUser As String

NameofUser = UserName

Select Case NameofUser

Case Is = “Bruno”

MsgBox “Planilha LIberada pra este Computador”

Case Else

MsgBox “Planilha NÃO Liberada para este Computador”

ThisWorkbook.Close SaveChanges:=False

End Select

End Sub

Caso contrário o arquivo fecha do mesmo jeito.

e para liberar basta colocar o nome do usuario (não do computador) na string Case Is = “NOME
DO USUARIO”.

Mas ainda sim é muito falho, cada usuario tem uma identifição unica, uma chave no registro do
tipo {A658-H545……} mas como só tenho um mes em VBA ainda não sei como acessar tal chave e
compará-la.

Se alguem quiser dar um Help o Local da Chave é:

HKEY_CURRENT_USER\Identities\

Privacidade e cookies: Esse site utiliza cookies. Ao continuar a usar este site, você concorda com seu uso.

Para saber mais, inclusive sobre como controlar os cookies, consulte aqui:
Política de cookies
Chave: Default UserID 1ª MENSALIDADE
A PARTIR DE

59
Fechar e aceitar
r$
Tomás, irei postar no forum mas como tá tarde, ou cedo, posto quando acordar!

https://www.tomasvasquez.com.br/blog/microsoft-office/vba/seguranca-quebrando-senhas-de-projetos-vba-do-microsoft-office/ 17/20
15/03/2022 04:08 Segurança – Quebrando senhas de projetos VBA do Microsoft Office | Tomás Vásquez – Blog

O Codigo completo com algumas melhorias tanto x86 como x64:

Option Explicit

Private Declare PtrSafe Function GetUserName Lib “advapi32.dll” _

Alias “GetUserNameA” (ByVal lpBuffer As String, nSize As Long) As Long

Private Declare PtrSafe Function GetComputerName Lib “kernel32” Alias _

“GetComputerNameA” (ByVal lpBuffer As String, ByRef nSize As Long) As Long

Private Declare PtrSafe Function lOpen Lib “kernel32” Alias “_lopen” _

(ByVal lpPathName As String, ByVal iReadWrite As Long) As Long

Private Declare PtrSafe Function lClose Lib “kernel32” _

Alias “_lclose” (ByVal hFile As Long) As Long

Private Declare PtrSafe Function DisplaySize Lib “user32” Alias _

“GetSystemMetrics” (ByVal nIndex As Long) As Long

Private Declare PtrSafe Function FindWindow Lib “user32” Alias “FindWindowA” _

(ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Declare PtrSafe Function GetSystemMenu Lib “user32” _

(ByVal hwnd As Long, ByVal bRevert As Long) As Long

Private Const SC_CLOSE As Long = &HF060

Private Const OF_SHARE_EXCLUSIVE = &H10

Private Const SM_CXSCREEN = 0

Private Const SM_CYSCREEN = 1

Sub ComputerCheck()

Dim CompName As String

Dim UsrName As String

Dim Usuario As String

Usuario = Usuario:

CompName = ComputerName

UsrName = UserName

‘ If CompName “W7-NOT” Then

‘ MsgBox “This application does not have the right to run on this computer.”

‘ ActiveWorkbook.Close
Privacidade SaveChanges:=False

e cookies: Esse site utiliza cookies. Ao continuar a usar este site, você concorda com seu uso.

Para saber mais, inclusive sobre como controlar os cookies, consulte aqui:
Política de cookies
‘ End If 1ª MENSALIDADE
MsgBox Prompt:=CompName & vbCrLf & UsrName,A PARTIR DE
Buttons:=vbOKOnly, Title:=”Nome do

59
Fechar e aceitar
Computador”

r$

https://www.tomasvasquez.com.br/blog/microsoft-office/vba/seguranca-quebrando-senhas-de-projetos-vba-do-microsoft-office/ 18/20
15/03/2022 04:08 Segurança – Quebrando senhas de projetos VBA do Microsoft Office | Tomás Vásquez – Blog

End Sub

Private Function UserName() As String

Dim sName As String * 256

Dim cChars As Long

cChars = 256

If GetUserName(sName, cChars) Then

UserName = Left$(sName, cChars – 1)

End If

End Function

Sub ProgramRights()

Dim NameofUser As String

NameofUser = UserName

Select Case NameofUser

Case Is = “Bruno”

MsgBox “Planilha LIberada pra este Computador”

Case Else

MsgBox “Planilha NÃO Liberada para este Computador”

ThisWorkbook.Close SaveChanges:=False

End Select

End Sub

Private Function ComputerName() As String

Dim stBuff As String * 255, lAPIResult As Long

Dim lBuffLen As Long

lBuffLen = 255

lAPIResult = GetComputerName(stBuff, lBuffLen)

If lBuffLen > 0 Then ComputerName = Left(stBuff, lBuffLen)

End Function

WesleyRufino
21 21UTC JANUARY 21UTC 2012 ÀS 11:07 11SAT, 21 JAN 2012 11:07:04 +000004.

A senha do projeto VBA podem ser removidas com um editor hexadecimal. Feche o livro e abra o
arquivo pasta de trabalho no editor hexadecimal. Encontrar a string “DPB” e mude para “DPX”.
Salve o arquivo. Abra o livro e clique em OK até que a pasta de trabalho está aberto (uma ou
mais caixas de diálogo são exibidas descrevendo vários problemas com o projeto VBA).
Pressione ALT + F11, escolha o menu Ferramentas-> comando Propriedades VBAProject, nave-
gue até a guia Proteção, e alterar a senha, mas não removê-lo (note a nova senha). Salve, feche e
abra novamente a pasta de trabalho. Pressione ALT + F11 e digite a nova senha. Escolha
Ferramentas->
Privacidade e cookies: Propriedades VBAProject,
Esse site utiliza cookies. navegue
Ao continuar a usar esteaté
site,avocê
guia Proteção
concorda e remover
com seu uso.
a senha.
Para saber mais, inclusive sobre como controlar os cookies, consulte aqui:
Política de cookies
Guarde o livro. 1ª MENSALIDADE
A PARTIR DE

59
Fechar e aceitar
r$

https://www.tomasvasquez.com.br/blog/microsoft-office/vba/seguranca-quebrando-senhas-de-projetos-vba-do-microsoft-office/ 19/20
15/03/2022 04:08 Segurança – Quebrando senhas de projetos VBA do Microsoft Office | Tomás Vásquez – Blog

 Tomás Vásquez
21 21UTC JANUARY 21UTC 2012 ÀS 16:05 04SAT, 21 JAN 2012 16:05:57 +000057.

Olá Wesley,

Excelente dica! Obrigado por compartilhar!

Abraços

Tomás

donizeth
10 10UTC SEPTEMBER 10UTC 2012 ÀS 11:34 11MON, 10 SEP 2012 11:34:14 +000014.

É possível quebrar senha de abertura de banco de dados em access 2010? O BD está com tabe-
las desvinculadas.

 Tomás Vásquez
10 10UTC SEPTEMBER 10UTC 2012 ÀS 14:38 02MON, 10 SEP 2012 14:38:20 +000020.

Provavelmente é, mas não é o assunto do artigo, certo?

OS COMENTÁRIOS ESTÃO FECHADOS.

Privacidade e cookies: Esse site utiliza cookies. Ao continuar a usar este site, você concorda com seu uso.

Para saber mais, inclusive sobre como controlar os cookies, consulte aqui:
Política de cookies
1ª MENSALIDADE
A PARTIR DE

59
Fechar e aceitar
r$

https://www.tomasvasquez.com.br/blog/microsoft-office/vba/seguranca-quebrando-senhas-de-projetos-vba-do-microsoft-office/ 20/20

Você também pode gostar