SlideShare a Scribd company logo
Chuyểnđổiứngdụnglên Windows 7.Nhữngvấnđềcóthểgặpphải.Cáchxửlý.Presenter: Trịnh Minh Cườngcuong@microsoft.com
Nội dung trìnhbàyCáclỗigâykhôngtươngthíchtrên Windows 7KiểmtratínhtươngthíchcủaphầnmềmSửdụngbộcôngcụ Application Compatibility ToolkitđểsửalỗikhôngtươngthíchMicrosoft Confidential
CâuchuyệntươngthíchMicrosoft ConfidentialỞ trườnghọc, họcsinhViệtnamđượcdạydấuthậpphânlàdấuphẩy. Vídụ: Pi = 3,14159Ở côngty, chúng ta lạiquendùngdấuthậpphânlàdấuchấm. Pi = 3.14159Chuẩn ổ cắmđiệnViệtnamlà 2 lỗ. Thiếtbịđiệntử ở  VN cónhiềuloạiphíchcắm như haichântròn, haichândẹt, bachân, bachânvuông, 2 dẹtmộttròn….Ô tôtayláithuận<> nghịchBướcrănghệmét <> hệ Anh
Tạisaocầnchuyểnđổilên Windows 7?Microsoft ConfidentialWindows XP đủtốtnhữngđãquácũ.Windows Vista khôngcònđượcbán.Windows 7 nhanh, ổnđịnh, thânthiệnvàyêucầuphầncứngnhư Windows Vista.Phầnmềmkhôngchạyđượctrên Windows 7 ► mấtđicơhộibánphầnmềmtrên HĐH thịnhhànhtrongvòng 5 nămnữa.
Mộtsốhìnhảnh Windows 7 tạiNhậtBảnMicrosoft Confidential
Mộtsốhìnhảnh Windows 7 tạiNhậtBảnMicrosoft Confidential
Mộtsốhìnhảnh Windows 7 tạiNhậtBảnMicrosoft Confidential
6 lỗicơbảngâykhôngtươngthíchtrên Windows 7Microsoft ConfidentialData Redirection –đổihướngghivàotàinguyênhệthốngHigh DPI – giaodiệnxôlệch ở chếđộphângiảicaoInstaller Detection – nhậndiệnsaitrìnhcàiđặtSession 0 Isolation – ràocảngiữacác session User Interface Privilege Isolation - vênhquyềngiữa 2 tiếntrìnhVersion Checking – đọcsaiphiênbản HĐH
User Account Control - UACMicrosoft Confidential
User Account Control : Over ViewMặcđịnh logon vớiquyền standard userTựđộngnângquyềnkhicầnthiếtNgăncảnmọisựtruycậptàinguyên “nhạycảm” khichưađượcphépStandard user khôngthểCàiđặt 1 sốứngdụngThayđổithànhphầnhệthốngThayđổicácthông tin thiếtlậpmáyQuảntrịquyền
Window 7 UAC có 4 mứcbảovệMặcđịnh
Giảithíchmứcđộcảnhbáotrong UACHigh:Cảnhbáokhicóứngdụngmuốncàiđặthoặcthayđổithông tin hệthốngCảnhbáokhingườisửdụngthayđổithiếtlậpchomáyMedium: MứcmặcđịnhChỉcảnhbáokhicóứngdụngmuốncàiđặthoặcthayđổithông tin hệthốngKhôngcảnhbáokhingườisửdụngthayđổithiếtlậpchomáyLow: Chỉcảnhbáokhicóứngdụngmuốncàiđặthoặcthayđổithông tin hệthốngnhưngkhônglàmmờmànhìnhOff: UAC offKhôngcảnhbáogìcả
User Account Control LevelsChạy notepad và save file vàothưmục C:Với Normal user thìbáokhôngcóquyềnvàkhôngchoghi file.Với Administrator thìghi file thànhcông.
Hiêuứng UAC vớiứngdụngcũcho XP.KhôngcàiđặtđượcứngdụnghoặccàiđặtsaiỨngdụngbáolỗi : Access denies Don’t have permissionKhôngtìmthấy file dữliệuđãlưu
Chuyểnhướngkhitruyxuất file, registryTrong Windows 7, ngườidùngbìnhthườngbịgiớihạntruyxuấttớimộtsốtệp, thưmụcvà registry key baogồm:Thưmục Windows, Program Files, thưmụcgốc C:\HKEY_LOCAL_MACHINEỨngdụngcũkhichạytrên Windows 7 khôngghivàothưmụchệthống, registry HKLM -> gâylỗi. Đâylàlỗirấtphổbiến.Phânbiệtgiữaứngdụng UAC và non UAC:UAC: User Account ControlỨngdụng UAC: có file manifest địnhnghĩa UAC. Đượcbiêndịchbằng Visual Studio 2008Ứngdụng non UAC khôngcófile manifest, đượcbiêndịchVisual Studio phiênbảncũ…
CáchxửlýđơngiảnnhấtNhấpchuộtphảichọn “Run as administrator”ChọnchếđộchạytươngthíchXP Mode
Giảiquyếtbằngnhúng file manifestNhúng file manifest<security>	<requestedPrivileges>		<requestedExecutionLevel level="requireAdministrator“ />	      </requestedPrivileges>	  </security>Cácmức requestAsInvoker: bằngvớiquyềnngườiđangmáytínhHighestAvailable: quyềncaonhấtcóthể, khi normal user đượcgánthêmmộtsốquyềnRequireAdministrators: chạyvớiquyền AdministratorVideo: Manifest_RequireAdministrator.wmv
User Account Control : SolutionsThiết kế ứng dụng với mô hình Admin Broker Model.Application.exe (File chạy) Chạy với quyền của Standard User
 Thực hiện nghiệp vụ của ứng dụngApplication-Setting.exe (File chạy) Nhúng file manifest
 Luôn chạy với quyền Administrator
 Thực hiện thay đổi cấu hình, thông tin toàn cục.
 Start/ Stop Service
 Attach DB
