自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

.NET8強加密工具有哪些?你知道嗎?

開發(fā) 前端
ABP和DHVM的差別在于,前者只要逆出了其原理基本上一馬平川,可以靜態(tài)無痕其解密前的字節(jié)碼。而DHVM則是綜合性質更強,具備的知識更多,才可以靜態(tài)無痕其ASM。?

前言

.NET程序由于眾所周知的原因,因為它是一個托管中間語言代碼,也即是MSIL,天然性的易于被破解。即使是現(xiàn)在的AOT技術,因為通過一個C++的引導程序BootStrap(.Net8的AOT引導程序BootStrap)引導,所以其逆向難度依然是容易級的。了解其加密原理,針對性的保護就顯得比較重要了。

這里說的強加密是虛擬機(CLR/JIT)加密,加密軟件自帶的算法加密,逆向有一定難度的.NET加密工具。沒有虛擬機加密這個基本功能,基本上不推薦。

  1. DHVM(DNGuard HVM),它也是加密虛擬機的JIT,IL字節(jié)碼替代。
  2. VBP(Virbox Protector),它是加密虛擬機的JIT,以及其它一些比如IL的的混淆,虛擬化等,主要偏向于托管的加密。
  3. .NET8的AOT非托管,推薦用VMP,這個工具在非托管層級加密的強度首屈一指。它利用自帶的虛擬機指令對程序進行更改加密。

研究VBP和DHVM的時候,很明顯的感覺到VBP在托管方面較強,它基本上做到了一個托管的DLL hook了JIT的編譯流程,加密托管DLL。但DHVM給人的感受完全相反。DHVM在非托管上具有較強的加密手段,所以它需要帶一個非托管的RunHVM64.dll在對JIT進行操作。

詳述

參考以下代碼:

static void ABC()
 {
     Console.WriteLine("Call ABC");
 }
 static void DEF()
 {
     Console.WriteLine("Call DEF");
 }
 static void Main(string[] args)
 {
     ABC();
     DEF();
     Console.WriteLine("Call Main");
     Console.ReadLine();
 }

VBP上,它加密了MSIL程序集和函數名稱,此后又加密了IL的指令。它的JIT Hook方式跟DHVM基本上雷同,只不過代碼實現(xiàn)方式不一樣。僅此而已。

至于代碼的區(qū)別在于,ABC和DEF函數在VBP里面被內聯(lián)了,它的MSIL二進制如下:

00 72 01 00 00 70 28 11 00 00 0a 00 2a 00 // ABC函數
00 72 13 00 00 70 28 11 00 00 0a 00 2a 00 // DEF函數

ABC和DEF函數被內聯(lián)到了托管Main函數里面,類似于Console.WriteLine("Call Main");的這種格式的調用。先傳遞一個字符串,也就是MSIL的二進制:

00 72 01 00 00 70

然后Console.WriteLine調用以及返回,也就是MSIL二進制

28 11 00 00 0a 00 2a 00 //2a:ret(返回) 00:nop

在靜態(tài)的托管DLL里面,這個MSIL是偽裝的,真正的MSIL需要解密之后,才能夠形成如上MSIL賦給JIT的ILCode讓其正常編譯。這里需要的是解密前的靜態(tài)碼(比如例子的特征碼:A3 35 57 22),無痕hook即可。

然DHVM里面沒有內聯(lián),但在非托管里面存儲了IL代碼,如下:

0000000180474088 4C 8B 5E 10   mov r11,qword ptr [rsi+10h]  
000000018047408C 4C 89 5F 10   mov qword ptr [rdi+10h],r11

DHVM也需要通過解密來形成最后的MSIL結果,但是因為它有非托管的靜態(tài)固有地址,所以不需要逆出其解密的地方,即可hook之。

ABP和DHVM的差別在于,前者只要逆出了其原理基本上一馬平川,可以靜態(tài)無痕其解密前的字節(jié)碼。而DHVM則是綜合性質更強,具備的知識更多,才可以靜態(tài)無痕其ASM。

責任編輯:武曉燕 來源: 江湖評談
相關推薦

2023-07-04 08:48:24

靜態(tài)代碼分析工具

2023-04-26 10:06:08

RocketMQ屬性Consumer

2023-11-17 13:42:06

.NET8C#工具

2024-11-26 14:29:48

2022-06-30 13:41:44

SQL 語句group by

2024-02-19 08:01:59

服務微服務授權

2020-12-24 18:44:34

RSA加密算法

2025-02-27 08:09:52

2022-08-02 06:55:35

移動設備Android

2022-12-09 19:00:02

Vite兼容性BigInt

2020-11-04 17:35:39

網絡安全漏洞技術

2024-11-07 12:33:47

2024-05-28 09:12:10

2024-04-07 00:00:00

ESlint命令變量

2023-12-12 08:41:01

2023-12-20 08:23:53

NIO組件非阻塞

2024-04-30 09:02:48

2023-04-26 10:21:04

2024-07-03 08:33:08

2018-01-10 08:27:00

點贊
收藏

51CTO技術棧公眾號