VPL.cs
(开头部分) 3KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System;
using System.Runtime.InteropServices;
namespace RA2VXLEncryption
{
// 参考资料:
// [1] https://www.cnblogs.com/cmtspace/p/14356272.html
public class VPL
{
static VPL()
{
string dllFile = Environment.Is64BitProcess ?
"./DLL/x64/vpl.dll" :
"./DLL/x86/vpl.dll";
LoadLibraryA(dllFile);
}
[DllImport("kernel32")]
private static extern IntPtr LoadLibraryA([MarshalAs(UnmanagedType.LPStr)] string fileName);
/// <summary>
/// 加密指定的VPL文件并生成对应的密钥
/// </summary>
/// <param name="vplSource">未加密的VPL路径</param>
/// <param name="vplDest">生成加密后的VPL路径</param>
/// <param name="keyBuffer">密钥</param>
/// <param name="encryptScriptPath">生成的对应cscheme加密脚本[可NULL]</param>
/// <returns>操作是否成功</returns>
[DllImport("vpl.dll", EntryPoint = "Encrypt_VPL_File")]
public static extern bool EncryptVPL(
IntPtr vplSource,
IntPtr vplDest,
IntPtr keyBuffer,
IntPtr encryptScriptPath);
/// <summary>
/// 根据指定的密钥还原VPL文件
/// </summary>
/// <param name="vplSource">加密过的VPL文件路径</param>
/// <param name="vplDest">还原的VPL文件路径</param>
/// <param name="keyBuffer">密钥</param>
/// <returns>操作是否成功</returns>
[DllImport("vpl.dll", EntryPoint = "Decrypt_VPL_File")]
public static extern bool DecryptVPL(
IntPtr vplSource,
IntPtr vplDest,
IntPtr keyBuffer);
/// <summary>
/// 将密钥逆向或导出对应的cscheme解密脚本
/// </summary>
/// <param name="keyBuffer">密钥</param>
/// <param name="decryptScriptPath">生成的对应cscheme解密脚本[可NULL]</param>
/// <param name="keyDest">逆向的密钥[可NULL]</param>
/// <returns>操作是否成功</returns>
[Obsolete]
[DllImport("vpl.dll", EntryPoint = "Decrypt_Key")]
public static extern bool DecryptKey(
IntPtr keyBuffer,
后面还有 30 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。