实现自动脱壳被加密的Net程序集

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 本次脱壳的测试对象是CodeLib 2 V14.9.2468.42911 更新日期是2006-10-5 目前的最新版本。运行脱机程序到如下界面:选中列表中的第二项,codelib.exe,选择一个保存路径,点击dump按钮,即可完成脱壳。
本次脱壳的测试对象是CodeLib 2 V14.9.2468.42911 更新日期是2006-10-5 目前的最新版本。

运行脱机程序到如下界面:



选中列表中的第二项,codelib.exe,选择一个保存路径,点击dump按钮,即可完成脱壳。
脱壳完的程序保存到codedump.exe。

注意这个文件是直接dump脱壳的结果,不能直接运行。
使用ildasm 反编译,然后打开il文件
查找 IL_0000:  call       void InFaceMaxtoCode::Startup()
替换为 //IL_0000:  call       void InFaceMaxtoCode::Startup()
即取消对 maxtocode 运行库的引用。
然后运行 ilasm 编译成exe文件。
放在codelib的安装目录中即可正常运行了。


下载地址: http://www.bbsftp.com/temp/codelib_dumped.rar
对 codelib注册算法有兴趣的可以下载回去研究研究。
注意:先重命名安装目录中的codelib.exe,然后解压缩放进去就可以运行了。
这个程序里面还有很多anti,不过都不重要了,可以通过直接修改il来去掉anti。

脱壳机暂时不准备公开,DRT小组内部共享。
这次先简单介绍一下原理,下次有机会再详细介绍一下如何实现通用的内存程序集dumper。
这个dumper首先按照 pe dumper的原理,从内存里面dump出pe文件。
然后在在pe文件中增加一个只读的锻。用来放dump出来的il码。
通过前面几篇帖子介绍的方法,利用net 2.0的新特性取道方法的methodbody,
然后重建header,datatable,将结果存入新锻中,再修改相应method的rva指向新的header。

对所有的方法都这样处理一遍,即可完成dump。

这种方式对压缩壳,加密壳都有效。


目录
相关文章
|
5月前
|
存储 数据安全/隐私保护
.NET Core 究竟隐藏着怎样的神秘力量,能实现强身份验证与数据加密?
【8月更文挑战第28天】在数字化时代,数据安全与身份验证至关重要。.NET Core 提供了强大的工具,如 Identity 框架,帮助我们构建高效且可靠的身份验证系统,并支持高度定制化的用户模型和认证逻辑。此外,通过 `System.Security.Cryptography` 命名空间,.NET Core 还提供了丰富的加密算法和工具,确保数据传输和存储过程中的安全性。以下是一个简单的示例,展示如何使用 .NET Core 的 Identity 框架实现用户注册和登录功能。
45 3
|
29天前
|
算法 Java 测试技术
Benchmark.NET:让 C# 测试程序性能变得既酷又简单
Benchmark.NET是一款专为 .NET 平台设计的性能基准测试框架,它可以帮助你测量代码的执行时间、内存使用情况等性能指标。它就像是你代码的 "健身教练",帮助你找到瓶颈,优化性能,让你的应用跑得更快、更稳!希望这个小教程能让你在追求高性能的路上越走越远,享受编程带来的无限乐趣!
86 13
|
3月前
|
Java Maven 数据安全/隐私保护
如何实现Java打包程序的加密代码混淆,避免被反编译?
【10月更文挑战第15天】如何实现Java打包程序的加密代码混淆,避免被反编译?
349 2
|
4月前
|
Ubuntu 持续交付 API
如何使用 dotnet pack 打包 .NET 跨平台程序集?
`dotnet pack` 是 .NET Core 的 NuGet 包打包工具,用于将代码打包成 NuGet 包。通过命令 `dotnet pack` 可生成 `.nupkg` 文件。使用 `--include-symbols` 和 `--include-source` 选项可分别创建包含调试符号和源文件的包。默认情况下,`dotnet pack` 会先构建项目,可通过 `--no-build` 跳过构建。此外,还可以使用 `--output` 指定输出目录、`-c` 设置配置等。示例展示了创建类库项目并打包的过程。更多详情及命令选项,请参考官方文档。
261 11
|
3月前
|
XML 存储 安全
C#开发的程序如何良好的防止反编译被破解?ConfuserEx .NET混淆工具使用介绍
C#开发的程序如何良好的防止反编译被破解?ConfuserEx .NET混淆工具使用介绍
137 0
|
4月前
|
存储 运维
.NET开发必备技巧:使用Visual Studio分析.NET Dump,快速查找程序内存泄漏问题!
.NET开发必备技巧:使用Visual Studio分析.NET Dump,快速查找程序内存泄漏问题!
|
4月前
|
自然语言处理 C# 图形学
使用dnSpyEx对.NET Core程序集进行反编译、编辑和调试
使用dnSpyEx对.NET Core程序集进行反编译、编辑和调试
|
6月前
|
Linux C# iOS开发
如何用 WinDbg 调试Linux上的 .NET程序
【7月更文挑战第13天】 1. `dotnet-dump`: Collects process dumps with `dotnet-dump collect -p <process_id>`. 2. `lldb`: Debugs Mono runtime apps on macOS/Linux. 3. **Visual Studio Code**: Remotely debugs .NET via the C# extension. 4. **JetBrains Rider**: Supports remote debugging of .NET on Linux.
|
5月前
|
算法 安全 数据安全/隐私保护
实战案例2:简单的文件加密解密程序。
实战案例2:简单的文件加密解密程序。
158 0
|
5月前
|
开发框架 NoSQL .NET
使用 Asp.net core webapi 集成配置系统,提高程序的灵活和可维护性
使用 Asp.net core webapi 集成配置系统,提高程序的灵活和可维护性