eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 12 ноября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

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

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

 eXeL@B —› Вопросы новичков —› В стеке есть нужная инфа - как добраться до процедуры?
Посл.ответ Сообщение

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

Создано: 13 октября 2017 12:51 · Поправил: egorus2010 New!
Цитата · Личное сообщение · #1

Допустим, "исследую" прогу.
Так как я новичок, то методы у меня в итоге сходятся к одному - изменять флаги на переходах, которые мне не понравились. Прошу не плеваться, только учусь, и куда еще писать, как не в тему для новичков...

В общем, случайно вижу в стеке (но ниже ESP, строк 5-6) есть надпись (номера так, от балды):
12321431 65425542 ASCII "LIC!"
То есть, возможно что-то собиралось лицензироваться.
Как это можно использовать?
И вообще, как добраться до той процедуры? Как узнать, кто и когда это положил в стек?
Ясно, что если поставить бряк на память, где эта строка находится - то он не сработает, так как на "Лицензировано" просто так не попадешь.
(пока Olly)


Ранг: 315.6 (мудрец)
Статус: Участник
born to be evil

Создано: 13 октября 2017 12:54 New!
Цитата · Личное сообщение · #2

по стеку вверх. еще смотреть в сторону IDA. все уже придумано, это не 90-е

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


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

Создано: 13 октября 2017 15:23 New!
Цитата · Личное сообщение · #3

Ну так мы, сопливые, по туториалам из 90-х и обучаемся.
Других не пишут....

Так дальше можно спрашивать?

Ну выше на одну строку было return to прога.12345678.
Еще выше или ниже по стеку только адреса, без подсказок.
Но ведь могло быть так, что стек уже 10 раз туда-сюда перезаписали выше той строки, пока я ее заметил?
И return уже от другой процедуры?

Я уже сказал, я увидел строку не на вершине стека.

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

Создано: 13 октября 2017 17:20 New!
Цитата · Личное сообщение · #4

Проще смотреть в IDA, и не в отладчике, а в статическом режиме.
Начать с поиска критической строки, а дальше всё потянется само собой.
Olly вам таких возможностей не даст.

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



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

Создано: 13 октября 2017 19:47 · Поправил: difexacaw New!
Цитата · Личное сообщение · #5

egorus2010

Если сформулировать в вашем контексте задачу - как обнаружить появление нужной строки в области стековой памяти. Корректная же формулировка задачи - как обнаружить известную ссылку, тоесть DFG к ней.

Для обнаружения желаемого указателя вы должны пройти следующий путь:

1. Реализовать визор, что бы отследить все выборки данных(DF). Вы можите использовать эмуляторы, гипервизоры и прочее.
2. Реализовать менеджер памяти, иначе профайл просядет и не будет смысла в 1. Вы должны мониторить рабочий набор(WS). Это делаетя в юм.

Как это сделать иначе, заколхозить - никак, если только снять трассу и как то её анализить, но это дикий изврат.

Это частая задача и она никак не резолвится иначе. Поиск решений в обход данной задачи её не решает, это решает лишь исходную задачу, для которой и нужно было мониторить DF.

Добавлено спустя 11 минут
ksol

Ида статик инструмент и не отслеживает потоки данных, это даже не отладчик. Вы можите через этот дизасм обнаружить в динамике выборку данных и предшествующую ей ?

Отсыпьте и мне травы или чем там вы долбитесь, что в рассудке корреляции.

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

Создано: 14 октября 2017 01:11 · Поправил: anonymous New!
Цитата · Личное сообщение · #6

egorus2010
Много статей,не ленитесь, учите матчасть
https://exelab.ru/art/

difexacaw Отсыпьте и мне травы или чем там вы долбитесь, что в рассудке корреляции
Возьмите на тумбочек "ВАЛЕРИАНА таблетку ",положте ее в рот ,через несколько минут большой мягкий Винни-пух поцелует тебя в щеку из-за вашего плеча,возьмет за руку и поведет на прогулку в мультяшный красивый красочный мир.

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

Создано: 14 октября 2017 01:18 New!
Цитата · Личное сообщение · #7

difexacaw
Тебя послушать, так скоро и хелловорлд без визора написать нельзя будет. Нормально все в статике разбирается. Разумеется, когда речь идет о реальном существующем софте, а не о твоих сферических конях

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



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

Создано: 14 октября 2017 02:49 · Поправил: difexacaw New!
Цитата · Личное сообщение · #8

