Сейчас на форуме: Rio, YDS, _MBK_ (+10 невидимых)

 eXeL@B —› Основной форум —› Упрощение взлома ООП-софта
Посл.ответ Сообщение

Ранг: 4.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 28 октября 2005 14:28
· Личное сообщение · #1

Ломаю софтину.
Написана на MSVC 6-7

Задалбывает каждый раз отслеживать вручную что и как передается, а передается почти везде одно и то же (ссылки на объекты).

Интересует вот что: может быть есть какие-нибудь скрипты для IDA или модули, упрощающие дизасм ООП прог?



Ранг: 192.3 (ветеран), 18thx
Активность: 0.120
Статус: Участник
stoned machine-gunner

Создано: 28 октября 2005 17:39
· Личное сообщение · #2

гм, ну, дык в этом и состоит задача крякера/реверсера - "отслеживать вручную что и как передается". Гемор, но некоторым нравится и затягивает =)

-----
once you have tried it, you will never want anything else




Ранг: 40.0 (посетитель), 1thx
Активность: 0.030
Статус: Участник

Создано: 28 октября 2005 20:41
· Личное сообщение · #3

Есть такая мысль, обычно указатель на объект располагается в каком-нибудь регистре, возможно написать плагин, который будет преобразовавать код типа mov eax, [ebx+0Ch] в mov eax, [ebx+object.blabla]. Надо ещё знать что первой двойное слово в объекте это указатель на массив виртуальных функций, невиртуальные функции всегда принимают первым параметром указатель на объект и ещё что-нибудь




Ранг: 299.6 (наставник)
Активность: 0.30
Статус: Участник
Armadillo Killer

Создано: 28 октября 2005 21:26
· Личное сообщение · #4

gloom нравится и затягивает =) это ты точно сказал



Ранг: 352.4 (мудрец), 4thx
Активность: 0.150
Статус: Участник
retired

Создано: 31 октября 2005 12:53
· Личное сообщение · #5

this передается через ecx




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

Создано: 31 октября 2005 13:28
· Личное сообщение · #6

Ну народ, может где-то описаны вообще теоретические основы ООП для ASM'а? Типа как передаются объекты, как описываются какие-то стандартные обращения к свойствам объектов на ASM'е???



Ранг: 40.0 (посетитель), 1thx
Активность: 0.030
Статус: Участник

Создано: 31 октября 2005 13:31
· Личное сообщение · #7

xtin.km.ru/view.shtml?id=148
правда там про борланд

ssx пишет:
this передается через ecx

не всегда, может быть через eax или стек



Ранг: 64.6 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 31 октября 2005 13:52
· Личное сообщение · #8

Не поскупись и купи книжку Касперского.




Ранг: 299.6 (наставник)
Активность: 0.30
Статус: Участник
Armadillo Killer

Создано: 31 октября 2005 13:54 · Поправил: Z0oMiK
· Личное сообщение · #9

Step Зачем покупать если в инете можно найти ?



Ранг: 64.6 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 31 октября 2005 14:27
· Личное сообщение · #10

Z0oMiK
1) поддержка отечественного производителя (издательства Питер)
2) книга в некоторых случаях удобней.
3) привыкаем уважать человеческий труд и хотя бы иногда не пользоваться халявой.
А то как в песне Арии – вся жизнь за даром.



Ранг: 352.4 (мудрец), 4thx
Активность: 0.150
Статус: Участник
retired

Создано: 31 октября 2005 14:57
· Личное сообщение · #11

Крис свои книжки сам выложил.
а Z0oMiK'у просто хочется отметиться в каждом топике на этом форуме



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

Создано: 31 октября 2005 19:00
· Личное сообщение · #12

yohannes пишет:
Ломаю софтину.
Написана на MSVC 6-7


Не знаю, поможет тебе или нет:
VC5,6 размещает базу обьекта в ESI.





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

Создано: 01 ноября 2005 00:06 · Поправил: SLayer
· Личное сообщение · #13

а как будет на асме выглядеть приблизительно такой код написанный на Delphi:
Timer.Interval := 1000;
Timer.Enabled := True;




Ранг: 192.3 (ветеран), 18thx
Активность: 0.120
Статус: Участник
stoned machine-gunner

Создано: 01 ноября 2005 09:58
· Личное сообщение · #14

ssx пишет:
а Z0oMiK'у просто хочется отметиться в каждом топике на этом форуме

гм, и точно =) ... где там моя кнопка "БАН"...

-----
once you have tried it, you will never want anything else





Ранг: 303.7 (мудрец), 4thx
Активность: 0.190
Статус: Участник
tPORt Manager

Создано: 01 ноября 2005 11:33
· Личное сообщение · #15

SLayer пишет:
Timer.Interval := 1000;
Timer.Enabled := True;