Ghi thông tin cấu hình máy ( Program File, Registry )
…Data Redirection - ẢohóaMicrosoft Confidential
Data Rediretion : vấnđềKhôngtìmthấy file trongthưmụcđãghi.Khôngtìmthấykhóa Registry theo path đãghi.Ứngdụngđãcậpnhậpnhưngvẫnsửdụngcác file cũ.Ứngdụngđãbịgỡbỏnhưngvẫntồntại file ráctrongkhuvựcảohóa.Lỗikhighi, sửa, xóa file, thưmục.Lỗikhighi, sửa, xóa key trong HKLM.
Microsoft Confidential
Ảohóakhitruyxuất file & registryPhầnmềm non-UAC truyxuấttệpvà registry bịgiớihạnsẽbịđổihướngTruyxuất file chuyểnhướng (ảohóa) vàoVirual Store (C:\Users\Bob\AppData\Local \VirtualStore)Truyxuất registry ảohóavào HKCU\Classes\VirtualStoreFile, registry sẽđượccánhânhóachotừng normal user chứkhôngdùngchung như trước.DữliệusẽđượclưuvàochỗkhácServices ngoạilệvới UAC vàkhôngbịảohóaChạyứngdụngbằng Administrator thìsẽkhôngbịảohóaẢohóalàgiảipháptrong Windows 7 32 bit sẽkhôngđượchỗtrợtrong Windows 7 64 bit vàthếhệkếtiếp.
TrườnghợpkhôngảohóaỨngdụngchạytrên Windows 7 64 bit.Ứngdụngcó UAC khitruyxuấtvàothưmục , registry hệthốngsẽbịchặnẢohóatruyxuấtkhôngđượckíchhoạt, thaotácvớidữliệusẽđượckiểmtraquyềntheo NFTS hoặc registry ACLs ápdụngchotừngvùngtàinguyênMặcđịnhcácứngdụngđượcbiêndịchbằng Visual Studio 2008 sẽđikèmvới file manifest
Ảo hóa truy xuất file với normal userỨng dụng cũỨng dụng cho Windows 7\Windows\App.iniUser modeKernel modeLuafv.sys\Users\<user>\AppData\Local\VirtualStore\Windows\App.ini\Windows\App.iniNtfs.sysAccess Denied
Ảo hóa truy xuất registry với normal userỨng dụng cũỨng dụng cho Windows 7HKLM\Software\AppUser modeAccess DeniedKernel modeNtoskrnl.exeHKCU\Software\Classes\VirtualStore\Machine\Software\AppRegistry
XửlýlỗiảohóaNhúng file manifest vớirequestedExecution- LevelphùhợpGiảmbớthạnchếquyềntruycậptrongAccces Control List (ACL)Ghidữliệutheo user hoặcvàcáckhuvựcchung.Sửdụng Standard User Analyzer hoặc Compatibility Administrator đểsửa.Demo…
DPI: dot per inchMicrosoft Confidential
High DPI  Problem: giao diện xô lệch ở mức DPI caoClipped textLayout issues and image size issuesPixilated bitmapsWinForms issuesBlurry UIMismatched font sizes
Hight DPI : ProblemCác control phóng to thunhỏkhôngđồngđều.Sửdụngnhiều font chữkhácnhaukhôngđồngnhấtSửdụngđồhọa rasterẢohóa DPI trong Window 7 làm UI bịmờ.
Microsoft ConfidentialDon’t Panic !
Chỉnh DPI qua Display Control PanelDPI: Dot Per InchWindows 7 co dãn DPI theo tỷ lệ phần trăm100%  = 96 DPI125% = 120 DPI150% = 144 DPIDPI càng cao, HĐH sẽ dùng nhiều dot để vẽ giao diện control hơn. Một số control có kích thước dot cố định không tự động co dãn sẽ làm giao diện bị xô lệch.
Giao diện khi đổi thuộc tính AutoScaleMode từ DPI sang NoneMicrosoft ConfidentialDPI ScallingNone DPI Scalling, chữ không tương đương với form nữa
Hight DPI : SolutionNhúng file manifest đểứngdụngnhậnbiết DPISửdụng font chữ TrueType hoặcOpenType ( Font cóphầnmởrộnglàttfvàotf )<asmv3:application>    <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings"><dpiAware>true</dpiAware>    </asmv3:windowsSettings>  </asmv3:application>
Xử lý lỗi giao diên xô lệch khi thay đổi DPIVớiứngdụng .NETĐặtthuộctính“AutoScaleMode” = “Font” or “DPI”Native Win32 applicationsBe DPI Aware – include DPI Aware manifestScale all UI text, points and sizes using the DPI values returned by the GetDeviceCaps API
Hight DPI : best practiceĐộphângiảihiệuquảlàđộphângiảitốithiểumàứngdụngcầnđểcóthểhiểnthịđầyđủTínhtoánđộphângiảihiệuquảVídụ : Mànhìnhhiểnthị 1200x900 với DPI = 146 thìđộphângiảihiệuquảlà 800x600.Tậndụngđồhọa vector thaycho raster.Độ phân giải hiệu quả = Độ phân giải vật lý / (DPI/96).
NhậndiệnsaitrìnhcàiđặtMicrosoft Confidential
Nhận diện sai trình cài đặtTrình cài đặt trước Vista dùng quyền administratorGhi, sửa vào  thư mục Program File, registry HKEY_LOCAL_MACHINEWindows 7 chạy chương trình dùng quyền của normal userKhiến trình cài đặt thất bại ở một số tác vụWindows  7 nhận biết trình cài đặt để nâng cấp quyền hạn cho phù hợp.Giải pháp: dùng thuật toán phỏng đoán nếu một file chạy là trình cài đặt. Tuy nhiên phỏng đoán có xác suất bị sai.Chỉ áp dụng với file chạy 32 bit không có file Manifest đi kèm.Nếu tên file có chứa “install”, “setup”, “update” xác suất cao sẽ là trình cài đặt. Ngoại lệ, ví dụ Stock_Update.exe không phải là trình cài đặt. Hoặc CaiDatKeToan.exe lại là trình cài đặt.
Microsoft ConfidentialDon’t Panic !
Giải phápThêm file manifest mô tả thông tin UAC: nhúng hoặc đi kèm theo trình cài đặtSử dụng file manifest đi kèm dễ hơn vì không cần biên dịch lại trình cài đặtNamed MyApp.Exe.manifest <requestedExecutionLevel level=“?”>asInvoker– quyền bằng trình kích hoạt, không đủ để cài đặtrequireAdministrator– yêu cầu nâng quyền lên Administrator để cài đặt
Session 0 IsolationMicrosoft ConfidentialSeSessionWindow station (WinSta0)Desktop (default desktop)User application or service
Thay đổi trong kiến trúc session của HĐHTrong Windows XP, ứngdụnggiaodiệnvà service cùngchạytrong session 0.Từ Vista trởđi, session 0 dànhriêngđểchạy services.Ứngdụnggiaodiệnngườidùngsẽchạytrên session 1, 2, 3…Vấnđềphátsinhvớikiếntrúcmới:Lậptrìnhvới API cũ, Windows message khôngvượt qua ranhgiớicủa session.Kernel objects đượcnằmriêngtrongtừngsession.Service khôngthểtươngtác, hiểnthị UI trên desktop.Lỗinàyítxảyravớiứngdụngphầnmềm ở Việtnam.
HướngxửlýGửi message (thôngđiệp) từ service đếnứngdụng GUI bằnghàmWTSSendMessage. ThựcchấthàmWTSSendMessagedùngđểhiểnthị dialog box từmột remote session (phiênđiềukhiểnmáytínhtừxa)Hoặc service chạyhàmCreateProcessAsUsertạoramột process đểchạyứngdụng GUI
User Interface Privilege Isolation- vênhquyềngiữa 2 tiếntrìnhTừ Vista, Microsoft đưara integrity level  (mứchòađồng)Mặcđinhmộttiếntrìnhkhôngthểgửithôngđiệpđếntiếntrìnhkháccómứchòađồngcaohơn.CơchếnàygọilàUser Interface Privilege Isolation (UIPI) ~ phânbiệtđặcquyềngiaodiện.Thườngxảyravớinhữngchươngtrìnhviếtbằng C++.
Unikeyvà Internet ExplorerUnikeyphiênbảntrướcđâykhôngthểgõtiếngViệtvào IE 7, 8. Khihạmức UAC thìlạigõđược.TìnhtrạngcủaUnikeyphiênbảncũ, gõtiếngViệtvào IE.IE chạy ở low integrity levelUnikeydùngmột shared resource nêncó integrity level là mediumKhiUnikey hook vào IE nhậnthôngđiệpbànphím do cơchế UIPI, IE khôngthểgửithôngđiệpđếnchochoUnikey. KếtquảUnikeykhôngchuyểnđổidấuchocáckýtự.GiảiphápcủaanhPhan Kim Long:Hạmức integrity level củashared resource trongUnikeyxuốngmức low bằngvớimứccủa IE. IE sẽgửiđượcthôngđiệpđếnUnikey.Microsoft Confidential
User Interface Privilege IsolationMicrosoft ConfidentialUnikeyIEIEUnikey
Version checking -Kiểmtrasaiphiênbản HĐHWindows 7 có version number làWindows NT 6.1 chứkhôngphảilà 7.x.Lỗixảyrakhiphầnmềmkiểmtra version của HĐH dùng so sánh = hoặc !=.Cáchđúnglàphải so sánh <= và >=Khôngnhấtthiếtkiểmtraversion, vớihàmđặcbiệtcóthểđặtlờigọitrongtry catchMicrosoft Confidential
Version Checker : SolutionsKhôngnênif (Environment.OSVersion.Version!=new Version(5, 1)){MessageBox.Show("Windows XP required.",                    "Incompatible Operating System",MessageBoxButtons.OK,MessageBoxIcon.Error);return;}Nênif (Environment.OSVersion.Version <new Version(5, 1)){MessageBox.Show("Windows XP or later required.",                    "Incompatible Operating System",MessageBoxButtons.OK,MessageBoxIcon.Warning);}
Microsoft ConfidentialKiểmtratươngthíchsảnphẩmphầnmềmtrênWindows 7
Microsoft Application Compatibility ToolkitMicrosoft ConfidentialChạythửvàpháthiệnnhữnglỗikhôngtươngthíchtrongphầnmềm.
Application Compatibility ToolkitACT là gì ?Bộ công cụ hỗ trợ tương thích ứng dụngACT dùng để làm gì ? ( Tại sao cần ?)Kiểm tra độ tương thích ứng dụngCung cấp thông tin về vấn đề không tương thíchSửa và làm giảm nhẹ vấn đề tương thíchTôi có thể lấy về ở đâu ?Tải xuống miễn phí tại http://tiny.cc/JZzeC(http://www.microsoft.com/downloads/details.aspx?familyid=24da89e9-b581-47b0-b45e-492dd6da2971&displaylang=en)
Cáccôngcụchínhtrong ACTInternet Explorer Compatibity Test Tool: kiểmtratínhbảomật, tươngthíchcủaứngdụng web trêntrìnhduyệt IE7, IE8.Standard User Analyzer: chạythửứngdụng, bắtnhữnglệnhgọi API khôngtươngthíchvớiWindows 7, tạomảnhválỗikhôngtươngthích– shim.Compatibility Administrator: sửađổi chi tiếttừnglỗikhôngtươngthíchvàtạoramảnhvá shim.Application Compatibility Manager: tạo package đểtheodõilỗikhôngtươngthíchsauđógửilên server.
Application Compatibility ToolkitQuytrìnhlàmviệcVideo: ApplicationManager.wmv
Application Compatibility Toolkit

