31
Exploiting Exploiting Windows 2000 Windows 2000 Kyle Marsh Kyle Marsh Software Design Software Design Engineer Engineer Windows Evangelism Windows Evangelism Microsoft Corporation Microsoft Corporation 7-314 7-314

Exploiting Windows 2000 Kyle Marsh Software Design Engineer Windows Evangelism Microsoft Corporation 7-314

Embed Size (px)

Citation preview

Page 1: Exploiting Windows 2000 Kyle Marsh Software Design Engineer Windows Evangelism Microsoft Corporation 7-314

Exploiting Windows Exploiting Windows 20002000

Kyle MarshKyle MarshSoftware Design EngineerSoftware Design EngineerWindows EvangelismWindows EvangelismMicrosoft CorporationMicrosoft Corporation7-3147-314

Page 2: Exploiting Windows 2000 Kyle Marsh Software Design Engineer Windows Evangelism Microsoft Corporation 7-314
Page 3: Exploiting Windows 2000 Kyle Marsh Software Design Engineer Windows Evangelism Microsoft Corporation 7-314

Three levels of exploiting Three levels of exploiting Windows 2000Windows 2000

Running your current application Running your current application on Windows 2000on Windows 2000

Certified for Windows 2000Certified for Windows 2000 Target Windows 2000 featuresTarget Windows 2000 features

Page 4: Exploiting Windows 2000 Kyle Marsh Software Design Engineer Windows Evangelism Microsoft Corporation 7-314

Getting the site readyGetting the site ready

Run your Run your applications on applications on Windows 2000Windows 2000

7-324 Moving 7-324 Moving Applications to Applications to Windows 2000Windows 2000

Page 5: Exploiting Windows 2000 Kyle Marsh Software Design Engineer Windows Evangelism Microsoft Corporation 7-314

Most Common IssuesMost Common Issues

InstallationInstallation Version CheckingVersion Checking UninstallUninstall Path issuesPath issues Large DrivesLarge Drives Heap ManagementHeap Management

Page 6: Exploiting Windows 2000 Kyle Marsh Software Design Engineer Windows Evangelism Microsoft Corporation 7-314

The FoundationThe FoundationCertified for WindowsCertified for Windows

Your Application:Your Application: Is more manageable Is more manageable Is more reliableIs more reliable Reduces cost of Reduces cost of

ownership for your ownership for your customerscustomers

7-312 Developing 7-312 Developing Windows 2000 Windows 2000 Certified ApplicationsCertified Applications

Page 7: Exploiting Windows 2000 Kyle Marsh Software Design Engineer Windows Evangelism Microsoft Corporation 7-314

Desktop RequirementsDesktop Requirements Window FundamentalsWindow Fundamentals Windows Installer ServiceWindows Installer Service Component SharingComponent Sharing Data and Settings ManagementData and Settings Management User Interface FundamentalsUser Interface Fundamentals OnNow/ACPI SupportOnNow/ACPI Support Application MigrationApplication Migration

Page 8: Exploiting Windows 2000 Kyle Marsh Software Design Engineer Windows Evangelism Microsoft Corporation 7-314

Server RequirementsServer Requirements

Window FundamentalsWindow Fundamentals Install / Uninstall Install / Uninstall User Interface FundamentalsUser Interface Fundamentals Active DirectoryActive Directory Security ServicesSecurity Services Cluster Service Cluster Service

Page 9: Exploiting Windows 2000 Kyle Marsh Software Design Engineer Windows Evangelism Microsoft Corporation 7-314

Windows InstallerWindows Installer OS resident Application Installation OS resident Application Installation

ServiceService Introduced with Office 2000 and Windows 2000Introduced with Office 2000 and Windows 2000 Available for Windows 95 and Windows NT 4.0 and Available for Windows 95 and Windows NT 4.0 and

up.up.

Provides a standard, consistent way to Provides a standard, consistent way to install applicationsinstall applications

API for applications and management API for applications and management toolstools

7-302 Building and Customizing 7-302 Building and Customizing Windows Installer PackagesWindows Installer Packages

Page 10: Exploiting Windows 2000 Kyle Marsh Software Design Engineer Windows Evangelism Microsoft Corporation 7-314

Component SharingComponent Sharing

Ending DLL HellEnding DLL Hell DLL RedirectionDLL Redirection Side by Side component sharingSide by Side component sharing 7-313 Ending DLL Hell7-313 Ending DLL Hell

Page 11: Exploiting Windows 2000 Kyle Marsh Software Design Engineer Windows Evangelism Microsoft Corporation 7-314

Data and Settings Data and Settings ManagementManagement Enable a managed desktopEnable a managed desktop Enable Roaming UsersEnable Roaming Users Enable Multiple Users per MachineEnable Multiple Users per Machine

