- Java锁的逻辑(结合对象头和ObjectMonitor)
- 还在用饼状图?来瞧瞧这些炫酷的百分比可视化新图形(附代码实现)⛵
- 自动注册实体类到EntityFrameworkCore上下文,并适配ABP及ABPVNext
- 基于Sklearn机器学习代码实战
.Net 7的一个重要功能是把托管的源码编译成Native Code,也就是二进制文件。此举看似增加了程序反编译难度,实际上是减少了程序的破解难度。本篇在不触及整个程序架构的前提下,以简单的例子来修改Native AOT exe文件的输出字符串.
Console.WriteLine("Hello, World!");
Console.ReadLine();
搞一个简单的HelloWorld example,来举例下非常简单的破解之道.
这里需要用到一个16进制的编辑器工具:UltraEdit.这个东西可以去搜索引擎搜索下就可以得到。 把以上简单的代码编译成Native AOT文件之后,生成一个exe文件。把这个exe文件拖到UltraEdit里面去.
下拉UltraEdit到地址0046F09C处,可以看到:48 00 65 00 这四个byte。十六进制的0x48和0x65是上面.Net程序输出的语句的Hello, World! 前面的He两个字符串的ASSIC码.
右键UltraEdit修改,把48 00 66 00修改成:49 00 66 00,如上图所示。然后再打开native AOT的exe文件发现本来的Hello, World!变成了Ifllo, World!。如下图所示.
没修改前:
修改后 。
它的原理也非常简单,只要看下.Net 程序的Console.WriteLine函数的参数地址是多少,一般在汇编层面是用RCX寄存器来表示。所以你只要找到RCX寄存器的地址,注意它在哪个Section,进行相应的计算就可以找到字符串Hello World在二进制文件里面的地址。进而进行修改.
这种修改还有很多地方,比如修改函数的跳转,修改功能性的缺失,修改整个程序的架构。整个程序像个筛子.
作者:江湖评谈 。
最后此篇关于.Net7的AOT的程序比托管代码更容易破解?的文章就讲到这里了,如果你想了解更多关于.Net7的AOT的程序比托管代码更容易破解?的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我正在开发一个包含大量类的项目,我想将它们编译成 jar。我知道入口点和manifest.txt以及我的jar中的所有需要的项目,我的类都已编译并具有.class文件和所有内容,但问题是我必须将所
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
在我的计算结束时,我打印结果: System.out.println("\nTree\t\tOdds of being by the sought author"); for (ParseTree p
我有一个具有多个时间范围的数据,例如考虑以下列 | from1 | to1 | from2 | to2 | from3 | to3 | | 06:00 | 07:30 | 09:30 |
我对 JavaScript 和 jQuery 相当缺乏经验,但对于我正在处理的 ASP.Net 网站,我需要两者。我正在慢慢弄清楚,但我一直严重依赖 StackOverFlow。 有谁知道有什么工具(
我正在考虑用 PHP 编写一些代码来更改图像的所有 id 以匹配其 alt。在 jQuery 中这会更容易实现吗? 我需要做的是走这条线 img alt="拼图"src="images/cole.jp
鉴于 websinte 的结构
假设我有 struct Value { int foo(); }; size_t *begin = ..., *end = ...; 如果我想在 C++03 中对一堆 Value 索
我开始创建一个将与公共(public) API 交互的 iPhone 应用程序。 我的问题是,使用 XML 还是 JSON 哪个更快和/或更容易? 最佳答案 根据 Sam Soffes , Touch
如果 PHP 是用 C 编写的,那么用 PHP 编写服务器端脚本与用 C 编写服务器端脚本究竟有什么区别,尤其是如果我使用的是 C 的 Web 框架可以处理 mysql 连接、SESSIONS 等?
我记得有一次看到一个人做的一个项目,他用某种语言用类似 json 的字符串编写了这样的东西,创建了非常好的 html。有没有类似的东西我可以用于 C# 或 .NET radio-box{ AName,
我的一位网页设计师 friend 仍在使用表格制作网站,但他使用 css 非常好,我也很好地使用 css,但使用 而且我在布局方面比我的 friend 更多地面临跨浏览器问题。 我向我的 friend
我想创建一个图,在那里可以看到 x 轴的替代刻度,例如pi/2, pi, 3pi/2, 等等。到目前为止,这对我来说只适用于一个相当不方便的代码(看看我创建的行 pi.halfs , pi.fulls
我是一名优秀的程序员,十分优秀!