CPL (formato)

Origem: Wikipédia, a enciclopédia livre.
Control Panel Applet
Extensão do arquivo .cpl
MIME application/x-dosexec
Número mágico MZ
Desenvolvido por Microsoft
Variante de DLL

No sistema operacional Windows, a extensão CPL é atribuída aos Control Panel Applets, que são miniaplicativos utilizados pelo Painel de Controle, introduzidos no Windows 3.x, mas ainda utilizados em versões atuais como o Windows 7. O Painel de Controle carrega estes miniaplicativos e exibe ícones para que estes sejam acessados facilmente.

Estrutura[editar | editar código-fonte]

Um arquivo CPL é uma DLL (biblioteca de vínculo dinâmico) ou um EXE[1] e por isso herda toda a estrutura já definida para o formato PE. A diferença mais notável é que os CPL normalmente possuem somente uma função exportada chamada CPlApplet()[2], enquanto as DLL em geral possuem várias funções exportadas (disponíveis para serem chamadas a partir de outro programa).

Execução[editar | editar código-fonte]

Quando a janela do Painel de Controle é aberta, todos os arquivos CPL na pasta de sistema do Windows são lidos e seus applets são carregados e exibidos na janela do Painel de Controle. Cada arquivo CPL pode conter um ou mais applets. É possível verificar isso com os métodos de execução abaixo:

Usando o control.exe[editar | editar código-fonte]

O programa control.exe (que carrega o Painel de Controle) utiliza a seguinte sintaxe para carregar applets CPL:


control.exe arquivo.cpl,@n,t


Onde n é o índice do applet dentro do arquivo, começando em 0 (zero) e t é o índice da aba deste applet, para applets com mais de uma aba, também começando em 0 (zero). Por exemplo, para carregar o primeiro applet do arquivo main.cpl posicionado na primeira aba, pode-se comandar:

C:\> control main.cpl,@0,0


Para ver a segunda aba deste mesmo applet, basta:


C:\> control desk.cpl,@0,1


Já para ver o segundo applet:


C:\> control main.cpl,@1,0


Caso o índice de applet ou aba seja inválido ou omitido, o Windows busca o applet padrão do arquivo e o exibe sem emitir erros.

Utilizando a função Control_RunDLL[editar | editar código-fonte]

Há ainda a possibilidade de se executar um arquivo CPL utilizando diretamente uma função da shell32.dll chamada Control_RunDLL. Este é o método que o Windows utiliza internamente e também é o que ocorre quando é dado um duplo-clique num arquivo CPL. Exemplo:


C:\> rundll32 shell32.dll,Control_RunDLL timedate.cpl,@0,0


O comando acima abre as propriedades de data e hora do Windows diretamente. Por ter essa característica, arquivos CPL podem ser executados diretamente no sistema operacional, bastando para isso um duplo-clique neles. Sendo assim, o efeito é similar aos arquivos EXE e à essa característica se deve a fama de que arquivos CPL são "DLLs que executam com dois cliques".

Utilizando o objeto Shell.Application[editar | editar código-fonte]

Um script em VBScript ou JScript pode carregar um CPL através do método ControlPanelItem() de um objeto Shell.Application. O código abaixo carrega o applet de configuração de joysticks:


VBScript
Dim obj
Set obj = CreateObject("Shell.Application")
obj.ControlPanelItem("joy.cpl")


Segurança[editar | editar código-fonte]

Por ser um formato flexível e que pode ser executado com um duplo-clique, criadores de ameaças também criam malware utilizando o formato CPL[3]. É comum no Brasil usuários receberem e-mails falsos com links para downloads de arquivos comprimidos com um mais arquivos CPL dentro. Em geral, este tipo de arquivo não é transferido via rede com frequência pois seu maior uso está no Windows em si, portanto muito cuidado é necessário antes de dar um duplo clique em arquivos CPL recebidos por e-mail ou que tenham sido baixados na internet.

Por ser um tipo de arquivo pouco conhecido, mesmo por analistas de segurança experientes, vários programas como proxy firewalls e outras soluções de segurança não tratam o download de um arquivo CPL com a devida atenção.

O bloqueio de download de arquivos deste tipo deve ser tratado com cuidado, no entanto, visto que alguns fabricantes de hardware distribuem arquivos CPL juntamente com programas e drivers de dispositivo.

Applets nativos[editar | editar código-fonte]

Windows 3.x[4][editar | editar código-fonte]

Nome do arquivo Nome do ícone no Painel de Controle
CPWIN386.CPL Avançado
DRIVERS.CPL Controladores
MAIN.CPL Cores, Fontes, Portas, Mouse, Área de Trabalho, Teclado, Impressoras, Internacional, Data e Hora e Rede (se instalada)
SND.CPL Som

Windows NT/95/98/Me[5][editar | editar código-fonte]

Windows XP[6][editar | editar código-fonte]

Nome do arquivo Nome do ícone no Painel de Controle
Access.cpl Ações de acessibilidade
Appwiz.cpl Adicionar ou remover programas
Desk.cpl Vídeo
Hdwwiz.cpl Adicionar hardware
Inetcpl.cpl Opções da Internet
Intl.cpl Opções regionais e de idiomas
Irprops.cpl Dispositivos Infra-vermelho
Joy.cpl Controladores de jogo
Main.cpl Mouse
Mmsys.cpl Sons e dispositivos de áudio
Ncpa.cpl Conexões de rede
Nusrmgr.cpl Contas de usuário
Nwc.cpl Serviços de Gateway para NetWare
Odbccp32.cpl Fontes de dados (ODBC), dentro de "Ferramentas administrativas"
Powercfg.cpl Opções de energia
Sapi.cpl Fala
Sysdm.cpl Sistema
Telephon.cpl Opções de telefone e modem
Timedate.cpl Data e hora

Referências

  1. «Implementing Control Panel Items». Microsoft. Consultado em 12 de Dezembro de 2017 
  2. «Using CPLApplet». Microsoft. Consultado em 12 de Dezembro de 2017 
  3. Mercês, Fernando (27 de Janeiro de 2014). «A Look Into CPL Malware» (PDF). Trend Micro. Consultado em 12 de Dezembro de 2017. Arquivado do original em 7 de março de 2014 
  4. «Control Panel .CPL Files and Icon Installation». Microsoft. Consultado em 12 de Dezembro de 2017 
  5. «How to run Control Panel tools by typing a command». Microsoft. Consultado em 12 de Dezembro de 2017 
  6. Datta, Chandan. «Description of Control Panel Files in Windows XP». Consultado em 12 de Dezembro de 2017