• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Tutorialz-Machine

O poder do Rundll32

5 mensagens neste tópico

Introdução

O que é o Rundll32?

Para começar, vou-vos explicar o que é Rundll32. O Rundll32, é nem mais nem menos que um processo que serve para executar DLLs. As DLLs executadas pelo Rundll32, tanto podem ser "maliciosas" como importantíssimas para o funcionamento do sistema, mas o seu uso é legítimo. Mais informações sobre este processo, aqui.

Rundll32 ≠ Rundll

São duas coisas diferentes, além dos comandos serem diferentes assim como os <pontos_de_entrada>, o Rundll só é usado em sistemas operativos de 16-bit (Windows 9x/Me) enquanto que o Rundll32 é usado em sistemas operativos de 32-bit (XP/Vista).

Como usar o Rundll32?

Agora que já sabemos o que este processo faz, como é que vamos usá-lo? Fácil, basta irmos buscar o "código" para executar a aplicação que queremos. A sintaxe do comando é: RUNDLL32.EXE <nome_da_dll>,<ponto_de_entrada> <argumentos_opcionais>

Por exemplo, se quiserem aceder às "Ligações de Rede/Network Connections", basta irem ao executar e meter o seguinte "código": RunDll32.exe shell32.dll,Control_RunDLL ncpa.cpl

Observem as imagens.

Cuidados: Vocês devem considerar cuidadosamente 3 questões na linha de comandos mencionada acima:

1. Rundll32 procura o nome de ficheiro da DLL indicado nas localizações padrão (vejam artigos em relação à função LoadLibrary() para obterem mais informação). É necessário que forneçam um caminho completo para a DLL de modo a garantir que é localizada a DLL correcta. Para obter os melhores resultados, utilizem o nome de ficheiro abreviado em vez do nome do ficheiro longo para garantir que não sejam apresentados caracteres ilegais. Reparem que isto significa que uma DLL na pasta "C:\Programas" ("C:\Program Files") deverá ser convertida para o respectivo nome abreviado.

2. O <nome_da_dll> não poderá conter quaisquer espaços, vírgulas ou aspas. Esta é uma limitação do analisador da linha de comandos de Rundll32.

3. Na linha de comandos mencionada acima, a vírgula (,) entre o <nome_da_dll> e o nome da função <ponto_de_entrada> é extremamente importante. Se a vírgula separadora não existir, a execução do Rundll32 falhará sem que sejam apresentadas quaisquer mensagens de erro. Além disso, não poderão existir espaços em branco entre o <nome_da_dll>, a vírgula e a função <ponto_de_entrada>.

Como funciona o Rundll32?

O Rundll32 executa os seguintes passos:

1º Analisa a linha de comandos.

2º Carrega a DLL especificada através de LoadLibrary().

3º Obtém o endereço da função <ponto_de_entrada> através de GetProcAddress().

4º Chama a função <ponto_de_entrada>, passando o fim da linha de comandos, que são os <argumentos_opcionais>.

5º Quando a função <ponto_de_entrada> termina, Rundll.exe descarrega a DLL e termina.

E o que tenho que fazer para não andar sempre à procura do código?

Agora para não termos que andar sempre à procura do código, vamos criar um atalho.

Isto que eu fiz para as "Opções de Energia/Power Options" pode ser feito com qualquer outro código.

Mudança de ícone do atalho e restantes códigos com os nomes das respectivas aplicações

Depois do atalho estar criado, podem mudar o ícone da seguinte maneira: Clicar com o botão direito do rato sobre o ícone>Propriedades>Alterar ícone.

Agora vocês perguntam, então e que mais aplicações podemos abrir com este método? Bem, vou deixar aqui uma lista com vários códigos correspondente às aplicações.

Add/Remove Programs

RunDll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,0

Clear Internet Explorer Title

RUNDLL32.EXE IEdkcs32.dll,Clear

Content Advisor

RunDll32.exe msrating.dll,RatingSetupUI

Control Panel

RunDll32.exe shell32.dll,Control_RunDLL

Delete Temporary Internet Files:

RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 8

Delete Cookies:

RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 2

Delete History:

RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 1

Delete Form Data:

RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 16

Delete Passwords:

RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 32

Delete All:

RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 255

Delete All + files and settings stored by Add-ons:

RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 4351

Date and Time Properties

RunDll32.exe shell32.dll,Control_RunDLL timedate.cpl

Display Settings - Windows XP

RunDll32.exe shell32.dll,Control_RunDLL access.cpl,,3

Display Appearance Settings - Vista

RunDll32.exe shell32.dll,Control_RunDLL desk.cpl,,2

Display, Screen Saver Settings - Vista

RunDll32.exe shell32.dll,Control_RunDLL desk.cpl,,1

Display, Monitor Settings - Vista

RunDll32.exe shell32.dll,Control_RunDLL desk.cpl,,

Display, Desktop Icon Settings - Vista

RunDll32.exe shell32.dll,Control_RunDLL desk.cpl,,0

Device Manager

RunDll32.exe devmgr.dll DeviceManager_Execute

Folder Options - General

RunDll32.exe shell32.dll,Options_RunDLL 0

