ライトニングトーク smblt(マニフェストと仲良くなろう) 201510_山田

19
互互互互互互互互互 互互互互 WINDOWS 互互互互互互互互互互互 WINDOWS 互互互互互互 互互互 (@84TAKA0310)

Upload: takatoshi-yamada

Post on 17-Feb-2017

194 views

Category:

Software


0 download

TRANSCRIPT

Page 1: ライトニングトーク Smblt(マニフェストと仲良くなろう) 201510_山田

互換性アシスタントの仕組みWINDOWS の番人の働きっぷりから、 WINDOWS の中身を知る

山ピー (@84TAKA0310)

Page 2: ライトニングトーク Smblt(マニフェストと仲良くなろう) 201510_山田

はじめに右の画面を良くみる。気になっていたので、調べてみました。

Page 3: ライトニングトーク Smblt(マニフェストと仲良くなろう) 201510_山田

■ 目次・互換性アシスタントとは?・マニフェストとは?・回避方法

Page 4: ライトニングトーク Smblt(マニフェストと仲良くなろう) 201510_山田

互換性アシスタントとは?変なアプリを動作させないように、常時監視をしている OS のサービス。これにはマニフェストが関係します。

Page 5: ライトニングトーク Smblt(マニフェストと仲良くなろう) 201510_山田

マニフェストとは?・何かをするために必要な宣言書・選挙公約→OS に対して、私はこのような動作を します、と宣言をするためのもの。

Page 6: ライトニングトーク Smblt(マニフェストと仲良くなろう) 201510_山田

マニフェストでできること・ UAC ( User Account Control )  →管理者レベルのアクセス許可を制御・ DPI( 画面解像度 ) 制御・動作する OS によって、監視内容が変わる

Page 7: ライトニングトーク Smblt(マニフェストと仲良くなろう) 201510_山田

マニフェスト: UAC(User Account Control)正体は、コレ。 EXE に埋め込まれています。<?xml version="1.0" encoding="UTF-8" standalone="yes"?><assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity version="1.0.0.0" processorArchitecture="X86" name="WindowsApplication1" type="win32"/> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> <security> <requestedPrivileges> <requestedExecutionLevel level="requireAdministrator"/> </requestedPrivileges> </security> </trustInfo></assembly>

同じように、 DPI 、 OS制御も埋め込むことができる。

Page 8: ライトニングトーク Smblt(マニフェストと仲良くなろう) 201510_山田

マニフェストでできること・ UAC ( User Account Control )  →管理者レベルのアクセス許可を制御・ DPI( 画面解像度 ) 制御・動作する OS によって、監視内容が変わる

Page 9: ライトニングトーク Smblt(マニフェストと仲良くなろう) 201510_山田

動作する OS によって、監視内容が変わる不正動作をしたら、 OS が警告を表示する。Windows Vista ~:  exe の名称に setup 、 install 、 update などを含むと、  UAC を表示してインストーラーとして昇格。 挙動を監視する。

Page 10: ライトニングトーク Smblt(マニフェストと仲良くなろう) 201510_山田

UAC(User Account Control)よく見ますね。自動昇格・・・

Page 11: ライトニングトーク Smblt(マニフェストと仲良くなろう) 201510_山田

監視する内容アンインストール情報を書き込まずにアプリが終了すると NG 。※ インストーラーとして認識するため。それに加えて・・・

Page 12: ライトニングトーク Smblt(マニフェストと仲良くなろう) 201510_山田

監視する内容Windows7 以降は、 OS と互換性があるアプリかを自動監視。→Compatibility セクション 

Page 13: ライトニングトーク Smblt(マニフェストと仲良くなろう) 201510_山田

監視する内容Windows8.1 で GetOS() を使うと「 8です」と返されたことありませんか?→Compatibility セクションの値を 返します。互換性に引っかかると・・・

Page 14: ライトニングトーク Smblt(マニフェストと仲良くなろう) 201510_山田

互換性アシスタントこれが表示されます

カギは、やっぱしマニフェスト・・・

Page 15: ライトニングトーク Smblt(マニフェストと仲良くなろう) 201510_山田

互換性アシスタントファイルのフルパスで情報を、レジストリーに保存しています。HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Compatibility Assistant\Persisted

Page 16: ライトニングトーク Smblt(マニフェストと仲良くなろう) 201510_山田

回避方法WindowsVista : EXEに電子署名をすれば OK。Windows7~: EXEに電子署名 + 動作させたい OS のCompatibilityを設定。※ ただし、Win10やWin8.1などで検証するとそうではない場合もある模様。 ご存じの方、教えてください (>_<)

Page 17: ライトニングトーク Smblt(マニフェストと仲良くなろう) 201510_山田

最後にOS も日々進化している。常に正しい知識をもって、対応していこう。ご静聴ありがとうございました。

Page 18: ライトニングトーク Smblt(マニフェストと仲良くなろう) 201510_山田

参考文献Microsofthttp://windows.microsoft.com/ja-jp/windows/program-compatibility-assistant-faq#1TC=windows-7InstallShieldhttps://hds.networld.co.jp/helpdesk/support/FaqFacadeServlet?TaskType=Detail&seriesId=InstallShieldFAQ&id=00001560&categoryId=0074&JspUrl=/support/FrequentlyDetail.jsp

Page 19: ライトニングトーク Smblt(マニフェストと仲良くなろう) 201510_山田

参考文献 ( 続き )DSAS 開発者の部屋 http://dsas.blog.klab.org/archives/51785861.html※ アイコン:ポラパレット (http://illust-hp.com/)