Найти функцию запуска консоли на openserver

Тема в разделе "WASM.BEGINNERS", создана пользователем b01110011, 18 апр 2019.

Метки:
Статус темы:
Закрыта.
  1. b01110011

    b01110011 New Member

    Публикаций:
    0
    Регистрация:
    18 апр 2019
    Сообщения:
    16
    Есть такая программа для локальной постановки веб сервера https://ospanel.io/download/
    Мне нужно получить доступ к консоли, но не знаю как, уроков 20 прочёл из серии "Введение в реверсинг с нуля, используя IDA PRO.", но эти знания не помогают в реверсинге данной программы ...
    не могу найти строку "Консоль", наверное потому что там опционально 3 языка ...
    Что делать? или что можно почитать? в инете очень мало информации на русском языке про дизассемблирование
     
  2. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    2.000
    Никто кроме совсем нубов не локализует программу в самом коде, поэтому не надо искать "консоль" по-русски. "Получить доступ к консоли" очень мутная формулировка, непонятно чего вообще надо. Читать мануалы по самой программе наверное было бы немного полезней.
     
  3. b01110011

    b01110011 New Member

    Публикаций:
    0
    Регистрация:
    18 апр 2019
    Сообщения:
    16
    [​IMG]
    --- Сообщение объединено, 18 апр 2019 ---
    [​IMG]
    --- Сообщение объединено, 18 апр 2019 ---
    вот к такой консоли нужно получить доступ и вводить команды програмным путём из своей программы написанной на c#
     
  4. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    2.000
    Аа, значит "получить доступ к консоли" это передавать команды в это окно. Колхозное решение - https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-sendinput , просто имитировать набор с клавиатуры в это окно. Если эта панель не поддерживает плагинов/скриптов, будет трудно как-то по-другому решить. Я сам без этой "лучшей панели управления сервером windows" просто FreeSsh на сервак поставил и написал для него альтернативную оболочку (по умолчанию cmd.exe). Безопасно и эффективно. К ссх коннектится простенький пхп-скрипт из магазина, можно заходить самому через ссх клиент. Если не критично использовать именно эту прогу, выкинь ее.
     
  5. b01110011

    b01110011 New Member

    Публикаций:
    0
    Регистрация:
    18 апр 2019
    Сообщения:
    16
    да у меня цель написать свою прогу, под эту прогу, мне нужно из своей программы открывать консоль и вводить команды ...
    это для того чтобы написать GUI обёртку под laravel artisan
    Я так понял что мне нужно найти адрес функции которая отвечает за запуск консоли, потом вроде бы найти дескриптор этого процесса и через него уже вводить данные
    Но я раньше ни разу такого не делал и даже не знаю как найти эту функцию и с чего начать!
     
  6. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    2.000
    Это не окно консоли, это обычное окно, ввод-вывод из которого передается через std_input_handle/std_ouput_handle процессу cmd.exe на удаленном компе. То есть логичное решение искать как программа забирает ввод из этого окна (GetWindowTextW/дофига чего еще) и придумывать как понадежней ей ввод подсовывать. Также полезно посмотреть как само это окно открывается, если в зависимости от значения на выходе TrackPopupMenu куда-нибудь шлется WM_USER+x, то отправкой сообщения его лучше и открывать, а не имитацией тычков мыши. Инжект обязательно и колхозить по-черному. Но сама идея это делать безумна.
     
  7. b01110011

    b01110011 New Member

    Публикаций:
    0
    Регистрация:
    18 апр 2019
    Сообщения:
    16
    Мне бы подробную пошаговую инструкцию, а то в общих словах мне не поможет! Хотя бы по очереди, найти функцию которая отвечает за открытие этой консоли!
    Я не знаю что нужно делать чтобы её найти!!
    [​IMG]
    Тут 25 тыщ. функций и 1 из них мне нужна!
     
  8. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    2.000
    Так я даже функции назвал куда бряк поставить, чтоб найти что нужно. 1.3 гига, смилуйся блин :crazy:
     
  9. b01110011

    b01110011 New Member

    Публикаций:
    0
    Регистрация:
    18 апр 2019
    Сообщения:
    16
    екзешник весит всего 8 мегабайт, остальное это разные php mysql и прочие программы входящие в эту ...
    [​IMG]
    [​IMG]
    --- Сообщение объединено, 18 апр 2019 ---
    Хорошо, попробую!
    [​IMG]
    --- Сообщение объединено, 18 апр 2019 ---
    поставил брейк поинт на GetWindowTextW, сработала раз 20, но не тогда когда я нажал на "Консоль", куда ещё можно бряки поставить??
     
  10. b01110011

    b01110011 New Member

    Публикаций:
    0
    Регистрация:
    18 апр 2019
    Сообщения:
    16
    TrackPopupMenu, по этому брейкпоинту нашёл открытие контекстного меню, щас чтонибудь там потыкаю, но можно чутка подсказать что дальше искать?!

    [​IMG]
    --- Сообщение объединено, 18 апр 2019 ---
    Вот от сюда запустилась консоль, cs:off_7fff86410ab8 это и есть то что мне нужно?

    [​IMG]
    --- Сообщение объединено, 18 апр 2019 ---
    или оно раньше запустилось? а на этом отладчик остановился
    И как мне из другой программы запустить выполнение этих инструкций
     
  11. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    2.000
  12. b01110011

    b01110011 New Member

    Публикаций:
    0
    Регистрация:
    18 апр 2019
    Сообщения:
    16
    Я когда кликнул на "Консоль", отладчик остановился тут

    [​IMG]
    --- Сообщение объединено, 18 апр 2019 ---
    Я ещё не понял что означает L на конце значения
    TPM_RETURNCMD
    0x0100L
     
  13. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    2.000
    L в цэ и яве означает LONG, просто 32битное число.
     
  14. b01110011

    b01110011 New Member

    Публикаций:
    0
    Регистрация:
    18 апр 2019
    Сообщения:
    16
    Была такая мысль, но не особо понял зачем это дописывать, там же тип определён!
    Ладно это не важно!
    А дальше мне что делать?! Как понять где начало запуска Консоли
     
  15. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    2.000
    Там может не быть выраженного места, где можно сказать, что "консоль" запускается. Окно может быть создано заранее и скрыто. Ставишь бряк на TrackPopupMenu, смотришь флаги, в зависимости от них ищешь как обрабатывается выбранный пункт.
     
  16. b01110011

    b01110011 New Member

    Публикаций:
    0
    Регистрация:
    18 апр 2019
    Сообщения:
    16
    Я когда запускаю отладчик, возникают вот такие вот исключения, что это значит?

    [​IMG]
    [​IMG]
    --- Сообщение объединено, 19 апр 2019 ---
    в uFlags значение 0x02

    [​IMG]
    --- Сообщение объединено, 19 апр 2019 ---
    Я не особо понял как это работает, я когда открываю контекстное меню и кликаю на консоль и когда кликаю вне контекстного меню чтобы его закрыть, сценарий кода не меняется!!!
    Я так понял я просматриваю код который не относится к открытию консоли, а лишь только для взаимодействия с контекстным меню!
    Теперь у меня нет мыслей в какую сторону дальше двигаться!!!
     
  17. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    2.000
    [​IMG]
    Ну блин я 2 раза или 3 сказал для чего это нужно.
     
  18. b01110011

    b01110011 New Member

    Публикаций:
    0
    Регистрация:
    18 апр 2019
    Сообщения:
    16
    У меня нулевой опыт в дизассемблировании!
    Я не всё понимаю из сказанного!
    --- Сообщение объединено, 19 апр 2019 ---
    А может привязаться к процессу и как то посылать туда команды?

    [​IMG]
     
  19. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    2.000
    Пока сам не разберешься и не сделаешь, не догадаешься почему эту проблему таким способом никто бы решать не стал)
    --- Сообщение объединено, 19 апр 2019 ---
    Вообще-то я именно это изначально и предложил. Либо просто не лезть туда, существует куча способов исполнять команды в cmd.exe на удаленном кампуцере, делать надстройку на чужую программу, где это не предусмотрено - самый нелепый способ.
     
  20. b01110011

    b01110011 New Member

    Публикаций:
    0
    Регистрация:
    18 апр 2019
    Сообщения:
    16
    Дак я исполняю это на локальном компьютере! openserver это локальный хостинг для разработки сайтов!

    Да просто у меня была идея через свою прогу ещё и запускать эту консоль ... я просто не шибко лазил по файлам openserver и думал эта консоль внутри главного exe, а она отдельной программой встроена, что намного проще
    [​IMG]
    --- Сообщение объединено, 19 апр 2019 ---
    Что мне нужно сделать пошагово чтобы понять как отправлять команды в консоль?!
     
  21. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    2.000
    <немая сцена>
    --- Сообщение объединено, 19 апр 2019 ---
    То есть эта штука, в статусбаре которой написано "cmd.exe*[*64]:<pid процесса>", что намекает на то, что она запускает локальный cmd.exe и пробрасывает ввод-вывод в него? В нее надо отправлять команды?
     
    Последнее редактирование: 19 апр 2019
Статус темы:
Закрыта.