Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 241781|Відповідь: 55

[Консольна програма] .NET/C# використовує FiddlerCore4 для перехоплення та зміни HTTP-запитів

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

FiddlerCore тепер перейшов на платний формат, але до сплати було випущено кілька нових версій стандарту .NET у бета-версії, які були доступні і не мали 30-денного обмеження. Повний SDK і демо доступні. Адреса для завантаження наступна:

FiddlerCoreAPIFree_4_6_20191_7809.zip завантажити
Вхід за гіперпосиланням видно.

Створіть новий консольний проєкт .NET 4.6.2: HttpCapture, який посилається на бібліотеку класів FiddlerCore45.dll, яку можна отримати, завантаживши її як зазначено вище.

Захід Fiddler виглядає так:

//
        Зведення:
        Ця подія активується після завершення сесії
        публічна статична подія SessionStateHandler AfterSessionComplete;
        //
        Зведення:
        Ця подія спрацьовує, коли Фіддлер захоплює повідомлення WebSocket
        публічна статична подія<WebSocketMessageEventArgs> EventHandler OnWebSocketMessage;
        [CodeDescription("Ця подія запускає HTTPS-сертифікат підтверджений.")]
        публічна статична подія EventHandler<ValidateServerCertificateEventArgs> OnValidateServerCertificate;
        //
        Зведення:
        Ця подія спрацьовує, коли доступні заголовки відповіді
        публічна статична подія SessionStateHandler ResponseHeadersAvailable;
        //
        Зведення:
        Ця подія активується, коли доступні заголовки запитів
        публічна статична подія SessionStateHandler RequestHeadersAvailable;
        //
        Зведення:
        Ця подія спрацьовує, коли Fiddler отримує відповідь сервера
        публічна статична подія SessionStateHandler BeforeResponse;
        //
        Зведення:
        Ця подія спрацьовує, коли Fiddler отримує запит клієнта
        публічна статична подія SessionStateHandler BeforeRequest;
        //
        Зведення:
        Ця подія спрацьовує щоразу, коли FiddlerCore зчитує дані з мережі для клієнта
        Прохання. Зверніть увагу, що ці дані не відформатовані жодним чином і мають бути розбиті
        отримувачем.
        публічна статична подія<RawReadEventArgs> EventHandler OnReadRequestBuffer;
        //
        Зведення:
        Ця подія спрацьовує щоразу, коли FiddlerCore зчитує дані з мережі для сервера
        Відповідь. Зверніть увагу, що ці дані не відформатовані жодним чином і мають бути розбиті
        отримувачем.
        публічна статична подія<RawReadEventArgs> EventHandler OnReadResponseBuffer;
        [CodeDescription("Ця подія запускається, коли користувач наказує Fiddler очистити кеш або cookies.")]
        публічна статична подія<CacheClearEventArgs> EventHandler OnClearCache;
        //
        Зведення:
        Синхронізуйте цю подію, щоб отримати сповіщення, коли FiddlerCore приєднається як системний проксі.")]
        [CodeDescription("Синхронізуйте цю подію, щоб отримати сповіщення, коли FiddlerCore приєднається як системний проксі.")]
        [Застаріло("Будь ласка, використовуйте Telerik.NetworkConnections.NetworkConnectionsManager.")]
        публічна статична подія SimpleEventHandler FiddlerAttach;
        //
        Зведення:
        Синхронізуйте цю подію, щоб отримати сповіщення, коли FiddlerCore відокремиться як системний проксі.
        [CodeDescription("Синхронізувати цю подію, щоб отримати сповіщення, коли FiddlerCore від'єднається як системний проксі.")]
        [Застаріло("Будь ласка, використовуйте Telerik.NetworkConnections.NetworkConnectionsManager.")]
        публічна статична подія SimpleEventHandler FiddlerDetach;
        [CodeDescription("Ця подія запускається, коли з'являється сповіщення користувача. Див. CONFIG. Властивість QuietMode.")]
        публічна статична подія EventHandler<NotificationEventArgs> OnNotification;
        //
        Зведення:
        Ця подія спрацьовує, коли Скрипаль генерує відповідь на помилку
        публічна статична подія SessionStateHandler BeforeReturningError;
        //
        Зведення:
        Вибивається щоразу, коли Fiddler успішно приймає TCP/IP-з'єднання
        публічна статична подія<ConnectionEventArgs> EventHandler AfterSocketAccept;
        //
        Зведення:
        Виводиться щоразу, коли Фіддлер успішно встановлює TCP/IP-з'єднання
        публічна статична подія<ConnectionEventArgs> EventHandler AfterSocketConnect;

Поширені події — BeforeRequest, BeforeResponse та 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 |
Про сертифікат:

Опубліковано 06.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 |

При зміні змісту після відповіді
Опубліковано 01.03.2021 13:03:56 |
Namespace of FiddlerCoreStartupSettingsBuilder
Опубліковано 13.03.2021 15:15:48 |
Вивчайте вихідний код
Опубліковано 31.03.2021 17:15:20 |
Вивчайте і подивіться
Опубліковано 07.04.2021 18:09:31 |
Після цілого дня пошуків я нарешті знайшов той, що відповідав моїм потребам
Опубліковано 05.05.2021 16:28:11 |
Переміщення ie проксі 127.0.0.1:9099 також можливо
Опубліковано 04.06.2021 11:27:23 |
333333333333333333
Опубліковано 21.06.2021 00:33:29 |
session.bBufferResponse = true; Чи обов'язково це встановлювати?
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com