Increased importance for WhistlerIncreased importance for Whistler 7-304 Building Manageable 7-304 Building Manageable

ApplicationsApplications

Page 12: Exploiting Windows 2000 Kyle Marsh Software Design Engineer Windows Evangelism Microsoft Corporation 7-314

Active DirectoryActive Directory

The directory service used in The directory service used in Microsoft® Windows® 2000 and is Microsoft® Windows® 2000 and is

The foundation of Windows 2000 The foundation of Windows 2000 distributed networks. distributed networks. 

7-4027-402Active Directory Programming in-Active Directory Programming in-depth using ADSIdepth using ADSI

7-4037-403Building Active Directory-enabled Building Active Directory-enabled Applications (Part 1)Applications (Part 1)

7-4047-404Building Active Directory-enabled Building Active Directory-enabled Applications (Part 2)Applications (Part 2)

Page 13: Exploiting Windows 2000 Kyle Marsh Software Design Engineer Windows Evangelism Microsoft Corporation 7-314

Security ServicesSecurity Services

Windows 2000 provides a secure Windows 2000 provides a secure operating environment. operating environment.

Access controls can be placed on Access controls can be placed on various system resources.various system resources.

7-310 Developing Applications for 7-310 Developing Applications for Secure WindowsSecure Windows

Page 14: Exploiting Windows 2000 Kyle Marsh Software Design Engineer Windows Evangelism Microsoft Corporation 7-314

Cluster ServiceCluster Service

Cluster service shipping in Cluster service shipping in Advanced and DataCenter server Advanced and DataCenter server provides an easy way to make any provides an easy way to make any application highly available. application highly available.

7-311 Developing Cluster Service 7-311 Developing Cluster Service Aware ApplicationsAware Applications

Page 15: Exploiting Windows 2000 Kyle Marsh Software Design Engineer Windows Evangelism Microsoft Corporation 7-314

Beyond the SpecBeyond the Spec

Take Take advantage of advantage of Windows Windows 2000 features2000 features

Page 16: Exploiting Windows 2000 Kyle Marsh Software Design Engineer Windows Evangelism Microsoft Corporation 7-314

Windows Management Windows Management Instrumentation (WMI)Instrumentation (WMI)

Microsoft implementation of Web-Microsoft implementation of Web-Based Enterprise Management Based Enterprise Management (WBEM)(WBEM)

Industry initiative to develop a Industry initiative to develop a standard technology for accessing standard technology for accessing management information in an management information in an enterprise environment. enterprise environment.

7-332 Windows Management 7-332 Windows Management InstrumentationInstrumentation

7-303 Building Manageability 7-303 Building Manageability Solutions Using WMISolutions Using WMI

Page 17: Exploiting Windows 2000 Kyle Marsh Software Design Engineer Windows Evangelism Microsoft Corporation 7-314

Scripting Scripting

WSH 2.0 ships in Windows 2000, WSH 2.0 ships in Windows 2000, downloadable for other platformsdownloadable for other platforms

7-334 Windows Script for 7-334 Windows Script for DevelopersDevelopers

Page 18: Exploiting Windows 2000 Kyle Marsh Software Design Engineer Windows Evangelism Microsoft Corporation 7-314

Debugging and Error Debugging and Error HandlingHandling

Debug Help Library replaces Debug Help Library replaces ImageHLPImageHLP

Event TracingEvent Tracing Tool Help LibraryTool Help Library

Page 19: Exploiting Windows 2000 Kyle Marsh Software Design Engineer Windows Evangelism Microsoft Corporation 7-314

MemoryMemory

Breaking the 2 Gig LimitationBreaking the 2 Gig Limitation Address Windowing Extensions Address Windowing Extensions

Manipulate physical memory greater Manipulate physical memory greater than 4GBthan 4GB

Non-pagedNon-paged Limited to RAM on systemLimited to RAM on system

Windows 2000, 64-bit EditionWindows 2000, 64-bit Edition 8,188 Gigs8,188 Gigs

Page 20: Exploiting Windows 2000 Kyle Marsh Software Design Engineer Windows Evangelism Microsoft Corporation 7-314

International FeaturesInternational Features

UnicodeUnicode Complex ScriptsComplex Scripts UniscribeUniscribe OpentypeOpentype

Page 21: Exploiting Windows 2000 Kyle Marsh Software Design Engineer Windows Evangelism Microsoft Corporation 7-314

Some New ManagersSome New Managers

Power ManagementPower Management Synchronization Manager Synchronization Manager Removable Storage Manager Removable Storage Manager