More Related Content

PDF
Các lỗi trong lập trình C
PDF
Tai lieuhuongdansudung
DOC
chủ đề 4: tìm hiểu về teamviewer
PDF
Chương 7 Các ứng dụng trong mạng máy tính - Giáo trình FPT
PDF
Nguyen Dang Van
DOCX
Nguyễn Đằng Vân_Báo Cáo Giữa Kỳ
PDF
Bao cao thuc tap tuan 5
PDF
Bai giangvb.net
Các lỗi trong lập trình C
Tai lieuhuongdansudung
chủ đề 4: tìm hiểu về teamviewer
Chương 7 Các ứng dụng trong mạng máy tính - Giáo trình FPT
Nguyen Dang Van
Nguyễn Đằng Vân_Báo Cáo Giữa Kỳ
Bao cao thuc tap tuan 5
Bai giangvb.net

Similar to Fix incompatible issues of old applictions on Windows 7 (20)

PDF
Quy trình số hóa tài liệu (hướng dẫn chi tiết) - 0919898933
DOC
Tailieu.vncty.com bao cao mang may tinh va internet
PPT
Giai phap phong chong Virus danh cho doanh nghiep cua Bitdefender
DOCX
Hướng dẫn-cài-đặt-để-sữ-dụng-enterprise-architect-để-thiết-kế-các-mô-hình
DOCX
Báo cáo thực tập hàng tuần
PDF
Hướng dẫn cài đặt phần mềm kế toán Fast Accounting 11
PDF
Bai giangvb.net
PDF
HƯỚNG DẪN SỬ DỤNG PHẦN MỀM SUBVERSION (SVN) TOÀN TẬP
PDF
Tra loi lythuyet_thvp
DOC
Bao mat cho cac may tinh cua to chuc
PPTX
Deploy Desktop Central
DOCX
Bao cao tuan 123
DOCX
Bao cao thuc tap
DOCX
Bao cao thuc tap athena chinh sua
PPT
1 gioi thieu httt
DOC
Tai lieu quan tri he thong erp oracle
PPTX
Trần Anh Khoa - Kautilya và Powershell trong kỹ thuật tấn công tiếp cận
PPT
Bai 08 lua chon cau hinh
PPTX
Slide báo cáo: System Hacking
PPTX
Báo cáo system hacking
Quy trình số hóa tài liệu (hướng dẫn chi tiết) - 0919898933
Tailieu.vncty.com bao cao mang may tinh va internet
Giai phap phong chong Virus danh cho doanh nghiep cua Bitdefender
Hướng dẫn-cài-đặt-để-sữ-dụng-enterprise-architect-để-thiết-kế-các-mô-hình
Báo cáo thực tập hàng tuần
Hướng dẫn cài đặt phần mềm kế toán Fast Accounting 11
Bai giangvb.net
HƯỚNG DẪN SỬ DỤNG PHẦN MỀM SUBVERSION (SVN) TOÀN TẬP
Tra loi lythuyet_thvp
Bao mat cho cac may tinh cua to chuc
Deploy Desktop Central
Bao cao tuan 123
Bao cao thuc tap
Bao cao thuc tap athena chinh sua
1 gioi thieu httt
Tai lieu quan tri he thong erp oracle
Trần Anh Khoa - Kautilya và Powershell trong kỹ thuật tấn công tiếp cận
Bai 08 lua chon cau hinh
Slide báo cáo: System Hacking
Báo cáo system hacking
Ad

