Jump to content

O poder do Rundll32


Tutorialz-Machine
 Share

Recommended Posts

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

Link to comment
Share on other 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.

Desaparecido.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.