[轉載]Modifying IL at runtime (step II+)

In my previous entry on IL modification we looked at the details for inserting a method call with a known (hardcoded) method token. We also used metadata to list the available methods, as a way to avoid this hardcoding.When listing the methods on a

DNGuard 加密保護的一個程式集sample

被加密的程式集是 .Net 2.0的 winform程式。:http://www.bbsftp.com/temp/dngdemo.rar壓縮包中共兩個檔案:dngtest.exe 被加密的主程式。DNGRuntime.dll, DNGuard的運行庫檔案,也是一個DotNet的程式集,是用C++/CLI寫的,包含有本地代碼和IL代碼。運行庫的IL代碼也做了加密保護,本地代碼做了一些混淆。目前還只在

DNGuard HVM 中文版 V2.80 發布,優惠活動

更新記錄同英文版。[+] Add X64 Platform Support.[+] Improved HVM Engine.[+] Improved DNGuard runtime behaviour . [+] Improved ASP.Net applications compatibility.[+] Improved support for Component developers.[+] Improved GUI.[+] Add Check for

泛型,.Net 加解密中的一個麻煩

.Net中的泛型和C++中的模版很相似,但在編譯行為上有些不同。之前做DNGuard HVM 時就遇到了加密泛型的麻煩問題,最近又發現了泛型在 ngen

討論 winform 引擎以及 CancelButton,OKButton 的實現原理