More from TechMaster Vietnam (20)

PDF
Neural Network from Scratch
PPTX
Go micro framework to build microservices
PPTX
Flutter vs React Native 2018
PDF
C đến C++ phần 1
PDF
Control structure in C
PDF
Basic C programming
PDF
Authentication and Authorization
PDF
Postgresql security
PDF
Knex Postgresql Migration
PDF
Postgresql các vấn đề thực tế
PPTX
Arrowjs.io
PPTX
Minimum Viable Products
PPTX
Chia sẻ kinh nghiệm giảng dạy CNTT
PPTX
Cơ sở dữ liệu postgres
PDF
Node.js căn bản
PDF
Tìm nền tảng lập trình cho 5 năm tới
PDF
iOS Master - Detail & TabBar
PDF
Phalcon căn bản
PDF
Cấu hình Postgresql căn bản trong 20 phút
PDF
Phalcon introduction
Neural Network from Scratch
Go micro framework to build microservices
Flutter vs React Native 2018
C đến C++ phần 1
Control structure in C
Basic C programming
Authentication and Authorization
Postgresql security
Knex Postgresql Migration
Postgresql các vấn đề thực tế
Arrowjs.io
Minimum Viable Products
Chia sẻ kinh nghiệm giảng dạy CNTT
Cơ sở dữ liệu postgres
Node.js căn bản
Tìm nền tảng lập trình cho 5 năm tới
iOS Master - Detail & TabBar
Phalcon căn bản
Cấu hình Postgresql căn bản trong 20 phút
Phalcon introduction
Ad