Folder Options - File Types

RunDll32.exe shell32.dll,Control_Options 2

Folder Options - Search

RunDll32.exe shell32.dll,Options_RunDLL 2

Folder Options - View

RunDll32.exe shell32.dll,Options_RunDLL 7

Forgotten Password Wizard

RunDll32.exe keymgr.dll,PRShowSaveWizardExW

Vista Flip 3D

RunDll32.exe DwmApi #105

Hibernate

RunDll32.exe powrprof.dll,SetSuspendState

Internet Explorer's Internet Properties dialog box

Rundll32 Shell32.dll,ConBring up trol_RunDLL Inetcpl.cpl,,6

Keyboard Properties

RunDll32.exe shell32.dll,Control_RunDLL main.cpl @1

Lock Screen

RunDll32.exe user32.dll,LockWorkStation

Mouse Button - Swap left button to function as right

Rundll32 User32.dll,SwapMouseButton (Para resolver, usar: RUNDLL32.EXE SHELL32.dll,Control_RunDLL main.cpl @0,0)

Mouse Properties Dialog Box

Rundll32 Shell32.dll,Control_RunDLL main.cpl @0,0

Map Network Drive Wizard

Rundll32 Shell32.dll,SHHelpShortcuts_RunDLL Connect

Network Connections

RunDll32.exe shell32.dll,Control_RunDLL ncpa.cpl

Organize IE Favorites

Rundll32.exe shdocvw.dll,DoOrganizeFavDlg

Open With Dialog Box

Rundll32 Shell32.dll,OpenAs_RunDLL Any_File-name.ext

Printer User Interface

Rundll32 Printui.dll,PrintUIEntry /?

Printer Management Folder

Rundll32 Shell32.dll,SHHelpShortcuts_RunDLL PrintersFolder

Power Options

RunDll32.exe Shell32.dll,Control_RunDLL powercfg.cpl

Process Idle Tasks

rundll32.exe advapi32.dll,ProcessIdleTasks

Regional and Language Options

Rundll32 Shell32.dll,Control_RunDLL Intl.cpl,,0

Stored Usernames and Passwords

RunDll32.exe keymgr.dll,KRShowKeyMgr

Safely Remove Hardware Dialog Box

Rundll32 Shell32.dll,Control_RunDLL HotPlug.dll

Sound Properties Dialog Box

Rundll32 Shell32.dll,Control_RunDLL Mmsys.cpl,,0

System Properties Box

Rundll32 Shell32.dll,Control_RunDLL Sysdm.cpl,,3

System Properties - Advanced

RunDll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,4

System Properties: Automatic Updates

RunDll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,5

System Properties, Computer Name Tab

RunDll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,1

System Properties, Hardware Tab

RunDll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,2

System Properties, Advanced Tab

RunDll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,3

System Properties, System Protection Tab

RunDll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,4

System Properties, Remote Tab

RunDll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,5

System Properties, Performance, Visual Effects

RunDll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,-1

Taskbar Properties

RunDll32.exe shell32.dll,Options_RunDLL 1

User Accounts

RunDll32.exe shell32.dll,Control_RunDLL nusrmgr.cpl

Unplug/Eject Hardware

RunDll32.exe shell32.dll,Control_RunDLL hotplug.dll

Windows Security Center

RunDll32.exe shell32.dll,Control_RunDLL wscui.cpl

Windows - About

RunDll32.exe SHELL32.DLL,ShellAboutW

Windows Fonts Installation Folder

Rundll32 Shell32.dll,SHHelpShortcuts_RunDLL FontsFolder

Windows Firewall

RunDll32.exe shell32.dll,Control_RunDLL firewall.cpl

Wireless Network Setup

RunDll32.exe shell32.dll,Control_RunDLL NetSetup.cpl,@0,WNSW

Atenção: Alguns códigos só dão para determinadas versões do Windows.

Ligações externas:

http://pt.wikipedia.org/wiki/DLL

http://www.processlibrary.com/directory/?files=rundll32.exe

http://www.frameworkx.com/blogpost.aspx?id=1&c=1235

http://www.dx21.com/SCRIPTING/RUNDLL32/REFGUIDE.ASP?ISF=0&P=A

http://msdn.microsoft.com/en-us/library/ms684175(VS.85).aspx

http://msdn.microsoft.com/en-us/library/ms683212(VS.85).aspx

Autor: Napster (O mesmo deu-me permissões para colocar aqui o tutorial)

Edição no BBCode: Tutorialz-Machine

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

o Rundll só é usado em sistemas operativos de 16-bit (Windows 9x/Me) enquanto que o Rundll32 é usado em sistemas operativos de 32-bit (XP/Vista).

Todos os sistemas Windows a partir do 95 são a 32 bits, embora alguns componentes continuem a ser 16 bits.

Continua a ser possível correr executáveis de 16 bits no XP (a 32 bits), e penso que no Vista também, embora não tenha a certeza.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Gostaria do comando sleep para o windows 7, consegui shutdown e hibernate, mas eu quero mesmo o comando sleep (dormir).

Fico grato se voce puder me ajudar

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora