• XSS.stack #1 – первый литературный журнал от юзеров форума

Удаленная отладка

br0

старый школьник
Premium
Регистрация
17.07.2021
Сообщения
123
Реакции
32
Гарант сделки
1
Как удаленно отладить софт? помимо IDA remote debugger есть варианты ? На ботах отладка софта сущий ад, практически в слепую или в лучшем случае методом научного самотыка, особенно если отлаживать приходится код который работает в доверенном процессе( в explorer например) и если его придушить идой той же, то у юзера на компе все застынет.
Какие вообще есть варианты ? Ошибка происходит именно на реальных тачках, на собственной виртуалке или дедике - все в порядке. Кто как справляется с этой болью ? Может купить 10 тачек и на них тестировать ?? но думаю это не панацея потому что на реальных машинах у ботов специфический софт может стоять, очень все индивидуально.
ПАМАГИТЕ, очень заебался мучиться удаленно, есть ли смысл углубиться в крашдампы ? оттуда полезное что-то можно вытащить будет если шеллкод крошит критический процесс ?
 
Пожалуйста, обратите внимание, что пользователь заблокирован
сделай веб-гейт отладочный и на него шли отладочные мессаги. или подключи nlog какой-нибудь. был вообще софт заточенный на удаленную отправку логов опенсорсный - попозже кину линк, посмотреть надо
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Пожалуйста, обратите внимание, что пользователь заблокирован
ПАМАГИТЕ, очень заебался мучиться удаленно, есть ли смысл углубиться в крашдампы ?
Ты пытаешься лечить симптом, а не болезнь. Раз ты страдаешь, то скорее всего речь идет о Сишечке или Плюсах. Подучи практики безопасного программирования, типа defensive programming; паттерны, упрощающие управления памятью, типа RAII; правильную архитектуру приложения: логируй большое количество событий, дели функционал на модули с минимальной связностью между ними, отлавливай исключения через SEH или VEH, проверяй все результаты работы любых API. Если это не помогает, попробуй статические анализаторы, которые будут тыкать тебя в конкретный код, который может вызывать проблемы. Если и это не помогает, то подумай о том, чтобы перейти на более простой и безопасный язык, типа Шарпов, или (прости хоспаде) Петухон.
 
Единственное что тебе поможет это - очень плотное покрытие логами, это я тебе по личному опыту.
Отладчик в данном кейсе это путь в никуда.
Про вех совет неплохой в связке с плотным покрытием логами, но знай что аверы этого не любят.
В рамках кейса кривожоп тебе в общем верно расписал, добавлю - осваивай TDD(test driven development).
 
Ты пытаешься лечить симптом, а не болезнь. Раз ты страдаешь, то скорее всего речь идет о Сишечке или Плюсах. Подучи практики безопасного программирования, типа defensive programming; паттерны, упрощающие управления памятью, типа RAII; правильную архитектуру приложения: логируй большое количество событий, дели функционал на модули с минимальной связностью между ними, отлавливай исключения через SEH или VEH, проверяй все результаты работы любых API. Если это не помогает, попробуй статические анализаторы, которые будут тыкать тебя в конкретный код, который может вызывать проблемы. Если и это не помогает, то подумай о том, чтобы перейти на более простой и безопасный язык, типа Шарпов, или (прости хоспаде) Петухон.
Речь про ассемблер, только на нем пишу из религиозных убеждений. TDD полезная штука, думаю можно его и в контексте ассемблера пристроить на питухоне том же стресстесты погонять на разных входным параметрах
 
Последнее редактирование:
Единственное что тебе поможет это - очень плотное покрытие логами, это я тебе по личному опыту.
Видимо так и придется делать, какую-то дебаг версию пилить с логированием по шагам буквально чтоб было..
А про краш дампы стандартные микрософта никто не сказал ничего, они могут быть реально полезны ? там смещение вроде относительно модуля можно выцепить где рухнуло, хотя там ведь ASLR наверное и толку смещение это не даст, можно ли попробовать какими-то стандартными средствами мелкомягких типа крашдампов выцепить ошибку
?
Спасибо заранее всем, полезные советы, по крайней мере вселяют уверенности ) а то руки опускаются пиздец, ловить иголку в стоге сена без магнита
ps. речь вообще идет про шеллкод исполняемый в контексте explorer.exe, для понимания ситуации
 
Краш дамп разбирать это на много дороже чем прочитать логи это раз, и два умножь этот оверхед на тот милион багов которые у тебя вылезут.
Логи и ТДД, других вариантов для тебя нет, просто нет, смирись.
Для начала автоматом раскидай лог типа зашел в процедуру, вышел из процедуры, где то словишь что зашел и не вышел, накидвай туда логи подробностей. Если у тебя не обложено все логами то это самый быстрый для тебя вариант.
 
VEH + MiniDumpWriteDump

Например так - https://habr.com/ru/articles/163745/comments/, на асм перекинуть без проблем
шеллкод внедряется в доверенный процесс explorer, придется руками тогда патчить указатели на обработчики ошибок или трамплины делать в коде обработчиков. что давольно не тривиальная тема да и может повлиять на работоспособность. Свои обработчики добавлять вроде как нельзя сейчас в процессе выполнения ( хотя могу и ошибаться, видится мне что скорее всего можно, но нужно ресерчить ), обработчики вкомпиливаются, в любом случае тут тогда либо регистры отладки применять, которые и так уже задействованы кхм... в другой области, либо мудрить что-то с изменением существующих обработчиков.
к тому же локально не всегда есть возможность логи вытащить, оптимальный вариант нашел с покрытием логиварония участка интересующего кода (логивание через обращения к вебу контролируемому)
например через $_GET[id] == 1, значит участок кода выполнился где 1 телеметрия остылается итд..
PS: MiniDumpWriteDump интересная функа, спасибо! 👍
 
Последнее редактирование:
Пожалуйста, обратите внимание, что пользователь заблокирован
Речь про ассемблер, только на нем пишу из религиозных убеждений. TDD полезная штука, думаю можно его и в контексте ассемблера пристроить на питухоне том же стресстесты погонять на разных входным параметрах
Чтобы у тебя не было проблем с отладкой, в первую очередь перед применением советов которые тебе дали ассемблер надо выбросить и взять нормальный ЯП для разработки. Это же пздц, ты тратишь кучу времени на написание велосипеда, потом ещё долго дебажишь его. Учитывая что у тебя шеллкод в эксплорере, нужно писать два отдельных проекта под две разных архитектуры, если мы охватываем и х86 и х64. Ты тратишь кучу времени не получая никакого профита и сам создаёшь себе сложности
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх