Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 241781|Отговор: 55

[Конзолна програма] .NET/C# използва FiddlerCore4 за прихващане и промяна на HTTP заявки

  [Копирай линк]
Публикувано в 20.12.2020 г. 13:39:53 ч. | | | |
Най-новата FiddlerCoreAPIFreeSetup, улавяне на новия dll файл, използване след инсталация, http персонализираната библиотека за обработка на прихващане на Fiddler, FiddlerCore в момента е достъпна като .NET клас библиотека, която може да се използва от всяко .NET приложение. FiddlerCore е предназначен за специализирани приложения, които работят без потребителски интерфейс, като автоматизация на тестове, или потребителски интерфейси специално за потребителски интерфейси, в които Fiddler Addon не се вписва, като визуализация на трафика на WPF.

FiddlerCore вече премина към платен, но преди таксата бяха пуснати няколко нови версии на .NET стандарта в бета версия, които бяха налични и нямаха 30-дневен лимит. Пълният SDK и демо версията са налични. Адресът за изтегляне е следният:

FiddlerCoreAPIFree_4_6_20191_7809.zip изтегляне
Входът към хиперлинк е видим.

Създайте нов .NET 4.6.2 конзолен проект: HttpCapture, който се позовава на библиотеката FiddlerCore45.dll класове, която може да бъде получена чрез изтеглянето ѝ както по-горе.

Събитието Fiddler е следното:

//
        Резюме:
        Това събитие се активира, когато сесията приключи
        публично статично събитие SessionStateHandler AfterSessionComplete;
        //
        Резюме:
        Това събитие се активира, когато Fiddler засне WebSocket съобщение
        публично статично събитие EventHandler<WebSocketMessageEventArgs> OnWebSocketMessage;
        [CodeDescription("Това събитие задейства HTTPS сертификат, който е валидиран.")]
        публично статично събитие EventHandler<ValidateServerCertificateEventArgs> OnValidateServerCertificate;
        //
        Резюме:
        Това събитие се активира, когато са налични Response Headers
        публично статично събитие SessionStateHandler ResponseHeadersAvailable;
        //
        Резюме:
        Това събитие се активира, когато са налични заглавия на заявки
        публично статично събитие SessionStateHandler RequestHeadersAvailable;
        //
        Резюме:
        Това събитие се активира, когато Fiddler получи отговор от сървъра
        публично статично събитие SessionStateHandler BeforeResponse;
        //
        Резюме:
        Това събитие се активира, когато Fiddler получи клиентска заявка
        публично статично събитие SessionStateHandler BeforeRequest;
        //
        Резюме:
        Това събитие се задейства всеки път, когато FiddlerCore чете данни от мрежата за клиента
        Молба. Имайте предвид, че тези данни не са форматирани по никакъв начин и трябва да бъдат анализирани
        от получателя.
        публично статично събитие<RawReadEventArgs> EventHandler OnReadRequestBuffer;
        //
        Резюме:
        Това събитие се активира всеки път, когато FiddlerCore прочете данни от мрежата за сървъра
        отговор. Имайте предвид, че тези данни не са форматирани по никакъв начин и трябва да бъдат анализирани
        от получателя.
        публично статично събитие EventHandler<RawReadEventArgs> OnReadResponseBuffer;
        [CodeDescription("Това събитие се активира, когато потребителят инструктира Fiddler да изчисти кеша или бисквитките.")]
        публично статично събитие<CacheClearEventArgs> EventHandler OnClearCache;
        //
        Резюме:
        Синхронизирайте това събитие, за да бъде уведомено, когато FiddlerCore се прикачи като системен прокси.")]
        [CodeDescription("Синхронизирайте това събитие, за да бъдете уведомени, когато FiddlerCore се прикачи като системен прокси.")]
        [Остарял("Моля, използвайте Telerik.NetworkConnections.NetworkConnectionsManager.")]
        публично статично събитие SimpleEventHandler FiddlerAttach;
        //
        Резюме:
        Синхронизирайте това събитие, за да бъдете уведомени, когато FiddlerCore се отдели като системен прокси.
        [CodeDescription("Синхронизирайте това събитие, за да бъдете уведомени, когато FiddlerCore се отдели като системен прокси.")]
        [Остарял("Моля, използвайте Telerik.NetworkConnections.NetworkConnectionsManager.")]
        публично статично събитие SimpleEventHandler FiddlerDetach;
        [CodeDescription("Това събитие се задейства, когато се появи потребителско известие. Виж КОНФИГУРАЦИЯ. PropertyMode.")]
        публично статично събитие EventHandler<NotificationEventArgs> OnNotification;
        //
        Резюме:
        Това събитие се активира, когато Fiddler генерира отговор на грешка
        публично статично събитие SessionStateHandler BeforeReturningError;
        //
        Резюме:
        Уволнява се всеки път, когато Fiddler успешно приема TCP/IP връзка
        публично статично събитие<ConnectionEventArgs> EventHandler AfterSocketAccept;
        //
        Резюме:
        Задейства се всеки път, когато Fiddler успешно установи TCP/IP връзка
        публично статично събитие<ConnectionEventArgs> EventHandler AfterSocketConnect;