rmn

В статике оно решается через поиск прямых указателей. Но если же ссылок таких нет - апп накрыто слоем пакера или это 64 апп, где используется RIP адресация и нет прямых ссылок, то нормально не разбирается, увы.

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



Ранг: 512.2 (!)
Статус: Участник
оптимист

Создано: 14 октября 2017 08:58 New!
Цитата · Личное сообщение · #9

difexacaw пишет:
В статике оно решается через поиск прямых указателей. Но если же ссылок таких нет - апп накрыто слоем пакера или это 64 апп, где используется RIP адресация и нет прямых ссылок, то нормально не разбирается, увы.

Добавлю ещё смотри в стеке ниже строчки адреса возврата в функции может помочь выйти на сому функцию


Ранг: 1091.6 (!!!!)
Статус: Участник

Создано: 14 октября 2017 09:20 New!
Цитата · Личное сообщение · #10

egorus2010, посмотри статьи ManHunter, тебе по уровню должны отлично зайти.

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


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

Создано: 14 октября 2017 16:20 New!
Цитата · Личное сообщение · #11

difexacaw пишет:
Ида статик инструмент и не отслеживает потоки данных, это даже не отладчик.

-- Нет, IDA это универсальный инструмент: кроме возможностей статического анализа
имеются отладчики локальный и для удалённой отладки. Их можно применять отдельно
или комбинировать со статическим рассмотрением. Но главное, всё же, и чего нет в Olly,
это сильно разработанный аппарат статического анализа.


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

Создано: 14 октября 2017 19:43 New!
Цитата · Личное сообщение · #12

ksol

Какой есчо отладчик ида. Этим говном ничего невозможно отлаживать. Виндебаг это отладчик и олли. Друг мой, ты не можешь даже примитивный SEH разобрать и прочее, о какой отладке вы вообще говорите

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

Создано: 14 октября 2017 20:18 New!
Цитата · Личное сообщение · #13

difexacaw

Мне как нубу интересно, что умеет оля, чего не может ида?
Насколько я видел, она выполняет те - же доступные действия, пусть не всегда так - же удобно, но выполняет.

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

Создано: 14 октября 2017 21:33 · Поправил: Rio New!
Цитата · Личное сообщение · #14

FreshNoob пишет:
она выполняет те - же доступные действия

конкретно, кто это "она" и какие "действия"?, сформулируйте.
И самое главное каким образом Вы определяете необходимую Вам процедуру?
Если Вы определили, то в чём собственно вопрос?

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



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

Создано: 14 октября 2017 21:52 · Поправил: difexacaw New!
Цитата · Личное сообщение · #15

FreshNoob

Можно на машине ездить, а можно на катке, ну том, что асфальт жмёт. Они оба ездят. Аналогия понятна ?

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

Создано: 14 октября 2017 23:01 New!
Цитата · Личное сообщение · #16

egorus2010 пишет: Других не пишут....

Потому что в них нет необходимости, это устаревший мусор и в наши дни он уже неактуален, поскольку есть нормальные учебники на доступном языке. Прежде чем браться за отладчик все же неплохо изучить основы, вы ведь элементарного не знаете, например устройство стека, а это что то на уровне начальной арифметики в данной сфере.
0. Изучите базовые понятия и принципы их работы.
1. Выучите C, хотя бы до уровня - умею читать. В процессе изучите работу отладчика.
2. Выучите ассемблер, хотя бы на уровне самых распространенных команд.
3. Изучите базовое устройство операционной системы.
4. Практика, практика и еще раз практика.
...
Профит.

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


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

Создано: 14 октября 2017 23:28 · Поправил: Rio New!
Цитата · Личное сообщение · #17

FreshNoob
читайте ЛС (личные сообщения)

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

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

difexacaw пишет:
Друг мой, ты не можешь даже примитивный SEH разобрать и прочее, о какой отладке вы вообще говорите

А вы, прям, из больницы и сюда...!?

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

Создано: 6 декабря 2017 21:18 · Поправил: egorus2010 New!
Цитата · Личное сообщение · #19

1. Manhunter почти всегда пишет (после нахождения Hiew в файле программы строчки о регистрации, триале и т.п.), скажем, "Register_Failed"

"Переходим к дизассемблеру, чтобы посмотреть, где и каким образом эта строка используется."

И у него вот так:
.text:007A209D mov eax, offset aRegister_failed

У меня так:
.text:007A209D mov eax, offset off_7A2230

