Сейчас на форуме: tyns777, bezumchik (+5 невидимых)

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


Ранг: 69.9 (постоянный), 83thx
Активность: 0.140.73
Статус: Участник

Создано: 21 октября 2019 17:12
· Личное сообщение · #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 тоже нигде не используется.



Ранг: 158.4 (ветеран), 123thx
Активность: 0.140.49
Статус: Участник

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

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

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


Ранг: 52.0 (постоянный), 146thx
Активность: 0.030.08
Статус: Участник

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

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

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

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

Ранг: 419.0 (мудрец), 647thx
Активность: 0.460.51
Статус: Участник
"Тибериумный реверсинг"

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

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

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




Ранг: 271.2 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

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

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

-----
2 оттенка серого





Ранг: 69.9 (постоянный), 83thx
Активность: 0.140.73
Статус: Участник

Создано: 21 октября 2019 20:55
· Личное сообщение · #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]




Ранг: 315.1 (мудрец), 631thx
Активность: 0.30.33
Статус: Модератор
CrackLab

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

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

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




Ранг: 324.3 (мудрец), 222thx
Активность: 0.480.37
Статус: Участник

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

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


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

-----
IZ.RU




Ранг: 419.0 (мудрец), 647thx
Активность: 0.460.51
Статус: Участник
"Тибериумный реверсинг"

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

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



Ранг: 158.4 (ветеран), 123thx
Активность: 0.140.49
Статус: Участник

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

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

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




Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

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

morgot

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

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

-----
vx



 eXeL@B —› Вопросы новичков —› Вопрос по реверсингу программы на Delphi
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати