居然能找到这里来嘛,这里只是用来放笔记的图书馆哦~
1688 字
8 分钟
【教程】GenP3.5激活后还需要做的工作
本文不提供激活破解的任何教程,只讲如何关闭一些不想在使用中看到的东西。
此外该教程只是对“https://www.reddit.com/r/GenP/wiki/redditgenpguides/”中的一部分信息进行提炼,并非原创。教程中的指令与代码均为转载。
另外,使用这个教程中的步骤会导致应用的网络连接错误,如果刚需那些联网的AI功能等的,这个教程并不合适。
最后,请支持开发者与公司的劳动成果,不要滥用技术,此技术仅为学习。
1.一些不希望自启动的进程:
通常我们不希望以下的可执行文件自动启动
C:\Program Files (x86)\Adobe\Adobe Sync\CoreSync\CoreSync.exe
C:\Program Files\Adobe\Adobe Creative Cloud Experience\CCXProcess.exe
C:\Program Files (x86)\Common Files\Adobe\Adobe Desktop Common\ADS\Adobe Desktop Service.exe(更新CreativeCloud时至少恢复这个)
C:\Program Files\Common Files\Adobe\Creative Cloud Libraries\CCLibrary.exe
C:\Program Files\Adobe\Acrobat DC\Acrobat\AdobeCollabSync.exe(如安装Acrobat DC会有这个目录和文件,没有就不用)我们需要对这些可执行文件后缀从.exe改为.exe.bak来做一个备份。当需要更新CreativeCloud时需要恢复“Adobe Desktop Service.exe”,如果还是遇到问题恢复上面所有备份的文件,更新完后再执行这一步关掉他们。
2.一些烦人的弹窗:
在使用过程中时常会出现一些妨碍我们工作,他们不可移动,不可关闭。此时我们需要再hosts中重定向一些连接来屏蔽这些弹窗广告,或者运行一下GenP3.5中的脚本工具。
AGS是我们尤其不希望看到的。不过工具提供了卸载它的快捷按钮,只需要管理员方式运行GenP3.5—>Pop-upTools—>remove AGS
然后是另一些弹窗,他们需要hosts去阻断链接。
我们选择使用“教程”中的方案2,“UpdateHostsFile”。但是需要注意的,这是一个自动化脚本存在风险,请在知晓此点后选择是否使用。
*执行之前先把GenP3.5放到“C:\GenP.v3.5.0-CGP\”这个位置,确保“C:\GenP.v3.5.0-CGP\GenP 3.5.0.exe”路径存在。然后请使用PowerShell执行以下的代码。$scriptDir = "C:\Windows\System32\drivers\etc"$scriptPath = "$scriptDir\UpdateHostsFile.ps1"if (Get-ScheduledTask -TaskName "UpdateHostsFile" -ErrorAction SilentlyContinue) { Unregister-ScheduledTask -TaskName "UpdateHostsFile" -Confirm:$false }if (-not (Test-Path -Path $scriptDir)) { New-Item -ItemType Directory -Path $scriptDir -Force }Set-Content -Path $scriptPath -Value @'$logDirectory = "C:\Windows\System32\drivers\etc"$logFile = "$logDirectory\UpdateHostsFile.log"if (-not (Test-Path -Path $logDirectory)) { New-Item -ItemType Directory -Path $logDirectory -Force }Set-Content -Path $logFile -Value $nullfunction Write-Log { param ([string]$message) $timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss" $logEntry = "$timestamp - $message" Add-Content -Path $logFile -Value $logEntry}function Test-IsAdmin { if (-not ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) { Write-Log "This script requires administrative privileges. Please run PowerShell as Administrator." Write-Output "This script requires administrative privileges. Please run PowerShell as Administrator." exit }}function SafeFileOperation { param ( [string]$Action, [string]$Source, [string]$Destination ) try { switch ($Action) { "Copy" { Copy-Item -Path $Source -Destination $Destination -Force } "Rename" { Rename-Item -Path $Source -NewName $Destination -Force } } Write-Log "$Action operation successful: $Source -> $Destination" } catch { Write-Log "Failed to $Action file: Please ensure the source file exists and you have the necessary permissions." }}Test-IsAdminWrite-Log "Script execution started."$hostsFile = "C:\Windows\System32\drivers\etc\hosts"$backupCurrent = "C:\Windows\System32\drivers\etc\hosts.bak"$plainBackup = "C:\Windows\System32\drivers\etc\hosts.plain"$tempFile = "$scriptDir\hosts_temp"$primaryGenPPath = "C:\GenP.v3.5.0-CGP\GenP 3.5.0.exe"if (-not (Test-Path $hostsFile)) { Write-Log "The hosts file does not exist at the specified path: $hostsFile" exit}if (-not (Test-Path $primaryGenPPath)) { Write-Log "The specified GenP executable does not exist at: $primaryGenPPath" exit}if ((Get-Item $hostsFile).Attributes -band [System.IO.FileAttributes]::ReadOnly) { Write-Log "The hosts file is currently read-only. Attempting to remove read-only attribute." try { Set-ItemProperty -Path $hostsFile -Name IsReadOnly -Value $false Write-Log "Removed read-only attribute from the hosts file." } catch { Write-Log "Could not change the read-only status of the hosts file. Please check permissions." }}$currentContent = Get-Content -Path $hostsFile -Raw -ErrorAction SilentlyContinueif (-not (Test-Path $backupCurrent) -or ($currentContent -ne (Get-Content -Path $backupCurrent -Raw -ErrorAction SilentlyContinue))) { Write-Log "Creating a new backup of the hosts file." SafeFileOperation -Action "Copy" -Source $hostsFile -Destination $backupCurrent} else { Write-Log "Hosts file has not changed since the last backup. Skipping backup."}$hostsContent = Get-Content -Path $hostsFile -Raw -ErrorAction SilentlyContinueWrite-Log "Hosts file content retrieved."$maxRetries = 3$retryDelay = 2$newBlocklist = @()Write-Log "Attempting to execute GenP.exe for blocklist."try { Start-Process -FilePath $primaryGenPPath -ArgumentList "-popup" -NoNewWindow -Wait Write-Log "GenP.exe executed successfully." $hostsContent = Get-Content -Path $hostsFile -Raw if ($hostsContent -match "^0\.0\.0\.0") { Write-Log "GenP.exe output detected and valid." $newBlocklist = $hostsContent -split "`n" | Where-Object { $_.Trim() -match '^0\.0\.0\.0' } } else { Write-Log "GenP.exe output missing or invalid." throw "Invalid GenP.exe output." }} catch { Write-Log "Failed to run GenP to fetch the blocklist; please ensure the executable is present and try again."}if (-not $newBlocklist.Count) { Write-Log "Attempting to retrieve blocklist from fallback URLs." $encodedUrls = @( "aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2lnbmFjaW9jYXN0cm8vYS1kb3ZlLWlzLWR1bUIvcmVmcy9oZWFkcy9tYWluL2xpc3QudHh0", "aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2lnbmFjaW9jYXN0cm8vYS1kb3ZlLWlzLWR1bUIvcmVmcy9oZWFkcy9tYWluL3dpbmhvc3RzLnR4dA==" ) foreach ($encodedUrl in $encodedUrls) { $decodedUrl = [System.Text.Encoding]::UTF8.GetString([Convert]::FromBase64String($encodedUrl)) Write-Log "Trying to access fallback URL." for ($attempt = 1; $attempt -le $maxRetries; $attempt++) { try { Write-Log "Retrieving blocklist content from fallback URL." $response = Invoke-WebRequest -Uri $decodedUrl -Method Get -ErrorAction Stop if ($response.Content) { Write-Log "Successfully retrieved content from fallback URL on attempt $attempt." $newBlocklist += $response.Content -split "`n" | Where-Object { $_ -match "^0\.0\.0\.0|^# Last update:" } break } } catch { Write-Log "Failed to connect to the provided URL; please check internet connectivity or the URL itself." if ($attempt -lt $maxRetries) { Write-Log "Retrying in $retryDelay seconds." Start-Sleep -Seconds $retryDelay } } } if ($newBlocklist.Count -gt 0) { break } }}if ($newBlocklist.Count -eq 0) { Write-Log "No valid blocklist entries retrieved from all sources. Attempting to restore hosts file from hosts.plain." if (Test-Path $plainBackup) { Write-Log "Restoring hosts file from hosts.plain file." $plainContent = Get-Content -Path $plainBackup -Raw -ErrorAction SilentlyContinue if (-not [string]::IsNullOrWhiteSpace($plainContent)) { Write-Log "Restoring hosts file." Set-Content -Path $hostsFile -Value $plainContent -NoNewline Write-Log "Successfully restored hosts file from hosts.plain." } else { Write-Log "hosts.plain is empty or invalid; unable to restore hosts file." } } else { Write-Log "hosts.plain file does not exist; cannot restore hosts file." Write-Log "Restoring hosts file from backup." SafeFileOperation -Action "Copy" -Source $backupCurrent -Destination $hostsFile } Write-Log "Exiting script." exit}Write-Log "Total valid blocklist entries pulled: $($newBlocklist.Count)"$blocklistHeader = "# START - Adobe Blocklist"$blocklistFooter = "# END - Adobe Blocklist"$lastUpdateComment = ""foreach ($line in $newBlocklist) { if ($line.Trim().StartsWith("# Last update:")) { $lastUpdateComment = "`n$($line.Trim())" }}$filteredBlocklist = $newBlocklist | Where-Object { -not ($_.Trim().StartsWith("# Last update:")) -and $_.Trim() -ne "" }$finalContent = ""if (Test-Path $plainBackup) { $plainContent = Get-Content -Path $plainBackup -Raw -ErrorAction SilentlyContinue if (-not [string]::IsNullOrWhiteSpace($plainContent)) { Write-Log "Including content from hosts.plain at the top of the hosts file." $finalContent += $plainContent.Trim() + "`n" } else { Write-Log "The file hosts.plain is empty; it will not be included." }}$finalContent += "$blocklistHeader$lastUpdateComment`n$($filteredBlocklist -join "`n")`n$blocklistFooter".Trim()$finalContent = $finalContent -replace "`r?`n`r?`n", "`n"for ($attempt = 1; $attempt -le $maxRetries; $attempt++) { try { Start-Sleep -Seconds 1 Write-Log "Attempting to write to $tempFile, Attempt #$attempt" if ((Get-Item $hostsFile).Attributes -band [System.IO.FileAttributes]::ReadOnly) { Write-Log "The hosts file is currently read-only. Attempting to remove read-only attribute." Set-ItemProperty -Path $hostsFile -Name IsReadOnly -Value $false Write-Log "Removed read-only attribute from hosts file." } Set-Content -Path $tempFile -Value $finalContent -NoNewline Write-Log "Temporary file created successfully." SafeFileOperation -Action "Copy" -Source $tempFile -Destination $hostsFile Write-Log "Hosts file successfully updated from temporary file." break } catch { Write-Log "An error occurred while updating the hosts file. Ensure you have sufficient permissions." if ($errorMsg -like "*denied*") { Write-Log "Access to $hostsFile is denied. Retrying in $retryDelay seconds..." Start-Sleep -Seconds $retryDelay } else { Write-Log "An unexpected error occurred: $errorMsg" break } }}Remove-Item -Path $tempFile -ErrorAction SilentlyContinueWrite-Log "Script execution completed successfully."'@if (Test-Path $scriptPath) { Write-Output "Script file successfully created at $scriptPath."} else { Write-Output "Script file creation failed. Please check permissions or paths."}$action = New-ScheduledTaskAction -Execute "powershell.exe" -Argument "-NoProfile -ExecutionPolicy Bypass -File `"$scriptPath`""$trigger = New-ScheduledTaskTrigger -Once -At (Get-Date) -RepetitionInterval (New-TimeSpan -Hours 3) -RepetitionDuration (New-TimeSpan -Days 3650)$settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries -StartWhenAvailable -MultipleInstances IgnoreNew -ExecutionTimeLimit (New-TimeSpan -Minutes 2)try { Register-ScheduledTask -TaskName "UpdateHostsFile" -Action $action -Trigger $trigger -Settings $settings -User "SYSTEM" -RunLevel Highest Write-Output "Scheduled task 'UpdateHostsFile' created successfully."} catch { Write-Output "Failed to create scheduled task."}Start-Sleep -Seconds 5try { Start-ScheduledTask -TaskName "UpdateHostsFile" Write-Output "Scheduled task 'UpdateHostsFile' started successfully."} catch { Write-Output "Failed to start scheduled task."}Start-Process -FilePath "powershell.exe" -ArgumentList "-Command exit"Stop-Process -Id $PID -Forceexit运行完这个脚本后打开任务计划程序—>任务计划程序库—>UpdateHostFile—>运行
检查一下hosts文件内是否发生了变化。
3.文末
这只是幻梦本人在使用过程中的操作步骤,需要更详细的帮助请使用文章头部留下的链接,看完后足够解决大部分问题。
【教程】GenP3.5激活后还需要做的工作
https://www.yumehinata.com/posts/hctnjw4g/
