Графический интерфейс для goodbyeDPI и не только

Спокойно. Я нашел лишние 220мб в приложении. Теперь оно будет весить 200мб вместо полгигабайта. Признаю ошибку
:sweat_smile:
Насчет мелкости - я выключил масштабирование. Оно ужасно реализовано в ткинтере

Это где? Не нахожу…

Обновление → использовать бета версии функций
Далее
Утилиты → подбор параметров запуска goodbye DPI

Друг, ты бы заместо критики поучаствовал в проекте, благо гитхаб не забанен. А если не можешь/не знаешь так и не стоит делиться своим весомым мнением, оно никому не нужно да и вовсе может восприниматься негативно.

Разработчику спасибо за работу!

я чёт не следил за гуями, вроде был какой то launcher ето оно или не оно но он по другому выглядил чёто найти не могу его на гитхабе нету походу :thinking:

кароч вот пример кода на повершели (нееросеть накатала :smiling_face_with_tear:) и оно даж запускается :sweat_smile:

# Load necessary assemblies
Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing

# Create a new form
$form = New-Object System.Windows.Forms.Form
$form.Text = "GoodbyeDPI GUI"
$form.Size = New-Object System.Drawing.Size(500, 500)
$form.StartPosition = "CenterScreen"

# Checkbox for basic options
$checkBoxPassiveDPI = New-Object System.Windows.Forms.CheckBox
$checkBoxPassiveDPI.Text = "Block Passive DPI (-p)"
$checkBoxPassiveDPI.Location = New-Object System.Drawing.Point(20, 20)
$form.Controls.Add($checkBoxPassiveDPI)

$checkBoxQUIC = New-Object System.Windows.Forms.CheckBox
$checkBoxQUIC.Text = "Block QUIC/HTTP3 (-q)"
$checkBoxQUIC.Location = New-Object System.Drawing.Point(20, 50)
$form.Controls.Add($checkBoxQUIC)

$checkBoxReplaceHost = New-Object System.Windows.Forms.CheckBox
$checkBoxReplaceHost.Text = "Replace Host with hoSt (-r)"
$checkBoxReplaceHost.Location = New-Object System.Drawing.Point(20, 80)
$form.Controls.Add($checkBoxReplaceHost)

$checkBoxMixHost = New-Object System.Windows.Forms.CheckBox
$checkBoxMixHost.Text = "Mix Host Header Case (-m)"
$checkBoxMixHost.Location = New-Object System.Drawing.Point(20, 110)
$form.Controls.Add($checkBoxMixHost)

# Advanced options
$checkBoxReverseFrag = New-Object System.Windows.Forms.CheckBox
$checkBoxReverseFrag.Text = "Enable Reverse Fragmentation (--reverse-frag)"
$checkBoxReverseFrag.Location = New-Object System.Drawing.Point(20, 140)
$form.Controls.Add($checkBoxReverseFrag)

$checkBoxWrongChksum = New-Object System.Windows.Forms.CheckBox
$checkBoxWrongChksum.Text = "Send with Wrong Checksum (--wrong-chksum)"
$checkBoxWrongChksum.Location = New-Object System.Drawing.Point(20, 170)
$form.Controls.Add($checkBoxWrongChksum)

$checkBoxFragBySNI = New-Object System.Windows.Forms.CheckBox
$checkBoxFragBySNI.Text = "Fragment Before SNI (--frag-by-sni)"
$checkBoxFragBySNI.Location = New-Object System.Drawing.Point(20, 200)
$form.Controls.Add($checkBoxFragBySNI)

# Textbox for --fake-from-hex
$labelFakeFromHex = New-Object System.Windows.Forms.Label
$labelFakeFromHex.Text = "Fake From Hex (--fake-from-hex)"
$labelFakeFromHex.Location = New-Object System.Drawing.Point(20, 230)
$form.Controls.Add($labelFakeFromHex)

$textBoxFakeFromHex = New-Object System.Windows.Forms.TextBox
$textBoxFakeFromHex.Location = New-Object System.Drawing.Point(20, 250)
$textBoxFakeFromHex.Size = New-Object System.Drawing.Size(400, 20)
$form.Controls.Add($textBoxFakeFromHex)

# Textbox for --fake-gen
$labelFakeGen = New-Object System.Windows.Forms.Label
$labelFakeGen.Text = "Number of Fake Packets (--fake-gen)"
$labelFakeGen.Location = New-Object System.Drawing.Point(20, 280)
$form.Controls.Add($labelFakeGen)

$textBoxFakeGen = New-Object System.Windows.Forms.TextBox
$textBoxFakeGen.Location = New-Object System.Drawing.Point(20, 300)
$textBoxFakeGen.Size = New-Object System.Drawing.Size(150, 20)
$form.Controls.Add($textBoxFakeGen)

# Blacklist file selection
$labelBlacklist = New-Object System.Windows.Forms.Label
$labelBlacklist.Text = "Blacklist Files (--blacklist)"
$labelBlacklist.Location = New-Object System.Drawing.Point(20, 330)
$form.Controls.Add($labelBlacklist)

$listBoxBlacklist = New-Object System.Windows.Forms.ListBox
$listBoxBlacklist.Location = New-Object System.Drawing.Point(20, 350)
$listBoxBlacklist.Size = New-Object System.Drawing.Size(300, 80)
$form.Controls.Add($listBoxBlacklist)

# Button to add blacklist files
$buttonAddBlacklist = New-Object System.Windows.Forms.Button
$buttonAddBlacklist.Text = "Add Blacklist File"
$buttonAddBlacklist.Location = New-Object System.Drawing.Point(330, 350)
$form.Controls.Add($buttonAddBlacklist)

