Skip to content

gianged/Gianged-DRM-v1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gianged-DRM-v1

Learning Purpose Project

This project is designed as an educational exercise to understand and implement basic Digital Rights Management (DRM) concepts in C#/.NET. It serves as a hands-on learning experience to explore software protection mechanisms, licensing systems, and security concepts.

Educational Disclaimer: This project is created solely for learning purposes. It demonstrates basic DRM concepts and should not be used in production environments without proper security auditing and enhancements.

Learning Objectives

  • Understand the fundamentals of software licensing and protection
  • Learn about cryptographic techniques in software security
  • Explore hardware fingerprinting and machine identification
  • Implement basic anti-debugging and integrity checking mechanisms
  • Practice software architecture patterns for security systems

Project Structure

DRM/
├── Core/                           # Core DRM functionality
│   ├── CryptoHelper.cs             # Cryptographic operations
│   ├── LicenseGenerator.cs         # License creation logic
│   ├── LicenseValidator.cs         # License verification
│   └── ObfuscationHelper.cs        # Code obfuscation utilities
├── Hardware/                       # Hardware identification
│   └── MachineInfo.cs              # System fingerprinting
├── Models/                         # Data models
│   ├── License.cs                  # License structure
│   ├── LicenseFeature.cs           # Feature definitions
│   └── LicenseTier.cs              # License tier definitions
├── Protection/                     # Security mechanisms
│   ├── AntiDebugger.cs             # Anti-debugging techniques
│   └── IntegrityChecker.cs         # Code integrity verification
├── Storage/                        # License storage
│   └── LicenseStorage.cs           # License persistence
├── Tests/                          # Test framework
│   ├── DRMTestRunner.cs            # Main test runner
│   ├── HardwareTests.cs            # Hardware fingerprinting tests
│   ├── LicenseValidationTests.cs   # License validation tests
│   └── TierValidationTests.cs      # License tier validation tests
├── Utils/                          # Utility classes
│   ├── Encoder.cs                  # Encoding/decoding helpers
│   └── Logger.cs                   # Logging functionality
└── Program.cs                      # Application entry point

Technologies Used

  • Framework: .NET 8.0
  • Language: C#
  • Dependencies:
    • Microsoft.Win32.Registry - Windows registry access
    • Newtonsoft.Json - JSON serialization

Getting Started

Prerequisites

  • .NET 8.0 SDK or later
  • Visual Studio 2022 or VS Code
  • Windows OS (for registry-based features)

Building the Project

# Clone the repository
git clone https://github.com/gianged/Gianged-DRM-v1.git
cd Gianged-DRM-v1

# Build the solution
dotnet build

# Run the application
dotnet run --project DRM

Key Concepts Covered

1. License Management

  • License generation and validation
  • Feature-based licensing
  • Expiration handling

2. Hardware Fingerprinting

  • Machine identification
  • Hardware-based license binding
  • System information collection

3. Cryptographic Protection

  • License encryption/decryption
  • Digital signatures
  • Hash verification

4. Anti-Tampering Measures

  • Anti-debugging techniques
  • Code integrity checking
  • Obfuscation methods

5. Secure Storage

  • Encrypted license storage
  • Registry-based persistence
  • Secure data handling

Security Considerations

This learning project implements basic security concepts. In a real-world scenario, additional considerations include:

  • Advanced cryptographic algorithms
  • Server-side license validation
  • Network security protocols
  • Robust anti-tampering measures
  • Professional code obfuscation
  • Legal compliance (DMCA, etc.)

Learning Resources

To deepen your understanding of DRM and software protection:

Contributing

This is a learning project, but contributions that enhance the educational value are welcome:

  1. Fork the repository
  2. Create a feature branch
  3. Add educational comments and documentation
  4. Submit a pull request

License

This project is open source and available under the MIT License.

Ethical Use

This project is intended for educational purposes only. Please use the knowledge gained responsibly and ethically. Do not use these techniques to circumvent legitimate software protections or violate software licenses.


Happy Learning!

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages