【17-D-6】.NETアセンブリの宿命

Developers Summit
Developers SummitDevelopers Summit
.NETアセンブリの宿命

                 近藤和彦
                 日本マイクロソフト株式会社
                 デベロッパー&プラットフォーム統括本部
                 開発ツール製品部

17-D-6
                 エグゼクティブプロダクトマネージャー
                 岩沢宏美
                 株式会社エージーテック
                 プロダクト&プランズ
                 プロダクトマネージャー

     Developers Summit 2011
Office
                    アプリケーション
                                     モバイル/組み込み
    Web
                                     アプリケーション
    アプリケーション



                                       サーバー
                                       アプリケーション




クライアント
アプリケーション




               設計      開発      テスト    クラウド
                                      アプリケーション

                       管理
Office
                    アプリケーション
                                     モバイル/組み込み
    Web
                                     アプリケーション
    アプリケーション



                                       サーバー
                                       アプリケーション




クライアント
アプリケーション




               設計      開発      テスト    クラウド
                                      アプリケーション

                       管理
Office
                    アプリケーション
                                     モバイル/組み込み
    Web
                                     アプリケーション
    アプリケーション



                                       サーバー
                                       アプリケーション




クライアント
アプリケーション




               設計      開発      テスト    クラウド
                                      アプリケーション

                       管理
Visual Studio 2010 / .NET Framework 4 対応
    開発者向けコンテンツ


•    アプリケーション アーキテクチャ ガイド 2.0
•    Visual Studio 2010 によるWindows アプリケーション開発の基礎
•    XAML による Windows アプリケーション開発の基礎
•    ASP.NET による Web アプリケーション開発の基礎
•    Silverlight による Web アプリケーション開発 (Coming Soon!)
•    データアクセス (Visual Studio 2010 /.NET Framework 4 対応)
•    Visual Studio 2010 開発ガイド
•    Expression Blend 4 開発者向けガイド (Coming Soon!)
•    Expression Blend 4 SketchFlow 開発者向けガイド (Coming Soon!)
•    単体テストの自動化
•    ユーザーインターフェイスの自動テスト
•    Test Manager 2010 を活用したテスト プロセスの包括的な管理
•    Visual Studio Lab Management 2010 によるテスト環境の仮想化
•    Team Foundation Server 2010 によるソースコード管理入門




www.microsoft.com/japan/vstudio
© 2011 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows 7 and other product names are or may be registered trademarks and/or trademarks in the U.S.
and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must
respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information
provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
【17-D-6】.NETアセンブリの宿命
【17-D-6】.NETアセンブリの宿命
難読化とは

 難読化とは逆コンパイラの出力を分り難い
  ものに変換し、プログラムの解析に必要な
  労力を増やすこと。
難読化の仕組み
名前の変更

 プログラマーは意味のある識別子を使って人が
  見て分りやすいコードを書く。
 .NETアセンブリには識別子情報がそのまま残っ
  ている。

 意味のある識別子を意味のない文字に変更。
  クラス、インターフェイス、メソッド、フィールドなど
      GetPayroll(int key) => a(int a)
 難読化の第一歩
名前の変更
- オーバーロード誘導TM
 異なるメソッド名を出来る限り同じ名前に変更。

 引数の型が異なる複数のメソッドを同じ名前、”a”
  に変更。
   GetPayroll( )        => a( )
   GetPayroll(int key)  => a(int a)
   MakeDeposit(float amt) => a(float a)
   SendPayment(string key) => a(string a)

 PreEmptive社の特許技術
制御フローの難読化
 .NETアセンブリには元のソースコードを厳
  密に反映する命令シーケンスがそのまま
  残っている。
 オリジナルのソースコードを反映しない、論
  理的に等価な命令シーケンスに変更。
 例: ブロックの並べ替え
    偽の制御フローの追加
 プログラムロジックを保護する。
文字列の暗号化

 .NETアセンブリには文字列はそのままの状
  態で残っている。
 ハッカーの一般的な攻撃の材料となる。

 文字列を暗号化することで攻撃の速度を遅
  らせる。
デモ:難読化してみよう (CE/PRO)

 Dotfuscatorを起動
 入力アセンブリを選択
 利用する難読化機能
   名前変更 (CE、PRO)
   制御フローの難読、文字列の暗号化(PRO)
 Dotfuscatorのプロジェクトファイルを保存
 ビルド開始
 難読化の結果を確認
VS2010付属
Dotfuscator CE 新機能
  インストルメンテーション
  Runtime Intelligence
    改ざん検出
    アプリケーションライフサイクルの管理
     (Shelf Life)
    アプリケーション分析
インストルメンテーションの方法
 コードを書かずに既存の.NETアセンブリに実装
                                   RI
                                 アセンブリ



                                                RI対応
  ソースコード    コンパイラ       入力       Dotruscator     出力
                       アセンブリ                   アセンブリ



                                  拡張属性



 ご参考:インストルメンテーション詳細
  http://msdn.microsoft.com/ja-jp/vstudio/ff462138
