Русский / Russian English / Английский

Сейчас на форуме: Bad_guy, Mishar_Hacker (+3 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS ·

 eXeL@B —› Вопросы новичков —› Дебаг FireFox 11 версии
Посл.ответ Сообщение

Ранг: 1.6 (гость)
Статус: Участник

Создано: 31 декабря 2019 20:06 New!
Цитата · Личное сообщение · #1

Всем привет. С наступающим сразу, нечем мне заняться под конец года свиньи, поэтому, мужики, вот вам такой вопрос.

Начал дебажить по винде, цель в принципе обрести навыки реверса бинарных файлов, прочувствовать суть - кто знает тот поймет о чем я)

Задача 1

Сделал Hello World, cin >> в переменную, условие от нее с выводом, олькой поставил break, понял значение start/pause/step over/step into/animate over/animate into(ну или думаю что понял), поменял cmp (if изначальный) на MessageBox, короче все четко.


Задача 2

Скачал FireFox 11, запустил через ольку, завелся FF. Ниже - Полный букет проблем, непониманий, и тд, но цель - хочу отловить функцию сетевого запроса от ФФ, будь то GET/POST/HEAD/DELETE/e.t.c. Ничо с ней не делать, просто как факт отловить, MessageBox туда засобачить, да хоть break для начала.

Пытаюсь делать паузу в ольке, не могу открыть приложение что-нибудь сделать - все ясно, ставлю breakpoint-ы, чо то невпопад, будто Exception таймаутер какой-то фигачит, ну и при включенных бриках одна ветка, при выключенных другая, вот где-то сейчас нагуглил комбо Ctrl+G, переход к функции по label, как я понимаю, и тут просто ступор:

windows network / kernel network/ curl / e.t.c., вообще ничего из этих функций не могу найти, тут хотя б сетевой запрос как факт поймать. Короче я вообще не могу подступиться к этому зверьку.

Суть данной темы - кто может проконсультировать - помогите пожалуйста с этим делом, реально уже сил нет ) Мне нужен не результат - а процесс, как и почему - в инете тонны хлама, короче сами знаете ) Я платежеспособен, ценю свое и ваше время и готов финансово отблагодарить за консультацию, также буду благодарен если компетентные специалисты оставят свой email/vk/whatsup/tg/e.t.c., для инд. занятий +- на неделю, часа думаю по 4 в сутки. По оплате договоримся. Всех благодарю кто дочел досюда, с наступающим еще раз!

Ранг: 68.2 (постоянный)
Статус: Участник

Создано: 31 декабря 2019 20:40 New!
Цитата · Личное сообщение · #2

wcy97484 пишет:
могу подступиться к этому зверьку

Ты чего хочешь-то, по русски?
Юзай Fiddler, Chaelrs.. etc

Ранг: 39.2 (посетитель)
Статус: Участник

Создано: 31 декабря 2019 22:18 New!
Цитата · Личное сообщение · #3

Реверсить опенсорцы, конечно, занятие интересное. Но так можешь глянуть в сторону nss.dll , конкретно PR_Read / PR_Recv и т.д.

Ранг: 106.3 (ветеран)
Статус: Участник

Создано: 1 января 2020 00:42 New!
Цитата · Личное сообщение · #4

На "дочел досюда" у меня отвечать желание пропало.

| Сообщение посчитали полезным: sefkrd



Ранг: 240.4 (наставник)
Статус: Участник

Создано: 1 января 2020 03:51 New!
Цитата · Личное сообщение · #5

wcy97484 пишет:
будто Exception таймаутер какой-то фигачит, ну и при включенных бриках одна ветка, при выключенных другая

Не, это левый вспомогательный сепулькатор при рассинхроне интерцепторов так фигачит, почти наверняка дело в этом.


Ранг: 564.4 (!)
Статус: Участник
_Вечный_Студент_

Создано: 1 января 2020 04:21 · Поправил: plutos New!
Цитата · Личное сообщение · #6

f13nd пишет:
левый вспомогательный сепулькатор при рассинхроне интерцепторов так фигачит, почти наверняка дело в этом


Да не, бро, это лимиты експосуров девиируют от конгруентого бэкгроунда инвайронмента темплетной парадигмы...

| Сообщение посчитали полезным: sefkrd


Ранг: 1.6 (гость)
Статус: Участник

Создано: 1 января 2020 14:57 · Поправил: wcy97484 New!
Цитата · Личное сообщение · #7

Да я понимаю, nss.dll/e.t.c., просто если брать это в качестве тестового занятия, для себя. Есть бинарник - нужно найти функцию. Опенсорс/готовый ответ(поэтому 11 версия)/e.t.c., это все и так понятно. Мне не результат нужен для этой задачи, а пройти это с осознанием . Готов подкрепить монетой кто поможет

Грубо говоря, есть знание что за запрос будет отвечать PR_Write, но как добыть эту информацию, из просто бинарника, без просмотра сорцов...


Ранг: 325.0 (мудрец)
Статус: Участник

Создано: 1 января 2020 15:01 New!
Цитата · Личное сообщение · #8

Задача сформулирована чётко
Что тут скажешь, апп большое, так что нужно крутить автоматикой, предсказуемый ответ конечно, но это по времени наилучшее решение.

Добавлено спустя 10 минут
wcy97484

> Грубо говоря, есть знание что за запрос будет отвечать PR_Write, но как добыть эту информацию

