featur

[기타] rundll , rundll32 명령어 본문

개발

[기타] rundll , rundll32 명령어

featur 2020. 2. 13. 10:38

 

( 1 )  Rundll 과 Rundll32 비교

Rundll은16-비트 DLL을 로드하고 실행하며, 반면 Rundll32는32-비트 DLL을 로드하고 실행함. 잘못된 DLL을 Rundll 나 Rundll32에 사용하는 경우, 오류 메시지 없이 실행에 실패함.

 

 

 

( 2 ) Rundll 커맨드 라인

RUNDLL.EXE <DLL 명>,<엔트리 포인트> <옵션 아규먼트>

ex. RUNDLL.EXE SETUPX.DLL,InstallHinfSection 132 C:\WINDOWS\INF\SHELL.INF

 

 

 

( 3 ) Rundll 명령어 라인에서 주의해야 할 3가지 문제

1. Rundll 이나 Rundll32은 주어진 DLL 파일명을 LoadLibrary() 함수가 사용하는 표준위치에서 찾음. 정확을 기하기 위해서는 DLL의 풀-패스를 기술하고, 유효한 파일명이 되기 위해서는 긴 파일명 대신 짧은 파일 명을 기술함. 즉 "C:\Program Files" 폴더는 반드시 짧은 폴더 명으로 변환되어야 함.

2. <DLL 명>에는 스페이스, 콤마, 따옴표 등이 포함될 수 없음. 이것은 Rundll 커맨드 분석기의 한계임.

3. 위 커맨드 라인에서, <DLL 명>과 <엔트리 포인트> 사이의 컴마(,)는 매우 중요함. 만약 컴마가 없다면, Rundll이나 Rundll32는 어떤 오류 메시지 없이 실패함. 또한 <DLL 명>, 컴마와 <엔트리 포인트> 함수 사이에는 스페이스도 없어야만 함.

 

 

 

( 4 ) Rundll 동작 방법

1. 커맨드 라인을 분석함.

2. LoadLibrary()로 명시된 DLL을 로드함.

3. GetProcAddress()로 <엔트리 포인트> 함수의 어드레스를 얻음.

4. <옵션 아규먼트>를 <엔트리 포인트> 함수로 패스하면서 콜함.

5. <엔트리 포인트> 함수 리턴시 Rundll.exe는 DLL을 언로드하고 종료함.

 

 

 

( 5 ) RunDll32.exe 사용 예

 

[프로그램 추가/제거] 열기

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

 

 

[콘텐츠 관리자] 열기

RunDll32.exe msrating.dll,RatingSetupUI

 

[제어판] 열기

RunDll32.exe shell32.dll,Control_RunDLL

 

[인터넷 임시 파일] 삭제

RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 8

 

[인터넷 쿠키] 삭제

RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 2

 

[인터넷 히스토리] 삭제

RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 1

 

[인터넷 폼 데이터] 삭제

RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 16

 

[인터넷 패스워드] 삭제

RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 32

 

[인터넷 모두] 삭제

RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 255

 

[인터넷 애드온 파일 및 모두] 삭제

RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 4351

 

 

[날짜 및 시간] 열기

RunDll32.exe shell32.dll,Control_RunDLL timedate.cpl

 

Display Settings

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

 

[장치 관리자] 열기

RunDll32.exe devmgr.dll DeviceManager_Execute

 

 

[폴더 옵션 - 일반 탭] 열기

RunDll32.exe shell32.dll,Options_RunDLL 0

 

 

[폴더 옵션 - 보기 탭] 열기

RunDll32.exe shell32.dll,Options_RunDLL 7

 

 

[폴더 옵션 - 검색 탭] 열기

RunDll32.exe shell32.dll,Options_RunDLL 2

 

Folder Options - File Types

RunDll32.exe shell32.dll,Control_Options 2

 

[암호 기억 마법사] 열기

RunDll32.exe keymgr.dll,PRShowSaveWizardExW

 

[최대 절전 모드] 전환

RunDll32.exe powrprof.dll,SetSuspendState

 

Internet Explorer’s Internet Properties dialog box.

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

 

 

[키보드 속성] 열기

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

 

[화면 보호] 전환

RunDll32.exe user32.dll,LockWorkStation

 

[마우스 속성 - 단추 구성] 변경 <--- 다시 재부팅해야만 원복됨 ㅠㅠ

Rundll32 User32.dll,SwapMouseButton

 

 

[마우스 속성] 열기

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

 

[네트워크 드라이브 연결] 열기

Rundll32 Shell32.dll,SHHelpShortcuts_RunDLL Connect

 

[네트워크 연결] 열기

RunDll32.exe shell32.dll,Control_RunDLL ncpa.cpl

 

 

[즐겨찾기 관리] 열기

Rundll32.exe shdocvw.dll,DoOrganizeFavDlg

 

Open With Dialog Box

Rundll32 Shell32.dll,OpenAs_RunDLL Any_File-name.ext

 

 

[프린터 사용자 인터페이스] 열기

Rundll32 Printui.dll,PrintUIEntry /?

 

[프린터] 열기

Rundll32 Shell32.dll,SHHelpShortcuts_RunDLL PrintersFolder

 

[전원 옵션] 열기

RunDll32.exe Shell32.dll,Control_RunDLL powercfg.cpl

 

Process Idle Tasks

rundll32.exe advapi32.dll,ProcessIdleTasks

 

 

[국가 및 언어] 열기

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

 

 

[저장된 사용자 이름 및 암호] 열기

RunDll32.exe keymgr.dll,KRShowKeyMgr

 

 

[하드웨어 안전하게 제거] 열기

Rundll32 Shell32.dll,Control_RunDLL HotPlug.dll

 

 

[소리] 열기

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

 

 

[시스템 속성 - 고급 탭] 열기

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

 

 

[시스템 속성 - 시스템 보호 탭] 열기

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

 

 

[시스템 속성 - 원격 탭] 열기

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

 

 

[작업 표시줄 및 시작 메뉴 속성 - 작업 표시줄 탭] 열기

RunDll32.exe shell32.dll,Options_RunDLL 1

 

[사용자 계정] 열기

RunDll32.exe shell32.dll,Control_RunDLL nusrmgr.cpl

 

 

[하드웨어 안전하게 제거] 열기

RunDll32.exe shell32.dll,Control_RunDLL hotplug.dll

 

[관리 센터] 열기

RunDll32.exe shell32.dll,Control_RunDLL wscui.cpl

 

 

[윈도우 정보] 열기

RunDll32.exe SHELL32.DLL,ShellAboutW

 

[Fonts] 열기

Rundll32 Shell32.dll,SHHelpShortcuts_RunDLL FontsFolder

 

[Windows 방화벽] 열기

RunDll32.exe shell32.dll,Control_RunDLL firewall.cpl

 

Wireless Network Setup

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

 

 

 

참고 사이트 : 

http://support.microsoft.com/kb/600820/ko

http://www.thewindowsclub.com/rundll32-shortcut-commands-windows

 


Comments