28/01/2014 MCAFEE SECURE 認證的網站

https://www.mcafeesecure.com/RatingVerify?ref=www.HongKongCupid.com

2013年7月10日 星期三

**一個性能測試工具的破解補丁**ANTS Performance Profiler 8 Improve application performance: profile .NET code and database calls**~!**>螞蟻性能分析器提高應用程序的性能:配置文件。NET代碼和數據庫調用>***!

*一個性能測試的包包補丁*ANTS Performance Profiler 8  Improve application performance: profile .NET code and database calls**
**螞蟻性能分析器提高應用程序的性能:配置文件.NET代碼和數據庫調用**)))~/

>*Solve .NET performance problems with ANTS Performance Profiler**))
**解決.NET用螞蟻性能分析器性能問題**/

)))前段時間由於項目出了性能上的問題,所以需要對代碼進行優化,
找出其中最耗時的部分,於是想到了工具ANTS Profiler,這個工具比較強大,
可以跟踪顯示出每個函數所使用的時間,下載頁面為)                   ~!!!

*下載**http://www.red-gate.com/products/ants_profiler/index.htm       **這個共享軟件只能使用14天,這麼好的東西怎麼能只用14天就罷休,由於是.net寫的**~
**Download free trial   *)
ANTS Performance Profiler is a code profiler 
 for .NET desktop, ASP.NET, and ASP.NET 
MVC applications. It helps you debug your 
 application quickly by giving you a complete 
 picture of your application's performance.

Identify performance bottlenecks within minutes  
 and optimize .NET application performance.

Drill down to slow lines of code with  
 line-level timings.

View all the contextual information you need,
 from incoming HTTP requests, to .NET code, 
 through to SQL queries, outgoing web --
--requests and disk access.  
 Quickly understand the relationship between 
 your code and its data access, all in one view.)*

*性能Profiler是一個NET桌面ASP.NETASP.NET MVC應用--
--程序代碼分析器它可以幫助你快速調試你的應用程序
你完全了解應用程序的性能

確定性能瓶頸並在幾分鐘內優化NET應用程序的性能
向下鑽取行代碼時序
•查看所有你需要的上下文信息從傳入HTTP請求。NET代碼

通過SQL查詢,傳出Web請求和磁盤訪問快速了解你的代碼數據--
--訪問之間的關係在一個視圖中  ~**
>**

Key Features


**
Compares and synchronizes SQL Server info schemas
 SQL information Compare professional
 Compares and synchronizes SQL Server info contents
 SQL supply management
 Connect your existing supply system to SQL Server
 SQL professionalmpt Pro
 Write, edit, and explore SQL effortlessly
 SQL Connect
 Ingeniously easy info development in Visual Studio
 SQL Test
 Unit take a look at databases in SQL Server Management Studio
 SQL information Generator
 take a look at information generator for SQL Server databases
 SQL Packager
 Packages a info for readying or update
 SQL Dependency huntsman
 Visualizes SQL Server object dependencies
 SQL Doc
 Document SQL Server databases
 SQL Multi Script Unlimited
 Single-click script execution on multiple servers
 SQL Backup professional
 Compress, firmly write and strengthen backups – quick
 SQL Monitor
 SQL Server performance watching and alerting
 SQL Comparison SDK
 change comparison and synchronization tasks
 SQL Object Level Recovery Native
 Recover info objects from SQL Server backups

Read more: http://downloadsoftwaredownload.blogspot.com/
2013/04/red-gate-sql-toolbelt-2013182238-full.html#ixzz2YhJcXwhe        ***
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

**>如何輸出安裝於電腦內之軟體(*PDF\)全清單*~!!>\



**>如何輸出安裝於電腦內之軟體(*PDF\)全清單*~!!>\

