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

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

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


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

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

Разбираю 1 программу, предположительно на дельфи (или борланд билдер, не суть). Часто (вначале процедуры) встречаются строки вида:
Code:
  1.  int savedregs; // [esp+24h] [ebp+0h]
  2.   v17 = &savedregs;
  3. ...
  4.   v15 = __readfsdword(0);
  5.   __writefsdword(0, (unsigned int)&v15);

Интересно, зачем этот код? Считывает значение с FS и туда же пишет? savedregs тоже нигде не используется.

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

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

morgot
Настройка try/finally блоков. Просто скипай и читай дальше.

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



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

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

morgotmorgot пишет:
Интересно, зачем этот код?

ключевое слово SEH

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


Ранг: 414.8 (мудрец)
Статус: Участник
"Тибериумный реверсинг"

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

morgot пишет:
дельфи (или борланд билдер, не сут

Borland: С++ и Delphi? но они разительно отличаются - как минимум с самого начала по точкам входа. такой seh именно для билдера по ходу


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

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

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


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

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

ELF_7719116
мне сложно их различить, мало опыта. Peid показал, что это дельфи + ида и гугл подсказали, что такие функции (которые встречаются в коде, разные там System::LstrCat , и секция TLS), могут быть и там и там. У автора тоже не спросишь, ибо это малварь.
Т.е. это С++ билдер?

f13nd
Code:
  1. CODE:0040A9C8                 push    dword ptr fs:[eax]
  2. CODE:0040A9CB                 mov     fs:[eax], esp
  3. CODE:0040A9CE                 lea     eax, [ebp+var_C]

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

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

ELF_7719116 пишет:
такой seh именно для билдера по ходу

абсолютно одинаково же


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

Создано: 21 октября 2019 23:54 New!
Цитата · Личное сообщение · #8

ELF_7719116 пишет:
такой seh именно для билдера по ходу


Чем отличается от msvc то?

Ранг: 414.8 (мудрец)
Статус: Участник
"Тибериумный реверсинг"

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

Guys, уточняю, что имел ввиду - в delphi оно как отдельной процедурой идет, а msvc-builder типа инлайнят сразу.

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

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

ELF_7719116 пишет:
в delphi оно как отдельной процедурой идет

Дефолтовые обработчики тоже инлайнятся. Те самые джампы ближе к концу функции, которые ида обычно не распознает.


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

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

morgot

> У автора тоже не спросишь, ибо это малварь.

Если семпл можно прогнать через декомпиль, то это не малварь, ну или школобилд который обычно незачем реверсить.
 eXeL@B —› Вопросы новичков —› Вопрос по реверсингу программы на Delphi

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