freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

房屋銷售管理及系統(tǒng)設(shè)計管理知識分析論文(已改無錯字)

2022-07-25 15:08:55 本頁面
  

【正文】 這種易用性帶來的一個目前對于大多數(shù)開發(fā)人員來說還沒有注意到的問題。為公共語言運行庫 (CLR) 編寫的程序更易于進行反相工程。不管怎么說,這并不是 .NET Framework 設(shè)計中的缺陷;它只是一種現(xiàn)代的、中間編譯語言(Java 語言應用程序具有同樣的特征)的現(xiàn)實狀況。Java 和 .NET Framework 都使用內(nèi)嵌在可執(zhí)行代碼中的豐富元數(shù)據(jù):在 Java 中是字節(jié)碼,在 .NET 中是 Microsoft 中間語言 (MSIL)。由于比二進制機器碼要高級很多,可執(zhí)行文件充滿了可以輕松破解的信息。 借助于諸如 ILDASM 這樣的工具(隨同 .NET Framework SDK 一同發(fā)布的 MSIL 反匯編程序)或者類似于 Anakrino 和 Reflector for .NET 這樣的反匯編程序,任何人都可以輕松地查看您的程序集并將其反相工程為可讀的源代碼。黑客可以搜索安全缺陷,以探究、竊取獨特的創(chuàng)意并破譯程序。這足以使您猶豫不決。 盡管如此,請不必擔心。有一種模糊處理解決方案可幫助您防止反相工程。模糊處理是為程序集中的符號提供無縫重命名的一項技術(shù),它還提供了其他技巧以阻止反匯編程序。如果運用適當,模糊處理可以大幅度提升應用程序防止反相工程的能力,同時保持應用程序的完整無缺。模糊處理技術(shù)通常用于 Java 環(huán)境中,多年來已幫助了眾多公司保護他們的基于 Java 技術(shù)產(chǎn)品的知識產(chǎn)權(quán)。 現(xiàn)在已有多家第三方通過創(chuàng)建 .NET代碼的模糊處理程序來予以響應。通過與我們公司 PreEmptive Solutions 合作,Microsoft 在 Visual Studio?.NET 2003 中包含了 Dotfuscator Community Edition,而 PreEmptive Solutions 也推出了多種模糊處理程序軟件包。 為演示反編譯和模糊處理,我們將使用經(jīng)典的 Vexed 游戲的一個開放源代碼實現(xiàn)。 由 Roey Benamotz 編寫,可從 獲得。這是一個益智類游戲,您的目標就是將相似的塊移到一起,從而使它們消失。 源代碼中的一個簡單方法:public void undo() { if (numOfMoves0) { numOfMoves。 if (=2) _UserMoves = (0, )。 ([numOfMmoves (numOfMoves/50) * 50])。 ()。 }} NET Framework SDK 附帶有一個名為 ILDASM 的反匯編實用工具,該工具允許您將 .NET Framework 程序集反編譯為 IL 匯編語言語句。為了啟動 ILDASM,您必須確保安裝了 .NET Framework SDK,并在命令行中輸入 ILDASM,然后是您希望進行反匯編的程序名。在當前例子中,我們將輸入“ILDASM ”。這樣將啟動 ILDASM UI,它可用于瀏覽任何基于 .NET Framework 的應用程序的結(jié)構(gòu)。 如果您認為只有少數(shù)真正了解 IL 匯編語言的人才會看到并理解您的源代碼,請牢記反編譯并不會到此為止。我們可以使用反編譯程序來創(chuàng)建實際的源代碼。這些實用工具可以直接將 .NET 程序集反編譯為如 C、 Visual Basic .NET 或 C++ 這樣的高級語言。讓我們看一下由 Anakrino 反匯編程序生成的 undo 方法:public void undo() { if ( 0) { = 1。 if ( = 2) = (0, 2)。 ( [ / 50 * 50])。 ()。 }}您可以看到,結(jié)果幾乎與原始代碼完全相同。稍后,我們將回到這里來查看經(jīng)過模糊處理后的結(jié)果。 模糊處理是使用一組相關(guān)技術(shù)來實現(xiàn)的。模糊處理的目的是隱藏程序的意圖而又不改變其運行時行為。它不是加密,但對于 .NET 代碼而言,它比加密可能更勝一籌。您可以加密 .NET 程序集,使它們完全不可讀。但是,該方法會造成一個典型的進退兩難的局面,這是因為運行庫必須執(zhí)行未加密代碼,解密密鑰必須與已加密程序保存在一起。因此,可創(chuàng)建一個自動化的實用工具來恢復密鑰、解密代碼,然后以 IL 的原始形式將其寫到磁盤上。一旦發(fā)生這種情況,程序就完全暴露在反編譯之下了。 我們可以將加密比作是將包含六道菜的套餐鎖到箱子里。只有預定的用餐者(在本例中為 CLR)才有鑰匙,而且我們不想讓任何其他人知道他或她將要吃什么。遺憾的是,到了用餐時間所有食物將完全處于眾目睽睽之下。模糊處理工作更像將包含六道菜的套餐放到一個攪拌機中,然后將它放到一個塑料袋中送給用餐者。當然,每個人都可以看到正在遞送的食物,但是除了碰巧可以看到一顆完整的豌豆或一些牛肉色的粘糊東西之外,他們并不知道原來的食物是什么。用餐者仍然獲得了他想要的東西,而且這次用餐仍然提供了與以前一樣的營養(yǎng)價值(幸運的是,CLR 對口味并不挑剔)。模糊處理程序的竅門就是把窺探者搞糊涂,同時該程序仍然能向 CLR 提交同樣的產(chǎn)品。 當然,模糊處理(或加密)并不是百分之百地堅不可摧。即使編譯后的 C++ 也可能被反匯編。如果黑客堅持不懈,他就可以重新產(chǎn)生您的代碼。 模糊處理是一個應用于編譯后的 .NET 程序集而不是源代碼的過程。模糊處理程序決不會讀取或更改您的源代碼。圖 2 顯示了模糊處理過程的流程。模糊處理程序的輸出是另一組程序集,功能上與輸入程序集等同,但是該程序以一種阻礙反相工程的方式進行了轉(zhuǎn)換。現(xiàn)在我們將討論 Dotfuscator Community Edition 用來實現(xiàn)該目標所使用的兩項基本技術(shù):重命名和刪除非基本元數(shù)據(jù)。 模糊處理的第一道防線就是將有意義的名稱重命名為一個無意義的名稱。如您所知,從精心選擇的名稱中可得出許多有價值的線索。它們有助于使您的代碼自我文檔化,并充當了揭示它們所表示的項目的有價值的線索。CLR 不關(guān)心一個名稱的描述性如何,因此模糊處理程序可以自由地修改這些名稱,通常是修改為類似于“a”這樣的單字符名稱。 顯然,模糊處理程序?qū)σ粋€特定程序所能執(zhí)行的重命名次數(shù)是有限制的。通常來說,有三種常見的重命名方案。如果您的應用程序由一個或多個獨立的程序集組成(即未模糊處理的代碼不依賴于任何程序集),那么模糊處理程序可以自由地對程序集進行重命名,而無論名稱的可見性如何,只要名稱和對名稱的引用在程序集組中是一致的。Windows 窗體應用程序就是一個很好的例子。作為一個反面的極端例子,如果您的應用程序設(shè)計目的就是供未經(jīng)過模糊處理的代碼使用,那么模糊處理程序?qū)o法更改那些對客戶可見的類型或成員的名稱。這種類型的應用程序的例子,包括共享類庫、可重用組件等諸如此類的東西。位于二者之間的是那些打算插到現(xiàn)有的未做模糊處理的框架中的應用程序。在這種情況下,模糊處理程序可以對它運行時所在的環(huán)境不訪問的任何東西進行重命名,不管可見性如何。 應用程序是這種類型應用程序的很好的例子。 Dotfuscator Community Edition 使用一種稱為為“重載歸納”的專利重命名技術(shù),這項技術(shù)可以向重命名添加扭曲。在詳盡分析作用域之后,方法標識符得到了最大限度的重載。重載歸納技術(shù)并不是將舊名稱替換為一個新名稱,而是盡可能地將很多方法重命名為相同的名稱,從而迷惑那些試圖理解反編譯代碼的人。 此外,作為一個好的副作用,由于程序集中所包含的字符串堆變小,應用程序的大小也隨之而變小了。例如,如果您有一個長度為 20 個字符的名稱,將其重命名為“a”將節(jié)省 19 個字符。此外,通過節(jié)約字符串堆項以不斷地重新使用重命名來節(jié)省空間。將每一項都重命名為“a”意味著“a”只存儲了一次,每個被重命名為“a”的方法或字段都可以指向它。重載歸納增強了這種效果,原因是最短的標識符會得到不斷的重新使用。通常,一個重載歸納項目將有高達 35% 的方法被重命名為“a”。 要了解重命名對反編譯代碼的影響,請查看重命名處理后的 undo 方法:public void c() { if ( 0) { = 1。 if ( = 2) = (0, 2)。 ([ / 50 * 50])。 ()。 }}您可以看出來,在沒有經(jīng)過任何模糊處理,這個方法就已經(jīng)比較難于理解了。 在編譯過的、基于 .NET 的應用程序中,并非所有的元數(shù)據(jù)在運行時都會得到使用。其中的一些數(shù)據(jù)將由其他工具使用(例如,設(shè)計器、IDE和調(diào)試器)。例如,如果您在 C 中的類型上定義了一個名為“Size”的屬性,則編譯器將省略屬性名“Size”的元數(shù)據(jù),并將該名稱與實現(xiàn) get 和 set 操作的那些方法關(guān)聯(lián)起來(它們被分別命名為“get_Size”和“set_Size”)。當您開始編寫設(shè)置 Size 屬性的代碼時,編譯器將始終生成一個對方法“sizeSize”本身的調(diào)用,并且決不會通過其名稱引用該屬性。事實上,屬性的名稱供 IDE 和使用您的代碼的開發(fā)人員使用;CLR 從不訪問它。如果只是由運行庫而不是其他工具使用您的應用程序,那么模糊處理程序刪除這種類型的元數(shù)據(jù)就是安全的。除了屬性名,事件名和方法參數(shù)名也在這個范疇之列。Dotfuscator Community Edition 在它認為這樣做安全時會刪除所有這些類型的元數(shù)據(jù)。 SQL Server 2005 中處理 XML Microsoft SQL Server 2005 中的重大更改之一是包含了 XML 數(shù)據(jù)類型。此數(shù)據(jù)類型是第一類類型,就像 INT 或 VARCHAR 一樣,而且 SQL Server 2005 允許使用一系列 XML 特定的函數(shù)對此數(shù)據(jù)類型進行就地查詢和處理。它還支持存儲數(shù)據(jù)庫中的 XML 架構(gòu)的集合,從而啟用基于數(shù)據(jù)庫的架構(gòu)驗證。另外,SQL Server 2005 大大地擴展了 XML 組合(SELECT ... FOR XML 語句)的功能,擴展了 OpenXML() XML 分解函數(shù),并針對 XML 數(shù)據(jù)類型提供了一個新的 nodes() 函數(shù)以進行更輕量級的分解。 既然對數(shù)據(jù)庫服務器增強了此新的 XML 功能,那么對 Microsoft 中的 SqlClient 數(shù)據(jù)提供程序也進行增強就不會令人感到驚奇了。對 DataSet 也有更改,以便支持類型 XML 的 DataColumn,而且 和 之間的“集成點”得到了拓寬。在本文中,我將探究在客戶端上使用 SQL Server 2005 XML 數(shù)據(jù)類型。 SQL Server 2005 可以產(chǎn)生兩類 XML 輸出。語句 SELECT * FROM AUTHORS FOR XML AUTO 產(chǎn)生 XML 流,而不是一列一行的行集。該輸出類型與 SQL Server 2000 中的輸出類型相比沒有改變。只是因為查詢分析器工具中的限制,XML 流輸出在 SQL Server 查詢分析器中才顯示為一列一行的行集。您可以通過其特定的唯一標識符名稱“XML_F52E2B6118A111d1B105000805F49916B”來將這種流與“普通”列區(qū)分開來。此名稱實際上是底層 TDS(這是一種表格式的數(shù)據(jù)流,SQL Server 網(wǎng)絡(luò)格式)分析器的指示器,在這種分析器中,列應該流至客戶端,而不是像普通行集那樣發(fā)送。有一種特殊的方法 用來在客戶端上檢索此特殊的流。在 SQL Server 2005 中,SELECT ... FOR XML 語句通過許多方式得到了增強。這里僅提少數(shù)幾種:,當您需要 SQL Server 2000 中的 FOR XML EXPLICIT 模式時,有一種新的、便于使用的 FOR XML PATH 模式。 TYPE 指令,除了生成流之外,您還可以生成 XML 數(shù)據(jù)類型列。 FOR XML 表達式。 ... FOR XML 可以使用 ROOT 指令生成 XML 文檔以及 XML 片段。 XSD 架構(gòu)預先掛起到流。附錄B 外文原文 There are two fundamentally different ways to implement HTTPbased Web services in Microsoft174。 .NET today. The first and lowestlevel technique is to write a custom IHttpHandler class that plugs into the .NET HTTP pipeline. This approach requires you to use the APIs to process the ining HTTP message along with the APIs to process the SOAP envelope found in the HTTP body. Writing a custom handler also requires you to manually author a WSDL document that accurately describes your implementation. Doing all of this properly requires a solid understanding of the XML, XSD, SOAP, and WSDL specifications, which is a daunting prerequisite for
點擊復制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1