**來教大家一個不一定會用到但也很實用的電腦小技巧***是如何輸出電腦內已經安裝的軟體清單,一般都是可以在「新增/移除」裡看到全部的程式列表,不過通常會有需要列出需求都是為了要印出來或是將清單儲到檔案>/*
**三種簡單的方式,請大家任選一種就可以達成需求囉**>!*
*>想要輸出清單方法其實很多~有內建的指令也有第三方工具,各位看可以
依照自己的習慣或需求選擇方法哦!!)
**~

方法一:透過 CMD 指令

最基本的當然就是可以透過 CMD 的指令來完成,先依序輸入下列指令
WMIC
product get name,version
然後就可以直接在畫面上列出,不過這樣跟看控制台裡的程式列表有
什麼兩樣,所以大部份有這樣需求的朋友應該都是需要輸出到檔案--
--方便查看,往下來看***>))
)))***

***))那麼我們可以換個指令,一樣先輸入 WMIC 後,再下指令將程式 
列表輸出到指令的儲存位置)**~
))**
WMIC
/output:E:\install.txt product get name,version
比如我儲存到 E 槽下的 install.txt,再到那裡去查看就可以囉))**~
***
*
***方法二:透過 PowerShell 指令
第二個方法其實和第一個差不多,只是使用的工具不同,
很多人應該不知道 Windows 除了 CMD 可以用之外,
01
後來的版本也加入了 PowerShell 可以用,安裝的
 Windows 8 就已經有內建,搜尋就可以看到**)
****)
**然後如果只是單要查看列表,直接輸入就可以**
(  
Get-WmiObject -Class Win32_Product | Select-Object -Property Name     *

(**如果想要輸出到檔案,則改成以下指令即可,就會輸出到指令的儲存位置)))

**    Get-WmiObject -Class Win32_Product | Select-Object -Property Name > D:\install.txt                                                          **
)))


**輸出的內容會長的像這樣***
)))*
***))

方法三:透過軟體,例如 – CCleaner

最後一個方法就是透過第三方工具啦~~ CCleaner 就可以辦到,
其它還有很多款工具都可以,CCleaner 介紹:***相當知名的系統
清理工具「CCleaner」終於出新版3.0囉,比起先前2.X版本多了 
一點點的功能,雖然清理系統檔案的軟體那麼多,不過CCleaner 
一直都能保有高市佔率,主要就是因為穩定、快速、易用, 
這次在新版上其實和舊本相差不多,除了更穩定,掃描更快速之外,
還加入了自動判別「登入資訊」,可以保留住我們常用的登入資訊,
省的清除過後又要輸入一大堆帳號密碼,另外還有「磁碟抹除器」
可以將磁碟深層的資料清除乾淨,這電腦清道夫可是愈來愈專業了**~!!*

**在工具→移除程式→右下方「儲存到文字檔」就可以了**)
***~
















***不過從 CCleaner 匯出的檔案資訊比較多,看起來會比較--
--雜一點,就看個人需求選擇輸出的方式**
***
**copy...>/*
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
 

2013年7月9日 星期二

**>Bootstrap/的精要及懶人包包))~!!*

**>Bootstrap/的精要及懶人包包))~!!**
**近來紅透半邊天的網頁設計無敵懶人包,
號稱是網頁攻城獅的救星**只要下載 
安裝CSS及JS檔,照著範例三兩下--
--就可以打造出質感頗佳的網頁**
**說化腐朽為神奇,莫此為甚**)/>.*
))**(還沒見識過Bootstrap的朋友,可以看這篇介紹Bootstrap網站上有--
--頗為詳細的示範與教學**
**好消息是MVP Bruce已將全站翻成正體中文版,要入手的同學切勿錯過。
另外Bootstrap網站也有人翻成簡體中文版,例如: Bootstrap中文網)
在NuGet搜尋一下bootstrap,由下載項目及次數不難想像其熱門程度!
*.
****
**讓我把Bootstrap當成"緊急又重要需立即學會"項目**
**未來ASP.NET專案範本將會以Bootstrap為基底 ~!**>
*>.
  • Visual Studio 2013 Preview - ASP.NET,
  •  MVC 5, Web API 2新功能搶先看
  • [Visual Studio] Visual Studio 2013 ASP.NET
  • 開發預覽
  • 既然Bootstrap跟jQuery一樣被採納成為ASP.NET
    的標準配備*>.**
    **套件組—Kendo UI的相容性,查了文章發現擔心是多餘的,2013.1.319版裡已經有個kendo.bootstrap.min.css,換裝之後,Kendo UI就跟Bootstrap融為一體囉! (見最下方的數字欄位及日期選擇器)
    ))
    )可以放心向Bootstrap邁進^>
    完整程式碼:  
    * (請使用NuGet下載Bootstrap及KendoUIWeb)/*
    **
    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Kendo UI + Bootstrap</title>
        <link href="Content/kendo/2013.1.319/kendo.common.min.css" rel="stylesheet" />
        <link href="Content/kendo/2013.1.319/kendo.bootstrap.min.css" rel="stylesheet" />
        <link href="Content/bootstrap.min.css" rel="stylesheet" />
        <script src="Scripts/jquery-1.9.1.min.js"></script>
        <script src="Scripts/bootstrap.min.js"></script>
        <script src="Scripts/kendo/2013.1.319/kendo.web.min.js"></script>
    </head>
    <body>
        <div class="navbar">
            <div class="navbar-inner">
                <div class="container">
                    <!-- brand class is from bootstrap.css -->
                    <a class="brand" href="#">My Brand</a>
                    <div class="nav-collapse">
                        <ul class="nav">
                            <li class="active"><a href="#">Home</a></li>
                            <li class="dropdown">
                                <a href="#" class="dropdown-toggle" data-toggle="dropdown">
                                    Dropdown <b class="caret"></b></a>
                                <ul class="dropdown-menu">
                                    <li><a href="#">Action 1</a></li>
                                    <li><a href="#">Action 2</a></li>
                                    <li class="divider"></li>
                                    <li class="nav-header">Header</li>
                                    <li><a href="#">Separated action</a></li>
                                </ul>
                            </li>
                        </ul>
                        <form class="navbar-search pull-left">
                            <input type="text" class="search-query" placeholder="Search">
                        </form>
     
                    </div>
                    <!-- /.nav-collapse -->
                </div>
            </div>
            <!-- /navbar-inner -->
        </div>
        <!-- /navbar -->
     
     
        <div style="width: 500px; margin-top: 10px;">
            <table id="kGrid">
                <thead>
                    <tr>
                        <th data-field="make">Car Make</th>
                        <th data-field="model">Car Model</th>
                        <th data-field="year">Year</th>
                        <th data-field="category">Category</th>
                        <th data-field="airconditioner">Air Conditioner</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td>Volvo</td>
                        <td>S60</td>
                        <td>2010</td>
                        <td>Saloon</td>
                        <td>Yes</td>
                    </tr>
                    <tr>
                        <td>Audi</td>
                        <td>A4</td>
                        <td>2002</td>
                        <td>Saloon</td>
                        <td>Yes</td>
                    </tr>
                    <tr>
                        <td>BMW</td>
                        <td>535d</td>
                        <td>2006</td>
                        <td>Saloon</td>
                        <td>Yes</td>
                    </tr>
                    <tr>
                        <td>BMW</td>
                        <td>320d</td>
                        <td>2006</td>
                        <td>Saloon</td>
                        <td>No</td>
                    </tr>
                </tbody>
            </table>
        </div>
        <div class="btn-group" style="margin: 9px 0;">
            <button class="btn">Left</button>
            <button class="btn">Middle</button>
            <button class="btn">Right</button>
        </div>
        <input type="text" id="kNumText" />
        <input type="text" id="kDatePicker" />
        <script>
            $("#kDatePicker").kendoDatePicker();
            $("#kNumText").kendoNumericTextBox();
            $("#kGrid").kendoGrid({ height: 150 });
        </script>
    </body>
    </html>                                                                  *
     
    &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

    **))SamartAssembly.net**小測功~混淆之功具下測試**~/>

    ****SamartAssembly.net***SamartAssembly.net  
    ))>* 小測功~混淆之功具**~!
    ****反組譯是採用中介語言(.NET, Java)平台的
    共有特性,也是實務應用的資安隱憂,
    面對這個問題,最有效的解決方案--
    是 -- 混淆器(Obfuscator)~*


    **混淆器的運作原因,是解析編譯好的DLL或EXE檔,將其轉換成執行
    結果相同的組件,差別在於私有類別、屬性、方法、欄位、參數名稱
    都已改到面目全非,難以閱讀理解;更進一步還可以打亂程式碼的排列
    流程(執行順序不變)、加密程式碼中的字串常數...*

    ))~讓反組譯的程式碼亂如咒語天書,令有意破解者卻步,至少要讓對方
    追程式追到流涕痛哭。天下沒有破解不了的程式,混淆器的目標在於逼迫
    絕大部分的破解者儘早放棄,即使被破解也要對方付出極其可觀--
    --(甚至難以想像)的高昂代價**

    ****專業等級的.NET混淆器價格不斐,甚至如PreEmptive限定由銷售團隊)))
    ))再決定報價**
    **最近在估評其他軟體時看到Red Gate的SmartAssembly,標準版 
    約1,000 USD、專業版約1,500 USD,價格****貼近公司採購的其他開發元件,
    便決定實測看看**!!

    **>註: SmartAssembly有個有趣的開發者版本,不到200 USD,限制混淆後
    的程式只能在開發者自己的機器上執行,且程式會在七天後爆炸失效,
    目的是讓開發者測試混淆後的程式是否執行正常(某些混淆技巧可能導致程式
    不正常,記得要實測及適度調整混淆參數),故實務上全公司可共用一套 
    標準版/專業版,再視需要採購開發版,若不用開發版,每次上測試台前再
    統一混淆亦是可行策略**

    **SmartAssembly的 
    操作還算簡單**選取DLL或EXE,
    設定混淆參數,建置就可以--
    --得到混淆版 >>**
    **>
    SmartAssembly可混淆--
    --對象包含: Windows Form,
     WPF, Console, Silverlight XAP,
     程式庫(DLL),
     .NET Web Service,
     ASP.NET Web bin下的DLL… 等,
    原則上只要是.NET編譯出的組件(Assembly,DLL或EXE)都--
    --可以處理。除了混淆功能外,SmartAssembly還有 
    一些"額外"功能,例如:  
      ***
    1. Strong Name Siging
      為混淆後的元件加上強式簽名防止變造
    2. Automated Error Reporting
      程式當掉時蒐集錯誤資訊建立當機報告(背後會送到Red Gate的Web Service,
    3. 並可透過SmartAssembly UI瀏覽,見前圖左側選單的Reporting項目)
    ***一旦程式出錯,會彈出以下對話框(透過SDK,對話框可以客製化)*******

  • Feature Usage Reporting
    可以統計程式執行環境、各功能被使用的次數(也是透過Red Gate的
    Web Service蒐集,第一次執行前徵求使用者同意可傳送統計
    資訊較不會有爭議)

    Dependencies Merging
    1. 將參照的DLL也合併起來混淆(可提高混淆程度),並非所有DLL都適用,
    2. 3rd Party的元件可考慮改用嵌入(Embedding)做法
    3. Dependencies Embedding
      將參照DLL嵌入程式中(預設會加密、壓縮)但不進行混淆,
    4. 第一次執行時解密、解壓縮還原,能減少部署檔案數目。
    5. Pruning
      移除沒用到的Metadata,例如事件名稱、屬性、方法參數等,
    6. 讓程式碼更難解讀,也有助於減少程式檔體積。[參考]
    7. Resource Compression and Encryption
      資源壓縮及加密,第一次執行時還原,能縮小檔案體積。
    8. Other Optimization
      減少保留但未使用的記憶體、自動seal所有類別禁止繼承
    9. 回到重點 -- 混淆,SmartAssembly透過以下技巧讓反組譯的程式碼
      難以解讀,包含:
      1. 將類別、方法名稱改成看不懂的怪字
      2. 把類別的欄位名稱亂改一通,甚至讓不同類別用相同的欄位名稱
      3. 將類別A的方法搬到類別B底下,但風險較高,有時會出錯,
      4. 宜斟酌使用Control Flow Obfuscation,把程式碼的先後
      5. 順序調亂,但執行順序
      6. 保持不變 題外話: 以上四招我曾見過有人能徒手運用,直接寫出
      7. 沒人看得懂的程式碼,堪稱"人體混淆"大絕 orz   **
      8. 動態Proxy: 一律透過執行期間產生的Proxy呼叫參照DLL,
      9. 如此Assembly一旦被篡改,程式就會壞掉無法執行
      10. 字串加密: 預設.NET組件中的字串被直接儲存,檢視檔案
      11. 二進位內容時就看得到,SmartAssembly支援將字串內容加密混淆
      12. 加上註記禁止MSIL Disassembler(ildasm)對檔案進行反組譯
      13. 如果有pdb的話,混淆StackTrace中出現的原始碼檔案路徑
      接著來實測一番,以下是簡單的Console程式:
      using System;
      using System.Reflection;
      using Boo;
      using Foo;
       
      namespace ObfuscationTest
      {
          class Program
          {
              static string dllPath = @"d:\Newtonsoft.Melody.dll";
              static void Main(string[] args)
              {
                  Assembly asm = Assembly.LoadFile(dllPath);
                  Type t = asm.GetType("Newtonsoft.Melody.MelodyConverter", true);
                  foreach (var pi in t.GetProperties())
                  {
                      Console.WriteLine(pi.Name);
                  }
                  BooClass boo = new BooClass() { Name = "MelodyRO" };
                  FooClass foo = new FooClass() { Name = "MelodyROhread" };
                  Console.WriteLine("{0} / {1}", boo.Name, foo.Name);
                  string res = Console.ReadLine();
                  if (!string.IsNullOrEmpty(res))
                      throw new ApplicationException("My Bad! XD");
              }
          }
      
      

    *********
    使用反組譯工具解析ObfuscationTest.exe檔,可以看到幾乎原汁
    原味的原始程式碼:
    接著我們透過SmartAssembly惡搞一番,
    另外Build成ObfuscationTestSA.exe,
    再用反組譯工具試著打開。嗯,很好,程式碼已經被整到*都不認得*!!


    **選擇不加密字串常數,好不容易才透過程式碼中**
    **透過程式碼中( Melody ) **( MelodyROhread )**
    **找到main()的所在位置,試過連字串都加密,我選擇直接投降**
    **SmartAssembly看來是值得考慮的.NET混淆器解決方案。如果擔心專案中的程式經混淆會出問題,倒是可以先用試用版(功能完整,但編譯結果只能在有安裝程式的機器執行,七天後失效)實測評估後再考量**

    &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&