mov eax, offset timer
mov dword [eax+interval], 1000
mov byte [eax+enabled], 1

IMHO так



Ранг: 384.1 (мудрец)
Активность: 0.250
Статус: Участник
www.int3.net

Создано: 01 ноября 2005 12:00
· Личное сообщение · #16

mov eax, offset timer
mov dword [eax+interval], 03E8h
mov byte [eax+enabled], 1

IMHO так ;)

-----
Подписи - ЗЛО! Нужно убирать!




Ранг: 4.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 01 ноября 2005 12:37
· Личное сообщение · #17

tum
А я думаю в ecx, я даже уверен )



Ранг: 4.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 01 ноября 2005 12:40
· Личное сообщение · #18

Step
В какой именно его книге речь идет об ООП? что-то я не встречал



Ранг: 64.6 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 01 ноября 2005 14:25
· Личное сообщение · #19

yohannes
"Крис Касперски. Фундаментальные основы хакерства. Искусство дизассемблирования (с CD-ROM)"
Вот здесь краткое содержание: hххp://books.dore.ru/bs/f11bid322.html



Ранг: 64.6 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 01 ноября 2005 14:30
· Личное сообщение · #20

SLayer
Bit-hack
nice
this передаётся в Борланде (как правило) через eax, всё правильно, только речь идёт об MSVC, так что неявный параметр - ecx.




Ранг: 303.7 (мудрец), 4thx
Активность: 0.190
Статус: Участник
tPORt Manager

Создано: 01 ноября 2005 15:16
· Личное сообщение · #21

mov ecx, offset timer
mov dword [ecx+interval], 1000d
mov byte [ecx+enabled], 1

Ну, раз в ecx, тоды так



Ранг: 64.6 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 01 ноября 2005 15:41
· Личное сообщение · #22

Bit-hack
Садись. Два.
В MSVC++ нет класса таймера. Таймер создаётся через вызов SetTimer(…), после чего пишется callback-функция, или обработчик сообщения ХХХ::OnTimer(UINT nIDEvent).




Ранг: 303.7 (мудрец), 4thx
Активность: 0.190
Статус: Участник
tPORt Manager

Создано: 01 ноября 2005 18:32
· Личное сообщение · #23

Step пишет:
++

СукС. Я лучше буду писать без ООП. Т.к. ООП - сукс




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

Создано: 01 ноября 2005 23:24 · Поправил: SLayer
· Личное сообщение · #24

Bit-hack пишет:
mov dword [eax+interval], 1000
mov byte [eax+enabled], 1

а можно ли Олли так и заставить показывать в таком стиле, типа [eax + имя_параметра] или это не реально ? Возможны ли вытащить названия параметров из самого exe по крайней мерее для Delphi?

а как будет вглядить кострукция такого вида:

with Timer do begin
Interval := 1000;
Enabled := True;
end;


По ходу дела эта конструкция выполняется быстрее, а в чём тогда отличия?




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

Создано: 01 ноября 2005 23:27 · Поправил: SLayer
· Личное сообщение · #25

<< DELETE ME >>




Ранг: 303.7 (мудрец), 4thx
Активность: 0.190
Статус: Участник
tPORt Manager

Создано: 02 ноября 2005 06:06
· Личное сообщение · #26

SLayer пишет:
а можно ли Олли так и заставить показывать в таком стиле

IMHO нет. Оля работает с ужо скомпилированным файлом, а в таком файле обычно нет инфы о именах переменных.

SLayer пишет:
а как будет вглядить кострукция такого вида:

А х.з. я не помню что она значит в делфи. На си пиши.



Ранг: 64.6 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 02 ноября 2005 11:37
· Личное сообщение · #27

SLayer пишет:
а как будет вглядить кострукция такого вида:

with Timer do begin
Interval := 1000;
Enabled := True;
end;

Тебе что в лом дебагером дельфина посмотреть ?

SLayer пишет:
По ходу дела эта конструкция выполняется быстрее, а в чём тогда отличия?

С какой это радости она быстрее исполняется ?



Ранг: 60.4 (постоянный)
Активность: 0.030
Статус: Участник

Создано: 05 марта 2006 17:44
· Личное сообщение · #28

По поводу первого поста: в IDA 4.8 есть так называемые FLIRT-сигнатуры. Они распозают библиотечные и стандартные функции. Например вместо call sub_xxxxxxxx будет call strcpy, также присваиваются имена параметрам. ИМХО при исследовании ООП-программ это незаменимая вещь



Ранг: 60.4 (постоянный)
Активность: 0.030
Статус: Участник

Создано: 06 марта 2006 13:37
· Личное сообщение · #29

Кстати вот статья про FLIRT.

50ec_Flirt.zip.zip


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


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