Fix incompatible issues of old applictions on Windows 7

  • 2. Nội dung trìnhbàyCáclỗigâykhôngtươngthíchtrên Windows 7KiểmtratínhtươngthíchcủaphầnmềmSửdụngbộcôngcụ Application Compatibility ToolkitđểsửalỗikhôngtươngthíchMicrosoft Confidential
  • 3. CâuchuyệntươngthíchMicrosoft ConfidentialỞ trườnghọc, họcsinhViệtnamđượcdạydấuthậpphânlàdấuphẩy. Vídụ: Pi = 3,14159Ở côngty, chúng ta lạiquendùngdấuthậpphânlàdấuchấm. Pi = 3.14159Chuẩn ổ cắmđiệnViệtnamlà 2 lỗ. Thiếtbịđiệntử ở VN cónhiềuloạiphíchcắm như haichântròn, haichândẹt, bachân, bachânvuông, 2 dẹtmộttròn….Ô tôtayláithuận<> nghịchBướcrănghệmét <> hệ Anh
  • 4. Tạisaocầnchuyểnđổilên Windows 7?Microsoft ConfidentialWindows XP đủtốtnhữngđãquácũ.Windows Vista khôngcònđượcbán.Windows 7 nhanh, ổnđịnh, thânthiệnvàyêucầuphầncứngnhư Windows Vista.Phầnmềmkhôngchạyđượctrên Windows 7 ► mấtđicơhộibánphầnmềmtrên HĐH thịnhhànhtrongvòng 5 nămnữa.
  • 5. Mộtsốhìnhảnh Windows 7 tạiNhậtBảnMicrosoft Confidential
  • 6. Mộtsốhìnhảnh Windows 7 tạiNhậtBảnMicrosoft Confidential
  • 7. Mộtsốhìnhảnh Windows 7 tạiNhậtBảnMicrosoft Confidential
  • 8. 6 lỗicơbảngâykhôngtươngthíchtrên Windows 7Microsoft ConfidentialData Redirection –đổihướngghivàotàinguyênhệthốngHigh DPI – giaodiệnxôlệch ở chếđộphângiảicaoInstaller Detection – nhậndiệnsaitrìnhcàiđặtSession 0 Isolation – ràocảngiữacác session User Interface Privilege Isolation - vênhquyềngiữa 2 tiếntrìnhVersion Checking – đọcsaiphiênbản HĐH
  • 9. User Account Control - UACMicrosoft Confidential
  • 10. User Account Control : Over ViewMặcđịnh logon vớiquyền standard userTựđộngnângquyềnkhicầnthiếtNgăncảnmọisựtruycậptàinguyên “nhạycảm” khichưađượcphépStandard user khôngthểCàiđặt 1 sốứngdụngThayđổithànhphầnhệthốngThayđổicácthông tin thiếtlậpmáyQuảntrịquyền
  • 11. Window 7 UAC có 4 mứcbảovệMặcđịnh
  • 12. Giảithíchmứcđộcảnhbáotrong UACHigh:Cảnhbáokhicóứngdụngmuốncàiđặthoặcthayđổithông tin hệthốngCảnhbáokhingườisửdụngthayđổithiếtlậpchomáyMedium: MứcmặcđịnhChỉcảnhbáokhicóứngdụngmuốncàiđặthoặcthayđổithông tin hệthốngKhôngcảnhbáokhingườisửdụngthayđổithiếtlậpchomáyLow: Chỉcảnhbáokhicóứngdụngmuốncàiđặthoặcthayđổithông tin hệthốngnhưngkhônglàmmờmànhìnhOff: UAC offKhôngcảnhbáogìcả
  • 13. User Account Control LevelsChạy notepad và save file vàothưmục C:Với Normal user thìbáokhôngcóquyềnvàkhôngchoghi file.Với Administrator thìghi file thànhcông.
  • 14. Hiêuứng UAC vớiứngdụngcũcho XP.KhôngcàiđặtđượcứngdụnghoặccàiđặtsaiỨngdụngbáolỗi : Access denies Don’t have permissionKhôngtìmthấy file dữliệuđãlưu
  • 15. Chuyểnhướngkhitruyxuất file, registryTrong Windows 7, ngườidùngbìnhthườngbịgiớihạntruyxuấttớimộtsốtệp, thưmụcvà registry key baogồm:Thưmục Windows, Program Files, thưmụcgốc C:\HKEY_LOCAL_MACHINEỨngdụngcũkhichạytrên Windows 7 khôngghivàothưmụchệthống, registry HKLM -> gâylỗi. Đâylàlỗirấtphổbiến.Phânbiệtgiữaứngdụng UAC và non UAC:UAC: User Account ControlỨngdụng UAC: có file manifest địnhnghĩa UAC. Đượcbiêndịchbằng Visual Studio 2008Ứngdụng non UAC khôngcófile manifest, đượcbiêndịchVisual Studio phiênbảncũ…
  • 16. CáchxửlýđơngiảnnhấtNhấpchuộtphảichọn “Run as administrator”ChọnchếđộchạytươngthíchXP Mode
  • 17. Giảiquyếtbằngnhúng file manifestNhúng file manifest<security> <requestedPrivileges> <requestedExecutionLevel level="requireAdministrator“ /> </requestedPrivileges> </security>Cácmức requestAsInvoker: bằngvớiquyềnngườiđangmáytínhHighestAvailable: quyềncaonhấtcóthể, khi normal user đượcgánthêmmộtsốquyềnRequireAdministrators: chạyvớiquyền AdministratorVideo: Manifest_RequireAdministrator.wmv
  • 18. User Account Control : SolutionsThiết kế ứng dụng với mô hình Admin Broker Model.Application.exe (File chạy) Chạy với quyền của Standard User
  • 19. Thực hiện nghiệp vụ của ứng dụngApplication-Setting.exe (File chạy) Nhúng file manifest
  • 20. Luôn chạy với quyền Administrator
  • 21. Thực hiện thay đổi cấu hình, thông tin toàn cục.
  • 22. Start/ Stop Service
  • 24. Ghi thông tin cấu hình máy ( Program File, Registry )
  • 25. …Data Redirection - ẢohóaMicrosoft Confidential
  • 26. Data Rediretion : vấnđềKhôngtìmthấy file trongthưmụcđãghi.Khôngtìmthấykhóa Registry theo path đãghi.Ứngdụngđãcậpnhậpnhưngvẫnsửdụngcác file cũ.Ứngdụngđãbịgỡbỏnhưngvẫntồntại file ráctrongkhuvựcảohóa.Lỗikhighi, sửa, xóa file, thưmục.Lỗikhighi, sửa, xóa key trong HKLM.
  • 28. Ảohóakhitruyxuất file & registryPhầnmềm non-UAC truyxuấttệpvà registry bịgiớihạnsẽbịđổihướngTruyxuất file chuyểnhướng (ảohóa) vàoVirual Store (C:\Users\Bob\AppData\Local \VirtualStore)Truyxuất registry ảohóavào HKCU\Classes\VirtualStoreFile, registry sẽđượccánhânhóachotừng normal user chứkhôngdùngchung như trước.DữliệusẽđượclưuvàochỗkhácServices ngoạilệvới UAC vàkhôngbịảohóaChạyứngdụngbằng Administrator thìsẽkhôngbịảohóaẢohóalàgiảipháptrong Windows 7 32 bit sẽkhôngđượchỗtrợtrong Windows 7 64 bit vàthếhệkếtiếp.
  • 29. TrườnghợpkhôngảohóaỨngdụngchạytrên Windows 7 64 bit.Ứngdụngcó UAC khitruyxuấtvàothưmục , registry hệthốngsẽbịchặnẢohóatruyxuấtkhôngđượckíchhoạt, thaotácvớidữliệusẽđượckiểmtraquyềntheo NFTS hoặc registry ACLs ápdụngchotừngvùngtàinguyênMặcđịnhcácứngdụngđượcbiêndịchbằng Visual Studio 2008 sẽđikèmvới file manifest
  • 30. Ảo hóa truy xuất file với normal userỨng dụng cũỨng dụng cho Windows 7\Windows\App.iniUser modeKernel modeLuafv.sys\Users\<user>\AppData\Local\VirtualStore\Windows\App.ini\Windows\App.iniNtfs.sysAccess Denied
  • 31. Ảo hóa truy xuất registry với normal userỨng dụng cũỨng dụng cho Windows 7HKLM\Software\AppUser modeAccess DeniedKernel modeNtoskrnl.exeHKCU\Software\Classes\VirtualStore\Machine\Software\AppRegistry
  • 32. XửlýlỗiảohóaNhúng file manifest vớirequestedExecution- LevelphùhợpGiảmbớthạnchếquyềntruycậptrongAccces Control List (ACL)Ghidữliệutheo user hoặcvàcáckhuvựcchung.Sửdụng Standard User Analyzer hoặc Compatibility Administrator đểsửa.Demo…
  • 33. DPI: dot per inchMicrosoft Confidential
  • 34. High DPI Problem: giao diện xô lệch ở mức DPI caoClipped textLayout issues and image size issuesPixilated bitmapsWinForms issuesBlurry UIMismatched font sizes
  • 35. Hight DPI : ProblemCác control phóng to thunhỏkhôngđồngđều.Sửdụngnhiều font chữkhácnhaukhôngđồngnhấtSửdụngđồhọa rasterẢohóa DPI trong Window 7 làm UI bịmờ.
  • 37. Chỉnh DPI qua Display Control PanelDPI: Dot Per InchWindows 7 co dãn DPI theo tỷ lệ phần trăm100% = 96 DPI125% = 120 DPI150% = 144 DPIDPI càng cao, HĐH sẽ dùng nhiều dot để vẽ giao diện control hơn. Một số control có kích thước dot cố định không tự động co dãn sẽ làm giao diện bị xô lệch.
  • 38. Giao diện khi đổi thuộc tính AutoScaleMode từ DPI sang NoneMicrosoft ConfidentialDPI ScallingNone DPI Scalling, chữ không tương đương với form nữa
  • 39. Hight DPI : SolutionNhúng file manifest đểứngdụngnhậnbiết DPISửdụng font chữ TrueType hoặcOpenType ( Font cóphầnmởrộnglàttfvàotf )<asmv3:application> <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings"><dpiAware>true</dpiAware> </asmv3:windowsSettings> </asmv3:application>
  • 40. Xử lý lỗi giao diên xô lệch khi thay đổi DPIVớiứngdụng .NETĐặtthuộctính“AutoScaleMode” = “Font” or “DPI”Native Win32 applicationsBe DPI Aware – include DPI Aware manifestScale all UI text, points and sizes using the DPI values returned by the GetDeviceCaps API
  • 41. Hight DPI : best practiceĐộphângiảihiệuquảlàđộphângiảitốithiểumàứngdụngcầnđểcóthểhiểnthịđầyđủTínhtoánđộphângiảihiệuquảVídụ : Mànhìnhhiểnthị 1200x900 với DPI = 146 thìđộphângiảihiệuquảlà 800x600.Tậndụngđồhọa vector thaycho raster.Độ phân giải hiệu quả = Độ phân giải vật lý / (DPI/96).
  • 43. Nhận diện sai trình cài đặtTrình cài đặt trước Vista dùng quyền administratorGhi, sửa vào thư mục Program File, registry HKEY_LOCAL_MACHINEWindows 7 chạy chương trình dùng quyền của normal userKhiến trình cài đặt thất bại ở một số tác vụWindows 7 nhận biết trình cài đặt để nâng cấp quyền hạn cho phù hợp.Giải pháp: dùng thuật toán phỏng đoán nếu một file chạy là trình cài đặt. Tuy nhiên phỏng đoán có xác suất bị sai.Chỉ áp dụng với file chạy 32 bit không có file Manifest đi kèm.Nếu tên file có chứa “install”, “setup”, “update” xác suất cao sẽ là trình cài đặt. Ngoại lệ, ví dụ Stock_Update.exe không phải là trình cài đặt. Hoặc CaiDatKeToan.exe lại là trình cài đặt.
  • 45. Giải phápThêm file manifest mô tả thông tin UAC: nhúng hoặc đi kèm theo trình cài đặtSử dụng file manifest đi kèm dễ hơn vì không cần biên dịch lại trình cài đặtNamed MyApp.Exe.manifest <requestedExecutionLevel level=“?”>asInvoker– quyền bằng trình kích hoạt, không đủ để cài đặtrequireAdministrator– yêu cầu nâng quyền lên Administrator để cài đặt
  • 46. Session 0 IsolationMicrosoft ConfidentialSeSessionWindow station (WinSta0)Desktop (default desktop)User application or service
  • 47. Thay đổi trong kiến trúc session của HĐHTrong Windows XP, ứngdụnggiaodiệnvà service cùngchạytrong session 0.Từ Vista trởđi, session 0 dànhriêngđểchạy services.Ứngdụnggiaodiệnngườidùngsẽchạytrên session 1, 2, 3…Vấnđềphátsinhvớikiếntrúcmới:Lậptrìnhvới API cũ, Windows message khôngvượt qua ranhgiớicủa session.Kernel objects đượcnằmriêngtrongtừngsession.Service khôngthểtươngtác, hiểnthị UI trên desktop.Lỗinàyítxảyravớiứngdụngphầnmềm ở Việtnam.
  • 48. HướngxửlýGửi message (thôngđiệp) từ service đếnứngdụng GUI bằnghàmWTSSendMessage. ThựcchấthàmWTSSendMessagedùngđểhiểnthị dialog box từmột remote session (phiênđiềukhiểnmáytínhtừxa)Hoặc service chạyhàmCreateProcessAsUsertạoramột process đểchạyứngdụng GUI
  • 49. User Interface Privilege Isolation- vênhquyềngiữa 2 tiếntrìnhTừ Vista, Microsoft đưara integrity level (mứchòađồng)Mặcđinhmộttiếntrìnhkhôngthểgửithôngđiệpđếntiếntrìnhkháccómứchòađồngcaohơn.CơchếnàygọilàUser Interface Privilege Isolation (UIPI) ~ phânbiệtđặcquyềngiaodiện.Thườngxảyravớinhữngchươngtrìnhviếtbằng C++.
  • 50. Unikeyvà Internet ExplorerUnikeyphiênbảntrướcđâykhôngthểgõtiếngViệtvào IE 7, 8. Khihạmức UAC thìlạigõđược.TìnhtrạngcủaUnikeyphiênbảncũ, gõtiếngViệtvào IE.IE chạy ở low integrity levelUnikeydùngmột shared resource nêncó integrity level là mediumKhiUnikey hook vào IE nhậnthôngđiệpbànphím do cơchế UIPI, IE khôngthểgửithôngđiệpđếnchochoUnikey. KếtquảUnikeykhôngchuyểnđổidấuchocáckýtự.GiảiphápcủaanhPhan Kim Long:Hạmức integrity level củashared resource trongUnikeyxuốngmức low bằngvớimứccủa IE. IE sẽgửiđượcthôngđiệpđếnUnikey.Microsoft Confidential
  • 51. User Interface Privilege IsolationMicrosoft ConfidentialUnikeyIEIEUnikey
  • 52. Version checking -Kiểmtrasaiphiênbản HĐHWindows 7 có version number làWindows NT 6.1 chứkhôngphảilà 7.x.Lỗixảyrakhiphầnmềmkiểmtra version của HĐH dùng so sánh = hoặc !=.Cáchđúnglàphải so sánh <= và >=Khôngnhấtthiếtkiểmtraversion, vớihàmđặcbiệtcóthểđặtlờigọitrongtry catchMicrosoft Confidential
  • 53. Version Checker : SolutionsKhôngnênif (Environment.OSVersion.Version!=new Version(5, 1)){MessageBox.Show("Windows XP required.", "Incompatible Operating System",MessageBoxButtons.OK,MessageBoxIcon.Error);return;}Nênif (Environment.OSVersion.Version <new Version(5, 1)){MessageBox.Show("Windows XP or later required.", "Incompatible Operating System",MessageBoxButtons.OK,MessageBoxIcon.Warning);}
  • 55. Microsoft Application Compatibility ToolkitMicrosoft ConfidentialChạythửvàpháthiệnnhữnglỗikhôngtươngthíchtrongphầnmềm.
  • 56. Application Compatibility ToolkitACT là gì ?Bộ công cụ hỗ trợ tương thích ứng dụngACT dùng để làm gì ? ( Tại sao cần ?)Kiểm tra độ tương thích ứng dụngCung cấp thông tin về vấn đề không tương thíchSửa và làm giảm nhẹ vấn đề tương thíchTôi có thể lấy về ở đâu ?Tải xuống miễn phí tại http://tiny.cc/JZzeC(http://www.microsoft.com/downloads/details.aspx?familyid=24da89e9-b581-47b0-b45e-492dd6da2971&displaylang=en)
  • 57. Cáccôngcụchínhtrong ACTInternet Explorer Compatibity Test Tool: kiểmtratínhbảomật, tươngthíchcủaứngdụng web trêntrìnhduyệt IE7, IE8.Standard User Analyzer: chạythửứngdụng, bắtnhữnglệnhgọi API khôngtươngthíchvớiWindows 7, tạomảnhválỗikhôngtươngthích– shim.Compatibility Administrator: sửađổi chi tiếttừnglỗikhôngtươngthíchvàtạoramảnhvá shim.Application Compatibility Manager: tạo package đểtheodõilỗikhôngtươngthíchsauđógửilên server.
  • 60. Application Compatibility ToolkitThành phần chính của ACTApplication Compatibility ManagerCompatibility AdministratorStandard User AnalyzerIE Compatibility Test ToolSetup Analysis Tool
  • 61. Application Compatibility ToolkitData CollectorTạo gói cài đặt triển khai được trên nhiều máyThu thập dữ liệu về lỗi không tương thích ứng dụngGhi ra file log Service Upload dữ liệu vào DB MS SQL SERVER 2005
  • 62. Application Compatibility ToolkitData AnalyzerThôngbáocáclỗikhôngtươngthíchHỗtrợhiểnthịreport theomongmuốnĐồngbộhóadữliệuvớicộngđồngđểtìmgiảiphápkhắcphục
  • 63. Application Compatibility ToolkitTest & MitigateTest tool : SUA, IE Compatibility Test Tool, Setup Analyzer ToolMitigatation Tool : Compatibility Administrator
  • 64. Shim – MiếngváShim sử dụng các kỹ thuật được tích hợp sẵn như ảo hóa, sửa đổi ACL, …
  • 65. Phát triển ứng dụng tương thíchXác định loại ứng dụngStandard User onlyAdministrator onlyMixXây dựng theo mô hình Admin BrokerLưu trữ thông tin theo user ( per user )Hiển thị theo chế độ DPITách biệt trình cập nhập (nếu có)Sử dụng trình cài đặt hỗ trợ Window 7