Runtime Intelligence

  改ざん検出
    改ざんが検出された場合に、アプリケーションを
     終了する。

  アプリケーションライフサイクル管理
    アプリケーションの有効期限を設定。
    手軽にアプリケーションの自主規制が可能。
Runtime Intelligence

  アプリケーション分析
   実行中のアプリケーションから情報を収集
   実際の利用状況を把握できる
     どのようなアプリケーションを実行しているか?
      (バージョン単位)
     どういう機能をどういう順番で実行しているか?
     それら機能にどのくらい時間をかけているか?


   開発計画、ビジネス戦略に役立つ
Runtime Intelligence
    ポータルサイト




  無償・有償版ポータルサイト
  ご参考: CodePlexのサイト (http://skypefx.codeplex.com/)
Dotfuscatorのソリューション

 アプリケーションの価値を保護して、高める!
保護              測定
リバース エンジニア      利用状況、安定性、
リング、改ざん、脆弱      実行環境などを安全
性攻撃、著作権侵害       かつ効率よく透過的
からの保護           に測定




防御              管理
改ざんや不正な実行       アプリケーションライ
に対してリアルタイム      フサイクルの管理
に防御
1 of 21

Recommended

2011年マイクロソフト テクノロジー振り返り~開発編~ by
2011年マイクロソフト テクノロジー振り返り~開発編~2011年マイクロソフト テクノロジー振り返り~開発編~
2011年マイクロソフト テクノロジー振り返り~開発編~Takeshi Shinmura
1.2K views42 slides
Web App Framework at SwapSkills vol28 by
Web App Framework at SwapSkills vol28Web App Framework at SwapSkills vol28
Web App Framework at SwapSkills vol28光一 原田
2.3K views38 slides
Open 棟梁 @ オープンソースカンファレンス 2015 Nagoya by
Open 棟梁 @ オープンソースカンファレンス 2015 NagoyaOpen 棟梁 @ オープンソースカンファレンス 2015 Nagoya
Open 棟梁 @ オープンソースカンファレンス 2015 NagoyaDaisuke Nishino
983 views50 slides
Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発 by
Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発
Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発Akira Inoue
3.4K views22 slides
Sf素人が2週間でアプリケーションビルダーに挑戦してみた by
Sf素人が2週間でアプリケーションビルダーに挑戦してみたSf素人が2週間でアプリケーションビルダーに挑戦してみた
Sf素人が2週間でアプリケーションビルダーに挑戦してみた政雄 金森
20.3K views18 slides
Open棟梁 社会インフラシステム アーキテクチャの提案 by
Open棟梁 社会インフラシステム アーキテクチャの提案Open棟梁 社会インフラシステム アーキテクチャの提案
Open棟梁 社会インフラシステム アーキテクチャの提案Daisuke Nishino
1.7K views13 slides

More Related Content

What's hot

その Web サイト、その Web アプリを最新の IE11 に対応しよう by
その Web サイト、その Web アプリを最新の IE11 に対応しようその Web サイト、その Web アプリを最新の IE11 に対応しよう
その Web サイト、その Web アプリを最新の IE11 に対応しようOsamu Monoe
9.7K views43 slides
クロスプラットフォーム開発入門 by
クロスプラットフォーム開発入門クロスプラットフォーム開発入門
クロスプラットフォーム開発入門minazou67
16.7K views50 slides
最新のプラットフォーム技術と開発ツールを活用した Web の構築 by
最新のプラットフォーム技術と開発ツールを活用した Web の構築最新のプラットフォーム技術と開発ツールを活用した Web の構築
最新のプラットフォーム技術と開発ツールを活用した Web の構築Tomoyuki Iwade
2K views20 slides
Lightingコンポーネントベーシック開発 by
Lightingコンポーネントベーシック開発Lightingコンポーネントベーシック開発
Lightingコンポーネントベーシック開発Akihiro Iwaya
7.8K views82 slides
Touch Platform によるモバイルアプリケーション開発 by
Touch Platform によるモバイルアプリケーション開発Touch Platform によるモバイルアプリケーション開発
Touch Platform によるモバイルアプリケーション開発Salesforce Developers Japan
1.7K views12 slides
Introduction sdk by
Introduction sdkIntroduction sdk
Introduction sdkCafejp Tizen
380 views29 slides

What's hot(20)

その Web サイト、その Web アプリを最新の IE11 に対応しよう by Osamu Monoe
その Web サイト、その Web アプリを最新の IE11 に対応しようその Web サイト、その Web アプリを最新の IE11 に対応しよう
その Web サイト、その Web アプリを最新の IE11 に対応しよう
Osamu Monoe9.7K views
クロスプラットフォーム開発入門 by minazou67
クロスプラットフォーム開発入門クロスプラットフォーム開発入門
クロスプラットフォーム開発入門
minazou6716.7K views
最新のプラットフォーム技術と開発ツールを活用した Web の構築 by Tomoyuki Iwade
最新のプラットフォーム技術と開発ツールを活用した Web の構築最新のプラットフォーム技術と開発ツールを活用した Web の構築
最新のプラットフォーム技術と開発ツールを活用した Web の構築
Tomoyuki Iwade2K views
Lightingコンポーネントベーシック開発 by Akihiro Iwaya
Lightingコンポーネントベーシック開発Lightingコンポーネントベーシック開発
Lightingコンポーネントベーシック開発
Akihiro Iwaya7.8K views
Kintone vs Salesforce vs Google by Daisuke Sugai
Kintone vs Salesforce vs GoogleKintone vs Salesforce vs Google
Kintone vs Salesforce vs Google
Daisuke Sugai5.5K views
[2001/05/30] .NET Developer Conference 2001 May / Visual Studio.NET による.NET対応... by Tatsuhiko Tanaka
[2001/05/30] .NET Developer Conference 2001 May / Visual Studio.NET による.NET対応...[2001/05/30] .NET Developer Conference 2001 May / Visual Studio.NET による.NET対応...
[2001/05/30] .NET Developer Conference 2001 May / Visual Studio.NET による.NET対応...
Tatsuhiko Tanaka539 views
Azure と Visual Studio で実践するモダナイゼーションとクラウド ネイティブ アプリケーション開発 by Akira Inoue
Azure と Visual Studio で実践するモダナイゼーションとクラウド ネイティブ アプリケーション開発Azure と Visual Studio で実践するモダナイゼーションとクラウド ネイティブ アプリケーション開発
Azure と Visual Studio で実践するモダナイゼーションとクラウド ネイティブ アプリケーション開発
Akira Inoue427 views
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル by Akira Inoue
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイルVisual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
Akira Inoue3.9K views
Introduction to Visual Studio App Center by Takeshi Fujimoto
Introduction to Visual Studio App CenterIntroduction to Visual Studio App Center
Introduction to Visual Studio App Center
Takeshi Fujimoto361 views
Salesforce Lightning をやってみてあれこれ by 寛 吉田
Salesforce Lightning をやってみてあれこれSalesforce Lightning をやってみてあれこれ
Salesforce Lightning をやってみてあれこれ
寛 吉田11.3K views
19-D-5 Silverlightを利用したビジネスアプリケーション作成のポイント by nishizaki
19-D-5 Silverlightを利用したビジネスアプリケーション作成のポイント19-D-5 Silverlightを利用したビジネスアプリケーション作成のポイント
19-D-5 Silverlightを利用したビジネスアプリケーション作成のポイント
nishizaki658 views
Windows ストアアプリから使かえるセンサーAPIとデバイスAPI by Osamu Monoe
Windows ストアアプリから使かえるセンサーAPIとデバイスAPIWindows ストアアプリから使かえるセンサーAPIとデバイスAPI
Windows ストアアプリから使かえるセンサーAPIとデバイスAPI
Osamu Monoe24.3K views

Viewers also liked

Las vocales by
Las vocalesLas vocales
Las vocalesIEM AGUSTIN AGUALONGO
246 views7 slides
Horizon by
HorizonHorizon
HorizonTELE-satellite ara
640 views8 slides
Duurzaam vastgoed nieuwskrant - november 2010 by
Duurzaam vastgoed nieuwskrant - november 2010Duurzaam vastgoed nieuwskrant - november 2010
Duurzaam vastgoed nieuwskrant - november 2010Netherlands Enterprise Agency (RVO.nl)
899 views8 slides
Recurrent abdominal wall desmoid – rectus muscle transposition by
Recurrent abdominal wall desmoid – rectus muscle transpositionRecurrent abdominal wall desmoid – rectus muscle transposition
Recurrent abdominal wall desmoid – rectus muscle transpositionSHAILESH NISAL
599 views11 slides
Antin my kind of people (clean) by
Antin   my kind of people (clean)Antin   my kind of people (clean)
Antin my kind of people (clean)Judd Antin
419 views26 slides
Financierbaarheid van ESCo's by
Financierbaarheid van ESCo'sFinancierbaarheid van ESCo's
Financierbaarheid van ESCo'sNetherlands Enterprise Agency (RVO.nl)
323 views7 slides

Viewers also liked(20)

Recurrent abdominal wall desmoid – rectus muscle transposition by SHAILESH NISAL
Recurrent abdominal wall desmoid – rectus muscle transpositionRecurrent abdominal wall desmoid – rectus muscle transposition
Recurrent abdominal wall desmoid – rectus muscle transposition
SHAILESH NISAL599 views
Antin my kind of people (clean) by Judd Antin
Antin   my kind of people (clean)Antin   my kind of people (clean)
Antin my kind of people (clean)
Judd Antin419 views
Hanemaaijer governance nieuw by Atrivé
Hanemaaijer   governance nieuwHanemaaijer   governance nieuw
Hanemaaijer governance nieuw
Atrivé381 views
Q&A Productivity Improvement Process by guestc559fc
Q&A Productivity Improvement ProcessQ&A Productivity Improvement Process
Q&A Productivity Improvement Process
guestc559fc435 views
Youth and Millennium Development Goals by Andeel Ali
Youth and Millennium Development GoalsYouth and Millennium Development Goals
Youth and Millennium Development Goals
Andeel Ali1.1K views
Trying to cancel your va loan by Eric Kandell
Trying to cancel your va loanTrying to cancel your va loan
Trying to cancel your va loan
Eric Kandell879 views
CB Youth 20 Somethings Presentation Final by Spencer Willis
CB Youth 20 Somethings Presentation FinalCB Youth 20 Somethings Presentation Final
CB Youth 20 Somethings Presentation Final
Spencer Willis319 views

Similar to 【17-D-6】.NETアセンブリの宿命

Force.com開発基礎 by
Force.com開発基礎Force.com開発基礎
Force.com開発基礎Salesforce Developers Japan
4.4K views27 slides
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~ by
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~Akira Inoue
7K views28 slides
[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践 by
[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践
[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践de:code 2017
3.5K views49 slides
TiTokyo conference in Tokyo, Japan for Appcelerator community (日本) by
TiTokyo conference in Tokyo, Japan for Appcelerator community (日本)TiTokyo conference in Tokyo, Japan for Appcelerator community (日本)
TiTokyo conference in Tokyo, Japan for Appcelerator community (日本)Jeff Haynie
1.7K views39 slides
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践 by
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践真吾 吉田
436 views53 slides
RAD Studioで実践する継続的インテグレーション アプリとデベロッパーの価値を拡張するエッセンス #dcamp_jp by
RAD Studioで実践する継続的インテグレーション アプリとデベロッパーの価値を拡張するエッセンス #dcamp_jpRAD Studioで実践する継続的インテグレーション アプリとデベロッパーの価値を拡張するエッセンス #dcamp_jp
RAD Studioで実践する継続的インテグレーション アプリとデベロッパーの価値を拡張するエッセンス #dcamp_jp智治 長沢
75.5K views43 slides

Similar to 【17-D-6】.NETアセンブリの宿命(20)

One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~ by Akira Inoue
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
Akira Inoue7K views
[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践 by de:code 2017
[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践
[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践
de:code 20173.5K views
TiTokyo conference in Tokyo, Japan for Appcelerator community (日本) by Jeff Haynie
TiTokyo conference in Tokyo, Japan for Appcelerator community (日本)TiTokyo conference in Tokyo, Japan for Appcelerator community (日本)
TiTokyo conference in Tokyo, Japan for Appcelerator community (日本)
Jeff Haynie1.7K views
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践 by 真吾 吉田
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践
真吾 吉田436 views
RAD Studioで実践する継続的インテグレーション アプリとデベロッパーの価値を拡張するエッセンス #dcamp_jp by 智治 長沢
RAD Studioで実践する継続的インテグレーション アプリとデベロッパーの価値を拡張するエッセンス #dcamp_jpRAD Studioで実践する継続的インテグレーション アプリとデベロッパーの価値を拡張するエッセンス #dcamp_jp
RAD Studioで実践する継続的インテグレーション アプリとデベロッパーの価値を拡張するエッセンス #dcamp_jp
智治 長沢75.5K views
【XDev】A-2 アジリティ向上のためのツール活用 by 智治 長沢
【XDev】A-2 アジリティ向上のためのツール活用【XDev】A-2 アジリティ向上のためのツール活用
【XDev】A-2 アジリティ向上のためのツール活用
智治 長沢798 views
【Agile Conference tokyo 2011】 継続的フィードバック by 智治 長沢
【Agile Conference tokyo 2011】 継続的フィードバック【Agile Conference tokyo 2011】 継続的フィードバック
【Agile Conference tokyo 2011】 継続的フィードバック
智治 長沢1.6K views
HTML5 クロスプラットフォームアプリ開発の現実解 by Monaca
HTML5 クロスプラットフォームアプリ開発の現実解HTML5 クロスプラットフォームアプリ開発の現実解
HTML5 クロスプラットフォームアプリ開発の現実解
Monaca3.9K views
次期Office製品群の新しい開発モデルの解説 by kumo2010
次期Office製品群の新しい開発モデルの解説次期Office製品群の新しい開発モデルの解説
次期Office製品群の新しい開発モデルの解説
kumo20101.1K views
patterns & practices "Project Silk" に見る HTML5 とモダンブラウザのための Web 開発の今後 by Akira Inoue
patterns & practices "Project Silk" に見る HTML5 とモダンブラウザのための Web 開発の今後patterns & practices "Project Silk" に見る HTML5 とモダンブラウザのための Web 開発の今後
patterns & practices "Project Silk" に見る HTML5 とモダンブラウザのための Web 開発の今後
Akira Inoue2.4K views
スマートフォンアプリケーション開発の最新動向 by Tsutomu Ogasawara
スマートフォンアプリケーション開発の最新動向スマートフォンアプリケーション開発の最新動向
スマートフォンアプリケーション開発の最新動向
Tsutomu Ogasawara5.6K views
マイクロソフトWeb開発の今と今後 by Akira Inoue
マイクロソフトWeb開発の今と今後マイクロソフトWeb開発の今と今後
マイクロソフトWeb開発の今と今後
Akira Inoue6.5K views
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】 by 智治 長沢
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】 Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
智治 長沢1.7K views
Solution semniar vs2013_multi_device-1209-new by Shotaro Suzuki
Solution semniar vs2013_multi_device-1209-newSolution semniar vs2013_multi_device-1209-new
Solution semniar vs2013_multi_device-1209-new
Shotaro Suzuki1.6K views
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して by Akira Inoue
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
Akira Inoue2.6K views
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル by Akira Inoue
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイルVisual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
Akira Inoue2K views
.NET の過去、現在、そして未来 ~ .NET 最新アップデート by Akira Inoue
.NET の過去、現在、そして未来 ~ .NET 最新アップデート.NET の過去、現在、そして未来 ~ .NET 最新アップデート
.NET の過去、現在、そして未来 ~ .NET 最新アップデート
Akira Inoue2.7K views
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説 by Daisuke Nishino
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
Daisuke Nishino4.3K views

More from Developers Summit

【18-A-2】ゲーミフィケーション・エバンジェリストが見る「あなたの技術力が“ワクワクするサービス”に変わる未来」 by
【18-A-2】ゲーミフィケーション・エバンジェリストが見る「あなたの技術力が“ワクワクするサービス”に変わる未来」【18-A-2】ゲーミフィケーション・エバンジェリストが見る「あなたの技術力が“ワクワクするサービス”に変わる未来」
【18-A-2】ゲーミフィケーション・エバンジェリストが見る「あなたの技術力が“ワクワクするサービス”に変わる未来」Developers Summit
1.5K views68 slides
【C-2・小林様】AIとAPIがITインフラにもたらす変化 ~プログラマブルなクラウド型Wi-Fi~ by
【C-2・小林様】AIとAPIがITインフラにもたらす変化 ~プログラマブルなクラウド型Wi-Fi~【C-2・小林様】AIとAPIがITインフラにもたらす変化 ~プログラマブルなクラウド型Wi-Fi~
【C-2・小林様】AIとAPIがITインフラにもたらす変化 ~プログラマブルなクラウド型Wi-Fi~Developers Summit
809 views17 slides
【C-2・醍醐様】AIとAPIがITインフラにもたらす変化 ~プログラマブルなクラウド型Wi-Fi~ by
【C-2・醍醐様】AIとAPIがITインフラにもたらす変化 ~プログラマブルなクラウド型Wi-Fi~【C-2・醍醐様】AIとAPIがITインフラにもたらす変化 ~プログラマブルなクラウド型Wi-Fi~
【C-2・醍醐様】AIとAPIがITインフラにもたらす変化 ~プログラマブルなクラウド型Wi-Fi~Developers Summit
361 views20 slides
【B-4】オープンソース開発で、フリー静的解析ツールを使ってみる by
【B-4】オープンソース開発で、フリー静的解析ツールを使ってみる【B-4】オープンソース開発で、フリー静的解析ツールを使ってみる
【B-4】オープンソース開発で、フリー静的解析ツールを使ってみるDevelopers Summit
1.1K views37 slides
【B-6】Androidスマホの生体認証の脆弱性、調べてみたらよくある話だった。 by
【B-6】Androidスマホの生体認証の脆弱性、調べてみたらよくある話だった。【B-6】Androidスマホの生体認証の脆弱性、調べてみたらよくある話だった。
【B-6】Androidスマホの生体認証の脆弱性、調べてみたらよくある話だった。Developers Summit
1.1K views41 slides
【13-B-6】Hondaの生産技術屋さんがソフトウェア開発でアジャイルを初導入し組織変革に挑戦 by
【13-B-6】Hondaの生産技術屋さんがソフトウェア開発でアジャイルを初導入し組織変革に挑戦【13-B-6】Hondaの生産技術屋さんがソフトウェア開発でアジャイルを初導入し組織変革に挑戦
【13-B-6】Hondaの生産技術屋さんがソフトウェア開発でアジャイルを初導入し組織変革に挑戦Developers Summit
2.5K views58 slides

More from Developers Summit(20)

【18-A-2】ゲーミフィケーション・エバンジェリストが見る「あなたの技術力が“ワクワクするサービス”に変わる未来」 by Developers Summit
【18-A-2】ゲーミフィケーション・エバンジェリストが見る「あなたの技術力が“ワクワクするサービス”に変わる未来」【18-A-2】ゲーミフィケーション・エバンジェリストが見る「あなたの技術力が“ワクワクするサービス”に変わる未来」
【18-A-2】ゲーミフィケーション・エバンジェリストが見る「あなたの技術力が“ワクワクするサービス”に変わる未来」
Developers Summit1.5K views
【C-2・小林様】AIとAPIがITインフラにもたらす変化 ~プログラマブルなクラウド型Wi-Fi~ by Developers Summit
【C-2・小林様】AIとAPIがITインフラにもたらす変化 ~プログラマブルなクラウド型Wi-Fi~【C-2・小林様】AIとAPIがITインフラにもたらす変化 ~プログラマブルなクラウド型Wi-Fi~
【C-2・小林様】AIとAPIがITインフラにもたらす変化 ~プログラマブルなクラウド型Wi-Fi~
Developers Summit809 views
【C-2・醍醐様】AIとAPIがITインフラにもたらす変化 ~プログラマブルなクラウド型Wi-Fi~ by Developers Summit
【C-2・醍醐様】AIとAPIがITインフラにもたらす変化 ~プログラマブルなクラウド型Wi-Fi~【C-2・醍醐様】AIとAPIがITインフラにもたらす変化 ~プログラマブルなクラウド型Wi-Fi~
【C-2・醍醐様】AIとAPIがITインフラにもたらす変化 ~プログラマブルなクラウド型Wi-Fi~
Developers Summit361 views
【B-4】オープンソース開発で、フリー静的解析ツールを使ってみる by Developers Summit
【B-4】オープンソース開発で、フリー静的解析ツールを使ってみる【B-4】オープンソース開発で、フリー静的解析ツールを使ってみる
【B-4】オープンソース開発で、フリー静的解析ツールを使ってみる
Developers Summit1.1K views
【B-6】Androidスマホの生体認証の脆弱性、調べてみたらよくある話だった。 by Developers Summit
【B-6】Androidスマホの生体認証の脆弱性、調べてみたらよくある話だった。【B-6】Androidスマホの生体認証の脆弱性、調べてみたらよくある話だった。
【B-6】Androidスマホの生体認証の脆弱性、調べてみたらよくある話だった。
Developers Summit1.1K views
【13-B-6】Hondaの生産技術屋さんがソフトウェア開発でアジャイルを初導入し組織変革に挑戦 by Developers Summit
【13-B-6】Hondaの生産技術屋さんがソフトウェア開発でアジャイルを初導入し組織変革に挑戦【13-B-6】Hondaの生産技術屋さんがソフトウェア開発でアジャイルを初導入し組織変革に挑戦
【13-B-6】Hondaの生産技術屋さんがソフトウェア開発でアジャイルを初導入し組織変革に挑戦
Developers Summit2.5K views
【15-E-7】セキュアな環境でDevOpsを実現する厳選ツール by Developers Summit
【15-E-7】セキュアな環境でDevOpsを実現する厳選ツール【15-E-7】セキュアな環境でDevOpsを実現する厳選ツール
【15-E-7】セキュアな環境でDevOpsを実現する厳選ツール
Developers Summit1.8K views
【15-E-7】セキュアな環境でDevOpsを実現する厳選ツール by Developers Summit
【15-E-7】セキュアな環境でDevOpsを実現する厳選ツール【15-E-7】セキュアな環境でDevOpsを実現する厳選ツール
【15-E-7】セキュアな環境でDevOpsを実現する厳選ツール
Developers Summit1.2K views
【14-E-3】セキュリティ・テストの自動化によるDevSecOpsの実現 (デモ有) by Developers Summit
【14-E-3】セキュリティ・テストの自動化によるDevSecOpsの実現 (デモ有)【14-E-3】セキュリティ・テストの自動化によるDevSecOpsの実現 (デモ有)
【14-E-3】セキュリティ・テストの自動化によるDevSecOpsの実現 (デモ有)
Developers Summit994 views
【15-D-2】デンソーのMaaS開発~アジャイル開発で顧客との協調・チームビルディング・実装概要~ by Developers Summit
【15-D-2】デンソーのMaaS開発~アジャイル開発で顧客との協調・チームビルディング・実装概要~【15-D-2】デンソーのMaaS開発~アジャイル開発で顧客との協調・チームビルディング・実装概要~
【15-D-2】デンソーのMaaS開発~アジャイル開発で顧客との協調・チームビルディング・実装概要~
Developers Summit18K views
【14-C-8】みんなの暮らしを支えるAmazon S3の裏側、お伝えします by Developers Summit
【14-C-8】みんなの暮らしを支えるAmazon S3の裏側、お伝えします【14-C-8】みんなの暮らしを支えるAmazon S3の裏側、お伝えします
【14-C-8】みんなの暮らしを支えるAmazon S3の裏側、お伝えします
Developers Summit1.4K views
【14-C-7】コンピュータビジョンを支える深層学習技術の新潮流 by Developers Summit
【14-C-7】コンピュータビジョンを支える深層学習技術の新潮流【14-C-7】コンピュータビジョンを支える深層学習技術の新潮流
【14-C-7】コンピュータビジョンを支える深層学習技術の新潮流
Developers Summit2.8K views
【15-B-7】無意味なアラートからの脱却 ~ Datadogを使ってモダンなモニタリングを始めよう ~ by Developers Summit
【15-B-7】無意味なアラートからの脱却 ~ Datadogを使ってモダンなモニタリングを始めよう ~【15-B-7】無意味なアラートからの脱却 ~ Datadogを使ってモダンなモニタリングを始めよう ~
【15-B-7】無意味なアラートからの脱却 ~ Datadogを使ってモダンなモニタリングを始めよう ~
Developers Summit3.1K views
【15-A-1】ドラゴンクエストXを支える失敗事例 by Developers Summit
【15-A-1】ドラゴンクエストXを支える失敗事例【15-A-1】ドラゴンクエストXを支える失敗事例
【15-A-1】ドラゴンクエストXを支える失敗事例
Developers Summit8.2K views
【15-A-5】ゲーミフィケーションエバンジェリストが説く、アプリ開発で見落としがちな「おもてなし」とは~面白さを伝える × 面白く魅せる~ by Developers Summit
【15-A-5】ゲーミフィケーションエバンジェリストが説く、アプリ開発で見落としがちな「おもてなし」とは~面白さを伝える × 面白く魅せる~【15-A-5】ゲーミフィケーションエバンジェリストが説く、アプリ開発で見落としがちな「おもてなし」とは~面白さを伝える × 面白く魅せる~
【15-A-5】ゲーミフィケーションエバンジェリストが説く、アプリ開発で見落としがちな「おもてなし」とは~面白さを伝える × 面白く魅せる~
Developers Summit1.6K views
【B-2】福岡発Node.jsで支える大規模システム!〜「誰ガ為のアルケミスト」と歩んだ三年〜 by Developers Summit
【B-2】福岡発Node.jsで支える大規模システム!〜「誰ガ為のアルケミスト」と歩んだ三年〜【B-2】福岡発Node.jsで支える大規模システム!〜「誰ガ為のアルケミスト」と歩んだ三年〜
【B-2】福岡発Node.jsで支える大規模システム!〜「誰ガ為のアルケミスト」と歩んだ三年〜
【B-5】モダンな開発を実現するツールチェーンのご紹介 by Developers Summit
【B-5】モダンな開発を実現するツールチェーンのご紹介【B-5】モダンな開発を実現するツールチェーンのご紹介
【B-5】モダンな開発を実現するツールチェーンのご紹介
Developers Summit732 views
【C-2】メモリも、僕のキャパシティも溢れっぱなし。。2年目エンジニアが実現した機械学習 by Developers Summit
【C-2】メモリも、僕のキャパシティも溢れっぱなし。。2年目エンジニアが実現した機械学習【C-2】メモリも、僕のキャパシティも溢れっぱなし。。2年目エンジニアが実現した機械学習
【C-2】メモリも、僕のキャパシティも溢れっぱなし。。2年目エンジニアが実現した機械学習
Developers Summit547 views
【A-2】とあるマーケティング部隊とデータエンジニアのデータドリブンへの道 by Developers Summit
【A-2】とあるマーケティング部隊とデータエンジニアのデータドリブンへの道【A-2】とあるマーケティング部隊とデータエンジニアのデータドリブンへの道
【A-2】とあるマーケティング部隊とデータエンジニアのデータドリブンへの道
Developers Summit682 views
【B-2】AI時代におけるエンジニアの生存戦略 by Developers Summit
【B-2】AI時代におけるエンジニアの生存戦略【B-2】AI時代におけるエンジニアの生存戦略
【B-2】AI時代におけるエンジニアの生存戦略
Developers Summit900 views

【17-D-6】.NETアセンブリの宿命

  • 1. .NETアセンブリの宿命 近藤和彦 日本マイクロソフト株式会社 デベロッパー&プラットフォーム統括本部 開発ツール製品部 17-D-6 エグゼクティブプロダクトマネージャー 岩沢宏美 株式会社エージーテック プロダクト&プランズ プロダクトマネージャー Developers Summit 2011
  • 2. Office アプリケーション モバイル/組み込み Web アプリケーション アプリケーション サーバー アプリケーション クライアント アプリケーション 設計 開発 テスト クラウド アプリケーション 管理
  • 3. Office アプリケーション モバイル/組み込み Web アプリケーション アプリケーション サーバー アプリケーション クライアント アプリケーション 設計 開発 テスト クラウド アプリケーション 管理
  • 4. Office アプリケーション モバイル/組み込み Web アプリケーション アプリケーション サーバー アプリケーション クライアント アプリケーション 設計 開発 テスト クラウド アプリケーション 管理
  • 5. Visual Studio 2010 / .NET Framework 4 対応 開発者向けコンテンツ • アプリケーション アーキテクチャ ガイド 2.0 • Visual Studio 2010 によるWindows アプリケーション開発の基礎 • XAML による Windows アプリケーション開発の基礎 • ASP.NET による Web アプリケーション開発の基礎 • Silverlight による Web アプリケーション開発 (Coming Soon!) • データアクセス (Visual Studio 2010 /.NET Framework 4 対応) • Visual Studio 2010 開発ガイド • Expression Blend 4 開発者向けガイド (Coming Soon!) • Expression Blend 4 SketchFlow 開発者向けガイド (Coming Soon!) • 単体テストの自動化 • ユーザーインターフェイスの自動テスト • Test Manager 2010 を活用したテスト プロセスの包括的な管理 • Visual Studio Lab Management 2010 によるテスト環境の仮想化 • Team Foundation Server 2010 によるソースコード管理入門 www.microsoft.com/japan/vstudio
  • 6. © 2011 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows 7 and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
  • 9. 難読化とは  難読化とは逆コンパイラの出力を分り難い ものに変換し、プログラムの解析に必要な 労力を増やすこと。
  • 11. 名前の変更  プログラマーは意味のある識別子を使って人が 見て分りやすいコードを書く。  .NETアセンブリには識別子情報がそのまま残っ ている。  意味のある識別子を意味のない文字に変更。 クラス、インターフェイス、メソッド、フィールドなど GetPayroll(int key) => a(int a)  難読化の第一歩
  • 12. 名前の変更 - オーバーロード誘導TM  異なるメソッド名を出来る限り同じ名前に変更。  引数の型が異なる複数のメソッドを同じ名前、”a” に変更。 GetPayroll( ) => a( ) GetPayroll(int key) => a(int a) MakeDeposit(float amt) => a(float a) SendPayment(string key) => a(string a)  PreEmptive社の特許技術
  • 13. 制御フローの難読化  .NETアセンブリには元のソースコードを厳 密に反映する命令シーケンスがそのまま 残っている。  オリジナルのソースコードを反映しない、論 理的に等価な命令シーケンスに変更。 例: ブロックの並べ替え 偽の制御フローの追加  プログラムロジックを保護する。
  • 14. 文字列の暗号化  .NETアセンブリには文字列はそのままの状 態で残っている。  ハッカーの一般的な攻撃の材料となる。  文字列を暗号化することで攻撃の速度を遅 らせる。
  • 15. デモ:難読化してみよう (CE/PRO)  Dotfuscatorを起動  入力アセンブリを選択  利用する難読化機能  名前変更 (CE、PRO)  制御フローの難読、文字列の暗号化(PRO)  Dotfuscatorのプロジェクトファイルを保存  ビルド開始  難読化の結果を確認
  • 16. VS2010付属 Dotfuscator CE 新機能  インストルメンテーション  Runtime Intelligence  改ざん検出  アプリケーションライフサイクルの管理 (Shelf Life)  アプリケーション分析
  • 17. インストルメンテーションの方法  コードを書かずに既存の.NETアセンブリに実装 RI アセンブリ RI対応 ソースコード コンパイラ 入力 Dotruscator 出力 アセンブリ アセンブリ 拡張属性  ご参考:インストルメンテーション詳細 http://msdn.microsoft.com/ja-jp/vstudio/ff462138
  • 18. Runtime Intelligence  改ざん検出  改ざんが検出された場合に、アプリケーションを 終了する。  アプリケーションライフサイクル管理  アプリケーションの有効期限を設定。  手軽にアプリケーションの自主規制が可能。
  • 19. Runtime Intelligence  アプリケーション分析  実行中のアプリケーションから情報を収集  実際の利用状況を把握できる  どのようなアプリケーションを実行しているか? (バージョン単位)  どういう機能をどういう順番で実行しているか?  それら機能にどのくらい時間をかけているか?  開発計画、ビジネス戦略に役立つ
  • 20. Runtime Intelligence ポータルサイト  無償・有償版ポータルサイト  ご参考: CodePlexのサイト (http://skypefx.codeplex.com/)
  • 21. Dotfuscatorのソリューション アプリケーションの価値を保護して、高める! 保護 測定 リバース エンジニア 利用状況、安定性、 リング、改ざん、脆弱 実行環境などを安全 性攻撃、著作権侵害 かつ効率よく透過的 からの保護 に測定 防御 管理 改ざんや不正な実行 アプリケーションライ に対してリアルタイム フサイクルの管理 に防御