$buttonAddBlacklist.Add_Click({
    $fileDialog = New-Object System.Windows.Forms.OpenFileDialog
    $fileDialog.Filter = "Text Files (*.txt)|*.txt"
    if ($fileDialog.ShowDialog() -eq [System.Windows.Forms.DialogResult]::OK) {
        $listBoxBlacklist.Items.Add($fileDialog.FileName)
    }
})

# Button to execute the command
$buttonRun = New-Object System.Windows.Forms.Button
$buttonRun.Text = "Run GoodbyeDPI"
$buttonRun.Location = New-Object System.Drawing.Point(20, 440)
$form.Controls.Add($buttonRun)

# Button click event
$buttonRun.Add_Click({
    $options = ""

    # Add basic options
    if ($checkBoxPassiveDPI.Checked) { $options += " -p" }
    if ($checkBoxQUIC.Checked) { $options += " -q" }
    if ($checkBoxReplaceHost.Checked) { $options += " -r" }
    if ($checkBoxMixHost.Checked) { $options += " -m" }

    # Add advanced options
    if ($checkBoxReverseFrag.Checked) { $options += " --reverse-frag" }
    if ($checkBoxWrongChksum.Checked) { $options += " --wrong-chksum" }
    if ($checkBoxFragBySNI.Checked) { $options += " --frag-by-sni" }

    # Add --fake-from-hex
    $fakeFromHex = $textBoxFakeFromHex.Text
    if (-not [string]::IsNullOrEmpty($fakeFromHex)) {
        $options += " --fake-from-hex $fakeFromHex"
    }

    # Add --fake-gen
    $fakeGen = $textBoxFakeGen.Text
    if (-not [string]::IsNullOrEmpty($fakeGen)) {
        $options += " --fake-gen $fakeGen"
    }

    # Add blacklist files
    foreach ($file in $listBoxBlacklist.Items) {
        $options += " --blacklist $file"
    }

    # Path to goodbyedpi.exe, adjust if necessary
    $goodbyeDPIPath = "goodbyedpi.exe"

    # Execute the command
    Start-Process -FilePath $goodbyeDPIPath -ArgumentList $options -NoNewWindow
})

# Show the form
$form.Add_Shown({ $form.Activate() })
[void]$form.ShowDialog()

Так возьми и сделай на чистом Питоне, а то только критикуешь и стебаешь всех, а помощи от тебя нет никакой. Критикуешь - предлагай и помогай!

Разработчику спасибо! давно уже люди просят графический интерфейс для утилит типа Запрет и Гудбай. Хорошо, когда в одной оболочке все утилиты и когда есть их обновление, логирование, и подбор параметров. Это прям очень-очень удобно было бы. Плюс ещё прикрутить Блокчек, чтобы можно было искать стратегии по дурению ДПИ.

В общем, с почином!

@Storik4pro вижу в первом посте, что можно использовать пресеты гудбая. Речь про конфиги, которые можно получить скриптами типа этого - GoodCheck - блокчек-скрипт для GoodbyeDPI, Zapret, ByeDPI ?

Было бы неплохо реализовать невозможность включить вместе несовместимые параметры, например --native-frag и --reverse-frag, и ограничить min и max значения для параметров, которые пишутся, а не вкл/выкл (если применимо). Этакая защита от дурака, который плохо знаком с документацией и может случайно натыкать несовместимое (если сам экзешник оригинальной программы при пуске не крашнется или не выплюнет ошибку).

В технических деталях вёрстки таких программ и дизайна интерфейса не силён, извините, предложить нечего. Спасибо и на том!

Речь о базовых пресетах -1…-9 и пресетах из файлов 10. russia_youtube и 11. russia_youtube_ALT

Хорошо, постараюсь реализовать

Ничего не ясно. Никогда не пользовался стоковым гудбаем, только через лаунчер. Придется разбираться, видимо.

При обновлении через программу все пошло не по плану(файл Windivert.dll или похожее не хотел перезаписываться, вроде писало нету доступа). После того как вышел, все сломалось. В итоге пришлось удалять и ставить новую. В окне подбора параметров запуска нельзя выделить текст нажал далее и все профукал(медленный режим) Логов не нашел.

  1. Начиная с версии 1.1.5 Windrivert.dll будет автоматически пропускаться при обновлении.
    Отмена обновления все сломала из-за отсутствия механизма отката версии. Я добавлю её позднее.

  2. Функция подбора параметров находится в бета - статусе. Я все ещё работаю над её улучшением. Постараюсь как можно скорее исправить проблему с копированием текста.

  3. Программа пока что не создает логи

А скоро ли ждать поддержку 7-ки?

Я постараюсь сделать это как можно скорее. Я сообщу, когда появится поддержка 7ки

Проверил все комбинации параметров, YouTube не работает.

С 9 октября у моего провайдера был новый приступ блокировок. С тех пор часть видосов подвисает перед запуском, а часть вообще не воспроизводится. Я не верю, что они блокируют ip. Может, я чего не так с параметрами делаю?

Есть кто-то, у кого YouTube не работает нормально ни на одном пресете?

А ты пробовал zapret?
Так же в UI есть подбор параметров запуска для goodbyeDPI. Можешь его попробовать запустить

Да, пробовал zapret, такая же история.

Я выше спрашивал как раз, где найти утилиту подбора параметров.
Так вот запустил её с остановкой windivert. Дохрена долго работала, в конце сказала, ни один пресет не работает. Проверял домены GGC.

Самый главный-то мой вопрос. Я что-то не так делаю, или это типичная история?

Попробуй запустить оригинальный блокчек. Может, мой порт работает не совсем корректно
GoodCheck - блокчек-скрипт для GoodbyeDPI, Zapret, ByeDPI