-
Автор темы
- #1
Хочу крякнуть софт просто подменив ответ от сервера, но этот post запрос проходит мимо моего приложения
Код:
using System;
using System.Text;
using System.Threading.Tasks;
using Titanium.Web.Proxy;
using Titanium.Web.Proxy.EventArguments;
using Titanium.Web.Proxy.Models;
namespace ProxyExample
{
class Program
{
// TaskCompletionSource для ожидания запроса
private static TaskCompletionSource<bool> requestReceived = new TaskCompletionSource<bool>();
static async Task Main(string[] args)
{
var proxyServer = new ProxyServer();
var explicitEndPoint = new ExplicitProxyEndPoint(System.Net.IPAddress.Any, 5000, true);
proxyServer.AddEndPoint(explicitEndPoint);
proxyServer.BeforeRequest += OnRequest;
proxyServer.BeforeResponse += OnResponse;
proxyServer.Start();
proxyServer.SetAsSystemHttpProxy(explicitEndPoint);
Console.WriteLine("Proxy server is running. Waiting for specific POST request...");
// Ожидаем получения нужного запроса
await requestReceived.Task;
Console.WriteLine("Specific request received. Press any key to stop...");
Console.ReadLine();
proxyServer.Stop();
}
private static async Task OnRequest(object sender, SessionEventArgs e)
{
// Логируем POST-запросы
if (e.HttpClient.Request.Method == "POST")
{
Console.WriteLine($"Request URL: {e.HttpClient.Request.Url}");
}
}
private static async Task OnResponse(object sender, SessionEventArgs e)
{
// Проверяем, соответствует ли запрос целевому URL
if (e.HttpClient.Request.Method == "POST" && e.HttpClient.Request.Url == "http://89.110.111.53:5000/auth")
{
// Подменяем ответ сервера на собственный
string customResponse = "{\n \"code\" : \"1\",\n \"status\" : \"success\"\n}";
e.Ok(Encoding.UTF8.GetBytes(customResponse));
Console.WriteLine("Response has been replaced.");
// Сигнализируем, что нужный запрос получен
requestReceived.TrySetResult(true);
}
}
}
}