Page 22: Exploiting Windows 2000 Kyle Marsh Software Design Engineer Windows Evangelism Microsoft Corporation 7-314

NTFS File System ChangesNTFS File System Changes

Hard LinksHard Links Change JournalChange Journal Disk QuotasDisk Quotas Distributed Link TrackingDistributed Link Tracking Encrypted File SystemEncrypted File System Reparse PointsReparse Points Sparse filesSparse files

Page 23: Exploiting Windows 2000 Kyle Marsh Software Design Engineer Windows Evangelism Microsoft Corporation 7-314

Job ObjectJob Object

New kernel objectNew kernel object Can be namedCan be named Can be securedCan be secured

Group of related processesGroup of related processes Manage and track process groupManage and track process group System enforces job quotas and System enforces job quotas and

security contextsecurity context

Page 24: Exploiting Windows 2000 Kyle Marsh Software Design Engineer Windows Evangelism Microsoft Corporation 7-314

Thread PoolingThread Pooling

System-managed thread-pool for appsSystem-managed thread-pool for apps Saves resources: fewer threads waiting Saves resources: fewer threads waiting

for single objectsfor single objects Less code: no thread Less code: no thread

creation/destruction/communicationcreation/destruction/communication Register a wait with callback functionRegister a wait with callback function Queue asynchronous function callQueue asynchronous function call Timer QueueTimer Queue Asynchronous I/O RequeustsAsynchronous I/O Requeusts

Page 25: Exploiting Windows 2000 Kyle Marsh Software Design Engineer Windows Evangelism Microsoft Corporation 7-314

Message WindowsMessage Windows

Pass HWND_MESSAGE as parent Pass HWND_MESSAGE as parent HWND to CreateWindow(Ex)HWND to CreateWindow(Ex)

Allows send/receive of messagesAllows send/receive of messages Not visible, no Z-order, not normally Not visible, no Z-order, not normally

enumerated, doesn’t receive broadcast enumerated, doesn’t receive broadcast messagesmessages

FindWindowExFindWindowEx Finds if hwndParent is HWND_MESSAGEFinds if hwndParent is HWND_MESSAGE Finds is hwndParent & hwndChild are Finds is hwndParent & hwndChild are

NULLNULL

Page 26: Exploiting Windows 2000 Kyle Marsh Software Design Engineer Windows Evangelism Microsoft Corporation 7-314

Layered WindowsLayered WindowsAlpha BlendingAlpha Blending Layered WindowsLayered Windows

WS_EX_LAYEREDWS_EX_LAYERED Alpha BlendingAlpha Blending

AlphaBlend function like StretchBlt AlphaBlend function like StretchBlt w/BLENDFUNCTION structw/BLENDFUNCTION struct

Page 27: Exploiting Windows 2000 Kyle Marsh Software Design Engineer Windows Evangelism Microsoft Corporation 7-314

MiscellaneousMiscellaneous

CreateProcessWithLogonW CreateProcessWithLogonW GetVersionInfo, VerifyVersionInfoGetVersionInfo, VerifyVersionInfo

Build/service pack infoBuild/service pack info InitializeCriticalSectionAndSpinCount, InitializeCriticalSectionAndSpinCount,

SetCriticalSectionSpinCountSetCriticalSectionSpinCount For SMP machines onlyFor SMP machines only

Registry FunctionsRegistry Functions RegOpenCurrentUserRegOpenCurrentUser RegOpenUserClassesRootRegOpenUserClassesRoot RegOverridePredefKeyRegOverridePredefKey

Page 28: Exploiting Windows 2000 Kyle Marsh Software Design Engineer Windows Evangelism Microsoft Corporation 7-314

MiscellaneousMiscellaneous

SendInput SendInput HTML Resource typeHTML Resource type New common controlsNew common controls

IP address, date/time, IE-style toolbars, IP address, date/time, IE-style toolbars, page scrollerpage scroller

Print Property Sheet Common DialogsPrint Property Sheet Common Dialogs

Page 29: Exploiting Windows 2000 Kyle Marsh Software Design Engineer Windows Evangelism Microsoft Corporation 7-314

More More

Keyboard Keys for Browsing and Other Keyboard Keys for Browsing and Other FunctionsFunctions

Window AnimationWindow Animation Window Layout and MirroringWindow Layout and Mirroring XBUTTONsXBUTTONs Smooth ShadingSmooth Shading

Page 30: Exploiting Windows 2000 Kyle Marsh Software Design Engineer Windows Evangelism Microsoft Corporation 7-314

Questions ?Questions ?

Page 31: Exploiting Windows 2000 Kyle Marsh Software Design Engineer Windows Evangelism Microsoft Corporation 7-314