前面提到了form關閉時的兩個奇怪現象,有不少朋友參與了討論。有些朋友還沒有看清楚問題的所在就很輕率的評論。A.Z. 在討論中已經找到的問題的基本所在,問題關鍵還是在 CalledClosing 這個變數的狀態。這個問題要從另外一個奇怪現象說起。為什麼直接給 form的DialogResult屬性賦值會導致form關閉?這個屬性的set函數如下:public void set_DialogResult(DialogResult value) { if

dotNet MSIL中的一些不常見IL指令

dotNet MSIL中的一些不常見IL指令在做HVM虛擬碼覆蓋率檢測時,在構造的一些dotNet程式樣本中總是缺少一些MSIL指令,沒有覆蓋所有的MSIL指令。如C#中的裝箱和unboxing的IL指令,可能很多人和我最初的想法一樣,裝箱是 box指令,unboxing是unbox指令,實際上這隻對了一半。裝箱使用的box指令沒有錯誤,但是unboxing不是用的unbox指令,而是 unbox.any 指令,在C#編譯的程式中就從來沒有發現過 unbox 指令。另外還有一批沒有發現的指令有

常見dotNet加密保護工具分析介紹

本文主要介紹一些dotNet加密保護工具的原理以及就其脫殼進行簡單探討。remotesoft protector、maxtocode、.Net Reactor、Cliprotector、themida .Net、xenocode native compiler、DNGuard。remotesoft

Net記憶體程式集通用脫殼機實現原理(二、反射以及重建方法頭)

在 .Net程式加密的原理及解密探討三(執行個體解密)  一文中我們介紹了反射,主要提到三個函數 DumpAssembly,DumpType, DumpMethod。 這裡我們將就 DumpMethod 這個函數討論。前一篇我們已經提到的dump的整體流程。先把PE整體dump出來,然後在檔案後面增加一個段。接下來就是這次要講的反射和方法體重建。依靠上面的三個函數反射枚舉所有方法。取得 MethodBody 對象,重建 方法體,將方法體儲存到

DNGuard 免費的DotNet加密保護工具 V1.0

DNGuard 是一款免費的DotNet核心模式的加密保護工具。這是第一個發布版本,版本號碼定為 1.0。只支援32位系統。目前還只在 xp和2003上做過測試,其它版本的系統還未測試,大家有條件的麻煩幫忙試試。運行本程式需要系統安裝 .Net 2.0 架構。支援加密2.0和1.1的程式集,不過還只測試了winform的。因為IL反組譯碼和IL彙編都是程式實現的,偷了懶,在IL彙編時都彙編成了2.0的格式。所以,加密後的程式集需要在 .Net 2.0

.Net Native Image 加強保護的模式在 ORM、 AOP 中的問題

前面我們討論了 ngen 產生的 ni 檔案的還原,以及它的加強保護方式阻止還原。今天我在測試一個 ORM 程式時發現, 用加強保護模式的 ni 檔案運行會出現BadImageFormat 的 異常。我用ORM程式測試 HVM 核心,順便也測試了一下加強保護模式的 ni 檔案 。在前文 .Net Native Image 還原的原理和加強保護的方法 中提到了可以通過擦除原始ILCode來加強 ni 檔案的保護,讓其無法還原。我用這種模式處理了 這個ORM 程式,在進行資料操作時出現了

讓 .Net 程式 脫離 .net framework架構 啟動並執行方法(補充)

前面介紹了  讓 .Net 程式 脫離 .net framework架構 啟動並執行方法 ,但是有些朋友應用中還是遇到了一些問題,主要時需要自己提取架構程式以及應用的dll問題。這裡介紹一個偷懶提取方式。我們可以利用 Remotesoft linker的試用版來提取,試用版的擷取http://www.remotesoft.com/linker/try.html試用版提取時可以用 mdeploy 方式或者 native 方式。如果時 mdeploy

.Net 虛擬架構的實現原理

.Net 虛擬架構的實現原理前面介紹了利用第三方虛擬環境來實現 .Net程式脫離架構運行,並介紹了如何自己編寫載入器程式。今回我們介紹虛擬架構的核心實現原理,感興趣的朋友可以參考自己實現。在 讓 .Net 程式 脫離 .net framework架構 運行(原始碼實現說明)  中我們介紹的脫離架構啟動並執行方法,仍然需要依賴 rsdeploy.dll 才行。今回我們就介紹這個 dll 的實現原理。簡單的實現方式:首先我們需要用到一個 undocumented features

DNGuard HVM 專業版 v2.7 正式發布。

DNGuard HVM 專業版 v2.7 正式發布。專業版使用HVM保護技術,方法體IL代碼始終處於保護狀態。即使是在虛擬機器編譯過程中,在記憶體中也不會出現正確完整的ILCode。而是以HVM的虛擬碼形式出現。HVM虛擬機器通過參與Jit的編譯過程,協助Jit直接從HVM虛擬碼產生本地代碼。官方網站:http://www.dnguard.net/DNGuard 標準版零售價: 600    元/套DNGuard 專業版零售價: 5000  元/套2007-10-1 國慶促銷一個月(優惠活動):

[轉載]Modifying IL at runtime (step II)

A couple of days back, we tweaked the running IL a little bit. Today, let's modify it some more!We'll insert a method call at the beginning of the body of the Main method. The method we'll call is as easy as can be: it is part of the of the same

.Net Jit層脫殼機的實現原理

本文將在 .Net 反射脫殼機核心原始碼 的基礎上介紹,如何? Jit層脫殼 機。首先我們選擇使用 C++/CLI 來完成這個工作。反射部分需要用到 。Net的相關類庫,jit 層 hook 需要使用native c++ 方面的功能。本文假設您已經完成了 hook jit的工作,並截獲到了相關結構體。首先介紹一下代碼主要流程: 入口函數 void DumpAssembly(Assembly ass,string path) 枚舉所有type,調用 void DumpType(Type tp,

mscorwks.dll在.Net中的地位以及在.Net代碼保護方面的應用

mscorwks.dll是dotNet的核心檔案,尤其是在net2.0中,以前分散的功能都集中到了這個dll中。net1.1中,還有一個檔案mscorsvr.dll 和 mscorwks.dll 是同等地位的。它們分別對應於 windows service程式以及 desktop 程式。在net2.0中,它們都統一到了 mscorwks。dll中。同時在net2.0中mscorsn.dll 的功能也合并到了

淺談.Net脫殼中方法體的局部變數簽名還原

在之前介紹Jit層脫殼原理時曾提到兩個痛點,1。方法體的局部變數簽名。2。方法體的SEH 異常處理表。本文主要就第一個問題進行簡單探討,隨帶也涉及到一些第二個問題。前面提到過投機的方式擷取,不在本文討論範圍,投機總是過於僥倖。進入到Jit層後,局部變數簽名已經由token值轉變為了結構體 CORINFO_SIG_INFO ,可以推測,該轉變應該是在 ee 層調用 jit的預先處理過程中完成了。參考sscli的原始碼,很容易可以定位到一個關鍵函數 unsigned long __stdcall

DNGuard 一款DotNet核心級加密保護工具

最近一直學習DotNet相關資料,sscli真是好東西啊:P。一邊學習一邊把知識綜合了一下,做了這個小工具。保護原理和國人的remotesoft,maxtocode差不多。加密後的程式發布時也需要附帶一個運行庫,不過和那兩個不同,附帶的運行庫不是純native的dll,而是C++/CLI的混合程式集。工具已經有了雛形,整體核心架構完成了。用來加密了一個sample,運行正常。有些方面甚至超過了maxtocode。1.不依賴微軟的ildasm和ilasm程式。  IL反組譯碼和IL彙編都程式實現。

[轉載]Modifying IL at runtime

原文出處:http://blog.monstuff.com/If you remember the Omniscient Debugger, it was a Java debugger that instrumented the bytecode at runtime to trace calls and monitor variables. It did so by using a custom ClassLoader.Unfortunately the .NET classes that

form關閉時的一個奇特現象

今天查一個錯誤時發現這個問題。有一個frmEdit。在Closing事件裡面判斷資料是否修改,然後提示使用者是否需要儲存資料。提供了三個按鈕,yes,no,cancel。yes:儲存資料,關閉表單。no:直接關閉表單。cancel:不關閉表單。實際運行,點yes,cancel,處理都對,但是點 no,就會重複彈出這個對話方塊,如果一直點 no的話,就會一直出現。看一眼代碼沒有發現明顯問題,實際調試才發現問題所在。代碼如下:private void frmEdit_Closing(object

總頁數: 61357 1 .... 4970 4971 4972 4973 4974 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.