使用方法
将version.dll放进Reactor目录下
使用NetReactorLicenseCreator创建license文件
将license文件拷贝到Reactor目录下
即刻享用
软件链接
587K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6U0k6r3&6Q4x3X3c8V1L8%4N6F1L8r3!0S2k6s2y4Q4x3X3g2W2P5X3W2J5K9i4A6Q4x3X3g2U0L8$3#2Q4x3V1k6V1L8%4c8F1k6i4c8Q4y4h3k6J5k6h3q4U0N6r3!0J5i4K6g2X3M7$3g2@1N6i4m8Q4y4h3j5%4i4K6g2X3y4g2)9#2k6U0m8Q4y4h3j5H3i4K6u0W2k6i4S2W2
注意
1. License默认使用PEDIY作为名称,不可更改,PEDIY专用版~~~
2. License生成器采用Net Framework 4.7.2 版本设计,如遇到启动问题请查看系统是否存在运行库。
3. 加密授权不过猜测加密时对授权重新验证,授权文件一致只是换了一个验证API
4. License生成器支持自动获取硬件ID(默认:Processor, DiskDrive, BaseBoard)
5. 加入补丁后软件启动崩溃请参考 @Gamous 朋友的说明:
Set-ProcessMitigation -Name dotNET_Reactor.exe -Disable UserShadowStack, UserShadowStackStrictMode
6. 增加Linux爆破版本
跟踪RSA_Verify函数向前追溯到调用的验证函数,直接返回值
.text:0000555555F77D00 ; __unwind { // 555555554000
.text:0000555555F77D00 B8 01 00 00 00 mov eax, 1
.text:0000555555F77D05 C3 retn
.text:0000555555F77D06 ; ---------------------------------------------------------------------------
.text:0000555555F77D06 41 56 push r14
.text:0000555555F77D08 41 55 push r13
.text:0000555555F77D0A 41 54 push r12
.text:0000555555F77D0C 53 push rbx
.text:0000555555F77D0D ; 7: qword_5555560B9CF8();
.text:0000555555F77D0D 50 push rax
.text:0000555555F77D0E 45 89 CF mov r15d, r9d
.text:0000555555F77D11 4C 89 45 D0 mov [rbp+var_30], r8
.text:0000555555F77D15 49 89 CC mov r12, rcx
.text:0000555555F77D18 41 89 D6 mov r14d, edx
.text:0000555555F77D1B 48 89 F3 mov rbx, rsi
.text:0000555555F77D1E 49 89 FD mov r13, rdi
.text:0000555555F77D21 48 8D 05 D0 1F 14 00 lea rax, qword_5555560B9CF8
.text:0000555555F77D28 FF 10 call qword ptr [rax]
.text:0000555555F77D2A ; 8: v11 = sub_555555F77170(a1, a2);
.text:0000555555F77D2A 4C 89 EF mov rdi, r13
.text:0000555555F77D2D 48 89 DE mov rsi, rbx
6. 增加MacOS爆破版本
__text:0000000100711124 E8 B9 76 06 00 call _SecKeyVerifySignature
__text:0000000100711129 41 BC 01 00 00 00 mov r12d, 1
__text:000000010071112F 84 C0 test al, al
;特征码更改 E8 ...->B8 01 90 90 90
4C 8B 45 ? E8 ? ? ? ? 41 BC 01 00 00 00 84 C0 75
启动提示文件损坏设置
sudo xattr -cr dotNet_Reactor


核心代码
软件使用的公钥验证API不同,所以包含的RSA公钥的blob顺序有差别(大端/小端)
NTSTATUS WINAPI myBCryptImportKeyPair(
BCRYPT_ALG_HANDLE hAlgorithm,
BCRYPT_KEY_HANDLE hImportKey,
LPCWSTR pszBlobType,
BCRYPT_KEY_HANDLE* phKey,
PUCHAR pbInput,
ULONG cbInput,
ULONG dwFlags)
{
int result = PatternSearch::PatchPatternSearchInfo(pbInput, cbInput, patchPattern[0]); //搜索blob特征
if (result != -1)
{
//自定义blob公钥
unsigned char PubKey[] = {
};
return BCryptImportKeyPair_t(hAlgorithm, hImportKey, pszBlobType, phKey, PubKey, sizeof(PubKey)/sizeof(PubKey[0]), dwFlags);
}
return BCryptImportKeyPair_t(hAlgorithm, hImportKey, pszBlobType, phKey, pbInput, cbInput, dwFlags);
}
BOOL WINAPI myCryptImportKey(
HCRYPTPROV hProv,
CONST BYTE* pbData,
DWORD dwDataLen,
HCRYPTKEY hPubKey,
DWORD dwFlags,
HCRYPTKEY* phKey)
{
int result = PatternSearch::PatchPatternSearchInfo((BYTE*)pbData, dwDataLen, patchPattern[1]);
if (result != -1)
{
unsigned char PubKey[] = {
};
return CryptImportKey_t(hProv, PubKey, sizeof(PubKey) / sizeof(PubKey[0]), hPubKey, dwFlags, phKey);
}
return CryptImportKey_t(hProv, pbData, dwDataLen, hPubKey, dwFlags, phKey);
}
加密测试效果

授权截图

传播安全知识、拓宽行业人脉——看雪讲师团队等你加入!
最后于 2026-1-25 09:52
被UnicornMaker编辑
,原因: 添加MacOS版本