Често използвани събития са BeforeRequest, PreResponse и AfterSessionComplete.

Ако искате да блокирате HTTPS заявки, трябва да инсталирате сертификат, кодът е следният:

Приложен е кодът за определяне дали сертификатът съществува:

Резултатите, които постигнахме, бяха следните:

1. Прихващанеwww.itsvse.comЗаявка на сайта, която директно връща част от JSON съдържание.
2. Блокирайте сайта down.itsvse.com и след отговора заменете низа "Качено от" с "Качено от"

Кодът е следният:

След това ръчно зададете IE агента 127.0.0.1:9099, също с настройките на кода, както следва:

Настройте системния IE прокси с .NET/C#
https://www.itsvse.com/thread-9495-1-1.html

Визуализациите са както следва:



Забележка: Когато модифицирате съдържанието след отговора, трябва да настроите сесия в събитието BeforeRequestsession.bBufferResponse = true;, иначе не можеш да променяш съдържанието на отговора!

Изтегляне на изходния код:

Туристи, ако искате да видите скритото съдържание на този пост, моляОтговор


(Край)





Предишен:ASP.NET MVC онлайн декомпилация на текущия изходен код на уебсайта
Следващ:Форматът на заявката не се разпознава, защото URL-то неочаквано завършва с "/itsvse".
 Хазяин| Публикувано в 30.06.2023 г. 20:07:39 ч. |
Относно сертификата:

Публикувано в 6.03.2022 г. 10:33:30 ч. |
Много добре                       
 Хазяин| Публикувано в 28.06.2023 г. 17:11:09 ч. |
Решен е проблемът, че Fiddler не можеше да обхожда локални заявки за локални локални хостове, 127.0.0.1 мрежови заявки
https://www.itsvse.com/thread-9137-1-1.html
Публикувано в 23.12.2020 г. 20:51:15 ч. |
При промяна на съдържанието след отговора
Публикувано в 25.02.2021 г. 19:39:28 ч. |

При промяна на съдържанието след отговора
Публикувано в 1.03.2021 г. 13:03:56 ч. |
namespace на FiddlerCoreStartupSettingsBuilder
Публикувано в 13.03.2021 г. 15:15:48 ч. |
Научете изходния код
Публикувано в 31.03.2021 г. 17:15:20 ч. |
Изучи го и разгледай
Публикувано в 7.04.2021 г. 18:09:31 ч. |
След цял ден търсене най-накрая намерих такъв, който отговаря на нуждите ми
Публикувано в 5.05.2021 г. 16:28:11 ч. |
Преместването на ie proxy 127.0.0.1:9099 също е възможно
Публикувано в 4.06.2021 г. 11:27:23 ч. |
333333333333333333
Публикувано в 21.06.2021 г. 0:33:29 ч. |
session.bBufferResponse = true; Необходимо ли е да се настройва?
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com