Editor's Notes

  • #14: Tất nhiên với mức mặc định
  • #34: TrueType khác với OpenType ở điểm nào?OpenType được xây dựng từ TrueType và được thêm một số đặt điểm mới thông minh hơn. Tuy nhiên cả 2 loại font đề hỗ trợ hiển thị font ở các kích thước khác nhau rất tốt. Không giống như bitmap font chỉ cố định trông một kích thước, khi bị phóng to sẽ bị răng cưa giống nhu khi ta phóng to ảnh bitmap trong Window.
  • #36: Độ phân giải hiệu quả là gì?Hãy giải thích thêm lên trang hoặc vào phần NotesVới ứng dụng cần hiển thị 1200x900 với DPI = 150% thì có thể tương đương với độ phân giải 800x600 với mức DPI = 100%. Nếu nhỏ hơn thì ứng dụng sẽ không thể hiển thị hết toàn bộ giao diện và bị lỗi
  • #42: Services are an integral mechanism built into any Windows operating systems. Services are different from user applications because you can configure them to run from the time a system starts up until it shuts down, without requiring an active user to be present. Services on Windows are responsible for all kinds of background activity that do not involve the user, ranging from the Remote Procedure Call (RPC) service to the Network Location Awareness service. Some services may attempt to display user interface dialogs or communicate with user applications. Such services face compatibility problems with Windows 7. You may own a service that is trying to display a dialog box, but instead, displays only a flashing icon on the taskbar. To be specific, your service may experience one or more of the following symptoms. The service: 1. Is running, but it is not doing anything that it is supposed to do 2. Is running, but other processes cant communicate with it 3. Is trying to communicate with user applications through window messages, but the window messages are not reaching their destination 4. Displays a flashing icon on the taskbar