-
-
Save dannote/17e0396fe2e19c6e60c915838376d267 to your computer and use it in GitHub Desktop.
#!/usr/bin/swift | |
// DISCLAIMER | |
// This script modifies an unencrypted file associated with the trial version of Final Cut Pro. | |
// Under the DMCA (17 U.S.C. § 1201), this modification does not qualify as circumvention of a technological | |
// protection measure (TPM), as it does not involve bypassing encryption, authentication, or similar protections. | |
// Distributing this code is therefore legal under the DMCA. | |
// This script is intended for educational and research purposes, such as exploring trial-related file structures, | |
// or for system troubleshooting in controlled environments with explicit permissions. It is not intended to be used | |
// in a manner that violates Apple's software license agreement. | |
// WARNING | |
// Using this script to reset or extend the trial period of Final Cut Pro without Apple's authorization likely violates | |
// the software license agreement. Such actions may lead to legal consequences. The responsibility for compliance with | |
// all applicable laws and agreements lies solely with the user. The author of this script assumes no liability for misuse | |
// or any resulting consequences. | |
import Foundation | |
let path = URL(fileURLWithPath: NSString(string: "~/Library/Containers/com.apple.FinalCutTrial/Data/Library/Application Support/.ffuserdata").expandingTildeInPath) | |
let data = try! NSData(contentsOf: path) as Data | |
let dictionary = try! NSKeyedUnarchiver.unarchiveTopLevelObjectWithData(data) as! NSDictionary | |
let mutableDictionary = dictionary.mutableCopy() as! NSMutableDictionary | |
for (key, value) in mutableDictionary { | |
if value is NSDate { | |
mutableDictionary[key] = Date() | |
} | |
} | |
try! NSKeyedArchiver.archivedData(withRootObject: mutableDictionary, requiringSecureCoding: false).write(to: path) | |
print("You'd better buy it") |
andresreibel
commented
Oct 1, 2024
via email
The latest version of Final Cut Pro seems not to work with this script:
main/final-cut-pro-trial-reset.swift:6: Fatal error: 'try!' expression unexpectedly raised an error: Error Domain=NSCocoaErrorDomain Code=260 "The file “.ffuserdata” couldn’t be opened because there is no such file." UserInfo={NSFilePath=/Users/[RESTRICTED]/Library/Application Support/.ffuserdata, NSURL=file:///Users/[RESTRICTED]/Library/Application%20Support/.ffuserdata, NSUnderlyingError=0x12e610c40 {Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory"}}
Does someone have a solution?
The latest version of Final Cut Pro seems not to work with this script:
main/final-cut-pro-trial-reset.swift:6: Fatal error: 'try!' expression unexpectedly raised an error: Error Domain=NSCocoaErrorDomain Code=260 "The file “.ffuserdata” couldn’t be opened because there is no such file." UserInfo={NSFilePath=/Users/[RESTRICTED]/Library/Application Support/.ffuserdata, NSURL=file:///Users/[RESTRICTED]/Library/Application%20Support/.ffuserdata, NSUnderlyingError=0x12e610c40 {Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory"}}
Does someone have a solution?
Try this: https://gist.github.com/TehBrian/bf82c7505b647d423da6d5abbe2b95a3
@l0u1sg, I've updated https://gist.github.com/TehBrian/bf82c7505b647d423da6d5abbe2b95a3 with the correct path for newer versions of Final Cut Pro.
Additionally, I've made a similar Gist for Logic Pro, https://gist.github.com/TehBrian/1c236b6d9c58e736c0480a876759164d, which I'll keep updated as well.
@TehBrian thank you, updated the code accordingly.
@andresreibel As I clearly stated in the disclaimer up there, this is not a place to distribute cracks, hacks or anything else that violates DMCA. Any attempts to advertise stuff like that will be suppressed immediately.