Ты выбрал не подьёмную тебе задачу. Впрочем это хорошо что сразу решил все сложности понять, респект. Зачем начинать с малого, тогда не будут трудности понятны. Видеокурсы, иной подход. Увидев весь масштаб только можно найти что конкретно изучать, иначе утонешь в материале, который по большей части - вода".

| Сообщение посчитали полезным: LoxmatbIj


Ранг: 39.2 (посетитель)
Статус: Участник

Создано: 2 января 2020 02:29 New!
Цитата · Личное сообщение · #9

wcy97484 пишет:
есть знание что за запрос будет отвечать PR_Write, но как добыть эту информацию, из просто бинарника, без просмотра сорцов...

вот открой васм / Рихтера и почитай на тему перехвата апи функций, мб что-то прояснится.
еще можно открыть сорцы Зевса, под 11 ФФ там вроде как раз и было.

Ранг: 1.6 (гость)
Статус: Участник

Создано: 2 января 2020 08:56 · Поправил: wcy97484 New!
Цитата · Личное сообщение · #10

difexacaw, так потому что с малыми задачами я справляюсь и понимаю как это работает) Как минимум дебага журналированием огромный опыт, дебага дебагером в linux'е тоже, но там другое ) Есть ли возможность у тебя за $ подтянуть в направлении поиска нужной функции в огромном приложении?

morgot, вопрос не в том, как хукинг функции DLL чужого процесса сделать. Вопрос как найти ту самую функцию куда инжектить. Как хукать это и ежу понятно.


Ранг: 86.2 (постоянный)
Статус: Участник

Создано: 2 января 2020 14:07 New!
Цитата · Личное сообщение · #11

wcy97484 пишет:
как найти ту самую функцию куда инжектить


Code:
  1. void* func = (void*)GetProcAddress(GetModuleHandleW(L"nspr4.dll"),"PR_Write")


Или чего ты хочешь, так то выше правильно сказали - смотри исходники зевса или гугли "hook firefox PR_Write"

Ранг: 1.6 (гость)
Статус: Участник

Создано: 2 января 2020 15:45 New!
Цитата · Личное сообщение · #12

Apocalypse, я уже ответил выше, мне не надо хукать процесс, меня интересует другая сторона медали, скорее всего неверно изначально сформулировал проблему: меня интересует, откуда мы знаем, что за это отвечает именно PR_Write, то есть, если не брать что это Open Source/документации МОЗИЛЛЫ, ведь в жизни бывает много других приложений, который не так лояльны к 3rd. Меня интересует как имея бинарник этой же самой мозиллы мы узнаем, что хукать НУЖНО именно PR_Write.

Ранг: 243.6 (наставник)
Статус: Участник

Создано: 2 января 2020 16:19 · Поправил: cppasm New!
Цитата · Личное сообщение · #13

Практически в любой ОС всё упирается в API - напрямую с железом приложения работать не могут.
Стало быть в случае с Windows идёшь на MSDN и читаешь какие у приложения есть варианты организовать сетевой обмен данными (сокеты там и т.п.).
Ставишь бряки на API функции и смотришь какие сработают.
Дальше от задачи зависит - либо поднимаешься выше по стеку вызовов и дойдёшь до своей PR_Write рано или поздно, либо если просто данные посмотреть - они в API функцию в буфере передаются (в ту же WSASend например, смотришь в отладчике данные и всё).
Интересно мне как ты там в Линуксах что-то дебажил если задаёшь такие вопросы - принцип одинаковый везде.


Ранг: 325.0 (мудрец)
Статус: Участник

Создано: 2 января 2020 16:26 New!
Цитата · Личное сообщение · #14

wcy97484

> в направлении поиска нужной функции в огромном приложении?

Для этого нужен инструмент, который может отслеживать любые события, в частности адресацию. Сетевой интерфейс реализован не как сервисы, а как запросы в драйвера(IOCTL). Если даже допустить что интерфейс не известен, а задача найти его, то это можно сделать лишь по ссылкам на данные. А вручную такое не сделаешь и отладчиком тоже. Вы хотите сразу всё, такого не бывает и дело совсем не в деньгах.

Добавлено спустя 31 минуту
morgot

Если бы вас мой друг отпустили, ты бы зашёл первым делом на васм. А так это походу полкан с погонами тут пишет.)

Ранг: 23.9 (новичок)
Статус: Участник

Создано: 2 января 2020 18:17 New!
Цитата · Личное сообщение · #15

wcy97484 пишет:
Меня интересует как имея бинарник этой же самой мозиллы мы узнаем, что хукать НУЖНО именно PR_Write.

Чисто гипотетически, допустим, у меня есть некая программа, которая в некоей ситуации (ну, допустим, чисто гипотетически, отсутствие связи с интернетом) выдает некое сообщение. Тогда я беру в руки дизасм и нахожу ссылку на вызов этого сообщения, затем беру в руки деблохер и ставлю бряк на вызов этого сообщения, затем разматываю назад цепочку вызовов, которая порождает эту ветку кода. Я понятно излагаю?

Ранг: 306.3 (мудрец)
Статус: Модератор
CrackLab

Создано: 2 января 2020 19:03 New!
Цитата · Личное сообщение · #16

Исчерпывающие ответы давно даны, т.ч. закрыто.
 eXeL@B —› Вопросы новичков —› Дебаг FireFox 11 версии
Эта тема закрыта. Ответы больше не принимаются.

Видеокурс ВЗЛОМ