То ли IDA у меня не так настроена, то ли искать не умею, не там ищу и т.п.

Хотя в Olly легко находится:
Text strings referenced Text string=UNICODE "Register_Failed"

И "Register_Success" тоже есть.

2. Или, например, нужно найти команду PUSH 74h в IDA.

Как эти вопросы решаются?

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

Создано: 6 декабря 2017 22:59 · Поправил: dosprog New!
Цитата · Личное сообщение · #20

egorus2010 пишет:
Как эти вопросы решаются?

Решаются.
) Но пусть не обманывает manhunter'овская лёгкость стиля.

egorus2010 пишет:
То ли IDA у меня не так настроена, то ли искать не умею, не там ищу и т.п.

Отредактировано для вящего понимания. Это нормально.


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

Создано: 7 декабря 2017 10:20 New!
Цитата · Личное сообщение · #21

Ну так как в листинге найти команду PUSH 74h (в IDA)?
Нравоучения я выслушал - весь красный, стыдно и т.д. и т.п.
Ответ на вопрос есть?


Ранг: 1091.6 (!!!!)
Статус: Участник

Создано: 7 декабря 2017 10:42 New!
Цитата · Личное сообщение · #22

egorus2010 пишет:
.text:007A209D mov eax, offset aRegister_failed


это в ручную сделано, смотри мануалы по ida. Да хоть тот же "Введение в реверсинг с нуля используя IDA PRO", рядом на форуме лежит.

egorus2010 пишет:
Хотя в Olly легко находится


ну так она тебе просто статичную текстовую строку показала.

egorus2010 пишет:
Или, например, нужно найти команду PUSH 74h в IDA


а зачем?

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

Создано: 7 декабря 2017 11:25 · Поправил: egorus2010 New!
Цитата · Личное сообщение · #23

Так Вы же меня на Manhunter и послали...
Если разбираю мануалы, значит, нужно повторить, что там сделано.

"Откроем InspectExe.dll в редакторе ресурсов и поищем либо строки из наг-окна, либо диалоговые окна, которые с ними связаны. Вот первый наг-скрин. Его индекс в ресурсах - 116, или же 74h в шестнадцатеричной системе счисления. Поищем это значение в дизассемблере."
Push 74h


Ранг: 1091.6 (!!!!)
Статус: Участник

Создано: 7 декабря 2017 11:46 New!
Цитата · Личное сообщение · #24

Меня смутила строчка в первом посте "вижу в стеке (но ниже ESP, строк 5-6) есть надпись", исходя из которой сделал вывод, что понимание о том, как пользоваться инструментом в наличии.
Разумеется, стоит ознакомиться хотя бы с азами использования инструмента.

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

Создано: 7 декабря 2017 12:12 · Поправил: egorus2010 New!
Цитата · Личное сообщение · #25

Я пользуюсь Olly.
И там я всё нахожу.

Про Иду написал здесь, чтобы не создавать новые темы.
К теме топика явно она не относится, конечно.

А на Иду попал по вашим "перекрестным ссылкам" (Manhunter и т.п.)
Вот и хотел по-быстрому прояснить небольшой момент...

Добавлено спустя 10 минут
В общем, Manhunter немного подсказал.
Alt+T

Правда, это и есть Search Text.
Который я пробовал...
И который у меня не сработал.
Потому что оказывается, что
push 74h - это не то же, что push 74h.
Разницу видите?

ЗЫ. А после добавления сообщения разница-то исчезает!!!
Здесь вы видите по одному пробелу между Push и 74.
В листинге IDA между Push и 74 пустота больше.
И эта пустота не дает правильного результата поиска.
Если скопировать значение из листинга в поиск - тогда да.
А я вообще искал, что то типа Search command, как в Olly
И не нашел...

ЗЫЫ. Чтобы не гадать, сколько же в команде пробелов, сделал так.
Сначала находим все PUSH, потом ctrl-F (Фильтр в найденном) и 74h.
Тогда работает.
___________________________________

2. По строкам. Как я понял, происходит так.
Ищем в Hiew строку (буду в рамках конкретного примера) - Register_Failed
Адрес - 7A2230.
Находим в Иде по этому адресу строку. Даем ей имя aRegister_failed.
Теперь на нее будут ссылаться так: mov eax, offset aRegister_failed
 eXeL@B —› Вопросы новичков —› В стеке есть нужная инфа - как добраться до процедуры?

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS