Net内存程序集通用脱壳机实现原理(一注入)

简介: 正如前面提到的DotNet 程序的脱壳和普通PE文件的脱壳是有密切关系的。传统PE文件dump大部分都是进程外dump,这里我们介绍的DotNet程序集的脱壳使用进程内dump。所以第一步就是注入问题,如何让我们的程序在目标进程内运行?传统的win32 注入dll,相信大家都熟悉了吧,得益于C++/CLI的特性,我们能依靠传统的方式注入我们的程序到目标进程中。

正如前面提到的DotNet 程序的脱壳和普通PE文件的脱壳是有密切关系的。
传统PE文件dump大部分都是进程外dump,这里我们介绍的DotNet程序集的脱壳
使用进程内dump。

所以第一步就是注入问题,如何让我们的程序在目标进程内运行?
传统的win32 注入dll,相信大家都熟悉了吧,
得益于C++/CLI的特性,我们能依靠传统的方式注入我们的程序到目标进程中。

用VS2005新建一个mfc dll,然后在工程属性里面开启 clr支持,这样在这个dll就能使用 CLR 了。
而这个dll又能像传统dll一样被注入到目标进程中。

注入实现原理请参考这里
http://bbs.pediy.com/showthread.php?s=&threadid=21123
ShellCode的另外一种玩法(远程线程注入ShellCode)

注入启动之后就会显示我们的dumper 对话框了。
这里我用反射枚举出当前进程中所有的程序,将其路径显示在列表中。

界面可以参考前一篇帖子的贴图。


目录
相关文章
|
7月前
|
安全 Linux Shell
Linux上执行内存中的脚本和程序
【9月更文挑战第3天】在 Linux 系统中,可以通过多种方式执行内存中的脚本和程序:一是使用 `eval` 命令直接执行内存中的脚本内容;二是利用管道将脚本内容传递给 `bash` 解释器执行;三是将编译好的程序复制到 `/dev/shm` 并执行。这些方法虽便捷,但也需谨慎操作以避免安全风险。
305 6
|
6月前
|
NoSQL 测试技术
内存程序崩溃
【10月更文挑战第13天】
206 62
|
4月前
|
算法 Java 测试技术
Benchmark.NET:让 C# 测试程序性能变得既酷又简单
Benchmark.NET是一款专为 .NET 平台设计的性能基准测试框架,它可以帮助你测量代码的执行时间、内存使用情况等性能指标。它就像是你代码的 "健身教练",帮助你找到瓶颈,优化性能,让你的应用跑得更快、更稳!希望这个小教程能让你在追求高性能的路上越走越远,享受编程带来的无限乐趣!
200 13
|
5月前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
125 1
|
5月前
|
开发框架 监控 .NET
【Azure App Service】部署在App Service上的.NET应用内存消耗不能超过2GB的情况分析
x64 dotnet runtime is not installed on the app service by default. Since we had the app service running in x64, it was proxying the request to a 32 bit dotnet process which was throwing an OutOfMemoryException with requests >100MB. It worked on the IaaS servers because we had the x64 runtime install
|
5月前
|
存储 缓存 Java
结构体和类在内存管理方面的差异对程序性能有何影响?
【10月更文挑战第30天】结构体和类在内存管理方面的差异对程序性能有着重要的影响。在实际编程中,需要根据具体的应用场景和性能要求,合理地选择使用结构体或类,以优化程序的性能和内存使用效率。
|
6月前
|
存储 程序员 编译器
简述 C、C++程序编译的内存分配情况
在C和C++程序编译过程中,内存被划分为几个区域进行分配:代码区存储常量和执行指令;全局/静态变量区存放全局变量及静态变量;栈区管理函数参数、局部变量等;堆区则用于动态分配内存,由程序员控制释放,共同支撑着程序运行时的数据存储与处理需求。
346 22
|
7月前
|
C语言 Android开发 C++
基于MTuner软件进行qt的mingw编译程序的内存泄漏检测
本文介绍了使用MTuner软件进行Qt MinGW编译程序的内存泄漏检测的方法,提供了MTuner的下载链接和测试代码示例,并通过将Debug程序拖入MTuner来定位内存泄漏问题。
133 4
基于MTuner软件进行qt的mingw编译程序的内存泄漏检测
|
7月前
|
存储 缓存 Java
java线程内存模型底层实现原理
java线程内存模型底层实现原理
java线程内存模型底层实现原理
|
6月前
|
数据库连接 开发者
.NET 内存管理两种有效的资源释放方式
【10月更文挑战第15天】在.NET中,有两种有效的资源释放方式:一是使用`using`语句,适用于实现`IDisposable`接口的对象,如文件流、数据库连接等,能确保资源及时释放,避免泄漏;二是手动调用`Dispose`方法并处理异常,提供更灵活的资源管理方式,适用于复杂场景。这两种方式都能有效管理资源,提高应用性能和稳定性。
151 2

热门文章

最新文章