2020년 2월 13일 목요일

[기타] rundll , rundll32 명령어






-

( 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

댓글 없음: