KManager / scripts /run_kiro_with_proxy.ps1
StarrySkyWorld's picture
Initial commit
494c89b
# Kiro Traffic Logger - DEV TOOL для анализа трафика
#
# Это инструмент для РАЗРАБОТЧИКОВ для анализа трафика Kiro.
# Для обычного использования применяйте патч через расширение!
#
# Использование:
# .\run_kiro_with_proxy.ps1
#
# Требования:
# - mitmproxy установлен (pip install mitmproxy)
# - Сертификат mitmproxy установлен (.\install_mitmproxy_cert.ps1)
#
# Логи сохраняются в: ~/.kiro-manager-wb/proxy_logs/
$ErrorActionPreference = "Stop"
$PROXY_PORT = 8080
$PROXY_SCRIPT = "$PSScriptRoot\..\services\kiro_proxy.py"
$KIRO_PATH = "$env:LOCALAPPDATA\Programs\Kiro\Kiro.exe"
# Проверяем что Kiro существует
if (-not (Test-Path $KIRO_PATH)) {
Write-Host "[!] Kiro not found at: $KIRO_PATH" -ForegroundColor Red
Write-Host " Trying alternative paths..."
$alternatives = @(
"$env:LOCALAPPDATA\Programs\kiro\Kiro.exe",
"$env:PROGRAMFILES\Kiro\Kiro.exe",
"C:\Users\$env:USERNAME\AppData\Local\Programs\Kiro\Kiro.exe"
)
foreach ($alt in $alternatives) {
if (Test-Path $alt) {
$KIRO_PATH = $alt
Write-Host "[OK] Found Kiro at: $KIRO_PATH" -ForegroundColor Green
break
}
}
if (-not (Test-Path $KIRO_PATH)) {
Write-Host "[!] Kiro not found! Please install Kiro or update path." -ForegroundColor Red
exit 1
}
}
Write-Host "=== Kiro Proxy Launcher ===" -ForegroundColor Cyan
Write-Host ""
Write-Host ""
Write-Host "========================================" -ForegroundColor Yellow
Write-Host " KIRO TRAFFIC LOGGER (DEV TOOL)" -ForegroundColor Yellow
Write-Host "========================================" -ForegroundColor Yellow
Write-Host ""
Write-Host "This is a DEVELOPMENT tool for analyzing Kiro traffic." -ForegroundColor Cyan
Write-Host "For normal use, apply the patch via the extension!" -ForegroundColor Cyan
Write-Host ""
# Проверяем что mitmproxy установлен
try {
$null = Get-Command mitmdump -ErrorAction Stop
Write-Host "[OK] mitmproxy found" -ForegroundColor Green
} catch {
Write-Host "[!] mitmproxy not found. Install with: pip install mitmproxy" -ForegroundColor Red
exit 1
}
# Проверяем сертификат mitmproxy
$certPath = "$env:USERPROFILE\.mitmproxy\mitmproxy-ca-cert.cer"
if (-not (Test-Path $certPath)) {
Write-Host "[!] mitmproxy certificate not found." -ForegroundColor Yellow
Write-Host " Run 'mitmdump' once to generate certificates, then install:" -ForegroundColor Yellow
Write-Host " certutil -addstore -user Root $certPath" -ForegroundColor Yellow
Write-Host ""
Write-Host " Or run mitmproxy and visit http://mitm.it to download cert" -ForegroundColor Yellow
Write-Host ""
}
Write-Host ""
Write-Host "[1] Starting mitmproxy on port $PROXY_PORT..." -ForegroundColor Cyan
# Запускаем mitmproxy в новом окне
$proxyProcess = Start-Process -FilePath "mitmdump" `
-ArgumentList "-s", $PROXY_SCRIPT, "-p", $PROXY_PORT, "--set", "ssl_insecure=true" `
-PassThru -WindowStyle Normal
Write-Host " PID: $($proxyProcess.Id)" -ForegroundColor Gray
Start-Sleep -Seconds 2
# Проверяем что прокси запустился
try {
$null = Test-NetConnection -ComputerName localhost -Port $PROXY_PORT -WarningAction SilentlyContinue
Write-Host "[OK] Proxy is running" -ForegroundColor Green
} catch {
Write-Host "[!] Proxy failed to start" -ForegroundColor Red
}
Write-Host ""
Write-Host "[2] Starting Kiro with proxy..." -ForegroundColor Cyan
# Устанавливаем переменные окружения для прокси
$env:HTTP_PROXY = "http://127.0.0.1:$PROXY_PORT"
$env:HTTPS_PROXY = "http://127.0.0.1:$PROXY_PORT"
$env:NODE_TLS_REJECT_UNAUTHORIZED = "0" # Отключаем проверку SSL для Node.js
Write-Host " HTTP_PROXY=$env:HTTP_PROXY" -ForegroundColor Gray
Write-Host " HTTPS_PROXY=$env:HTTPS_PROXY" -ForegroundColor Gray
# Запускаем Kiro с явным указанием прокси (Electron игнорирует env переменные!)
$kiroArgs = @(
"--proxy-server=http://127.0.0.1:$PROXY_PORT",
"--ignore-certificate-errors"
)
Write-Host " Kiro args: $($kiroArgs -join ' ')" -ForegroundColor Gray
$kiroProcess = Start-Process -FilePath $KIRO_PATH -ArgumentList $kiroArgs -PassThru
Write-Host " Kiro PID: $($kiroProcess.Id)" -ForegroundColor Gray
Write-Host ""
Write-Host "[OK] Kiro started with proxy!" -ForegroundColor Green
Write-Host ""
Write-Host "Traffic logs: ~/.kiro-manager-wb/proxy_logs/" -ForegroundColor Yellow
Write-Host ""
Write-Host "Press Ctrl+C to stop proxy when done..." -ForegroundColor Gray
# Ждём завершения Kiro
try {
$kiroProcess.WaitForExit()
} finally {
Write-Host ""
Write-Host "[*] Stopping proxy..." -ForegroundColor Cyan
Stop-Process -Id $proxyProcess.Id -Force -ErrorAction SilentlyContinue
Write-Host "[OK] Done" -ForegroundColor Green
}