看啥推荐读物
专栏名称: dotNET跨平台
专注于.NET Core的技术传播。在这里你可以谈微软.NET,Mono的跨平台开发技术。在这里可以让你的.NET项目有新的思路,不局限于微软的技术栈,横跨Windows,Linux 主流平台
今天看啥  ›  专栏  ›  dotNET跨平台

.Net JIT二进制骚操DHVM破解篇

dotNET跨平台  · 公众号  ·  · 2023-08-08 08:00
前言经研究,号称最强.Net加密软件DNGuard HVM(以下简称DHVM),五行代码基本上可以优雅的破解它,本篇看下。友情提示,以下全是二进制汇编骚操,慎入。概括示例:非常简单的示例static void ABC(){ Console.WriteLine("Call ABC");}static void DEF(){ Console.WriteLine("Call DEF");}static void Main(string[] args){ Console.WriteLine("Call Main"); ABC(); DEF(); Console.ReadLine();}修改调用ABC函数的逻辑为调用DEF函数,Main函数的MSIL二进制代码如下:00 72 25 00 00 70 28 0e 00 00 0a 00 28 06 00 00 06 00 28 07 00 00 06 00 28 0f 00 00 0a 26 2a这里的MSIL二进制代码可以参考:罕见的技术:MSIL的机器码简析1.难点因为Hook JIT,简单的MSIL修改已经不起作用。DHVM的各种反调试,比如VS调试器无法进入某些内存地址。一进入就会报异常。它静态地址在运行的时候动态偏移,它进行了PE的IAT(导入表)的Name字段验证,当IAT的Name不为0 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照