• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

PE файл и работа с сетью

shark10

New member
08.04.2020
2
0
BIT
0
Добрый день. Заранее извиняюсь за возможно некорректную формулировку темы и ошибки/неточности в описании моего вопроса :)
В данный момент изучаю структуру формата PE и у меня появился вопрос: можно ли проверить, имеет ли код исполняемого файла функционал для работы с сетью?
Насколько я понимаю, стоит анализировать Import Directory Table и там искать импорты динамических библиотек, которые предоставляют api для работы с сетью. Тогда если моё предположение верно, то где можно найти список dll, отвечающих за работу с сетью и которые должны быть 100% импортированы?

Заранее спасибо за помощь.
 

Hardreversengineer

Green Team
20.08.2019
48
26
BIT
7
wininet, winsock32 ... и не факт что именно они. Вам стоит посмотреть работу с сетью с точки зрения разработки. Их большое количество.
Поставьте виртуалку и WireShark. Посмотрите, какие пакеты отправляет программа.
 

shark10

New member
08.04.2020
2
0
BIT
0
wininet, winsock32 ... и не факт что именно они. Вам стоит посмотреть работу с сетью с точки зрения разработки. Их большое количество.
Поставьте виртуалку и WireShark. Посмотрите, какие пакеты отправляет программа.

Спасибо большое за ответ. Сейчас попробую сделать то, что вы подсказали.

Я так понимаю, что каждый разработчик может использовать ту библиотеку, которая ему удобнее? Т.е. нет такого, что все используют wininet.dll? В таком случае получается, что невозможно автоматизировать процесс проверки того факта, что исполняемый файл имеет функционал для работы с сетью?
 

Hardreversengineer

Green Team
20.08.2019
48
26
BIT
7
Спасибо большое за ответ. Сейчас попробую сделать то, что вы подсказали.

Я так понимаю, что каждый разработчик может использовать ту библиотеку, которая ему удобнее? Т.е. нет такого, что все используют wininet.dll? В таком случае получается, что невозможно автоматизировать процесс проверки того факта, что исполняемый файл имеет функционал для работы с сетью?
>нет такого, что все используют wininet.dll
Приведённый мной в пример WireShark использует WinPcap. Сколько ещё таких, мне доподлинно неизвестно, есть даже ощущение, что при желании, такой функционал можно самому написать и встроить в программу. Тем не менее, принципы работы примерно одинаковые.

Знаете, при желании можно обойтись даже командной строкой. К примеру есть команда netstat - с помощью неё можно узнать, является ли ваша программа сервером или клиентом - и довольно просто, если сервер, то он "слушает", если клиент - то будет стучаться в определённый ip-адрес. Конечно, не факт, что ваша программа будет это делать сразу, а не в определённый отсроченный момент.


Я вам могу посоветовать серию статей ASM для х86. (5.0.) Cтек TCP/IP. WinSock , здесь ну очень подробно рассмотрена работа с сетью, даже про вышеописанный WinPcap. Попробуйте рассмотренные примеры скомпилировать, а потом посмотреть через дебагер или дизассемблер - возможно, вас это наведёт на какую нибудь мысль. Значительным плюсом является то, что это ассемблер и у вас будет перед глазами шестнадцатеричное представление команд того самого ассемблерного хорошо-комментированного кода, то есть вероятность ситуации, когда компилятор (как в языках высокого уровня) генерирует что-то непонятное на несколько мегабайт - у вас не будет.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!