Посл.ответ |
Сообщение |
Ранг: 4.0 (гость) Активность: 0=0 Статус: Участник
|
Создано: 28 октября 2005 14:28 · Личное сообщение · #1
Ломаю софтину.
Написана на MSVC 6-7
Задалбывает каждый раз отслеживать вручную что и как передается, а передается почти везде одно и то же (ссылки на объекты).
Интересует вот что: может быть есть какие-нибудь скрипты для IDA или модули, упрощающие дизасм ООП прог?
| Сообщение посчитали полезным: |
|
Ранг: 192.3 (ветеран), 18thx Активность: 0.12↘0 Статус: Участник stoned machine-gunner
|
Создано: 28 октября 2005 17:39 · Личное сообщение · #2
гм, ну, дык в этом и состоит задача крякера/реверсера - "отслеживать вручную что и как передается". Гемор, но некоторым нравится и затягивает =)
----- once you have tried it, you will never want anything else | Сообщение посчитали полезным: |
Ранг: 40.0 (посетитель), 1thx Активность: 0.03↘0 Статус: Участник
|
Создано: 28 октября 2005 20:41 · Личное сообщение · #3
Есть такая мысль, обычно указатель на объект располагается в каком-нибудь регистре, возможно написать плагин, который будет преобразовавать код типа mov eax, [ebx+0Ch] в mov eax, [ebx+object.blabla]. Надо ещё знать что первой двойное слово в объекте это указатель на массив виртуальных функций, невиртуальные функции всегда принимают первым параметром указатель на объект и ещё что-нибудь
| Сообщение посчитали полезным: |
![](img/s6.gif) Ранг: 299.6 (наставник) Активность: 0.3↘0 Статус: Участник Armadillo Killer
|
Создано: 28 октября 2005 21:26 · Личное сообщение · #4
gloom нравится и затягивает =) это ты точно сказал
| Сообщение посчитали полезным: |
Ранг: 352.4 (мудрец), 4thx Активность: 0.15↘0 Статус: Участник retired
|
Создано: 31 октября 2005 12:53 · Личное сообщение · #5
this передается через ecx
| Сообщение посчитали полезным: |
![](img/s4.gif) Ранг: 90.3 (постоянный), 1thx Активность: 0.03↘0 Статус: Участник
|
Создано: 31 октября 2005 13:28 · Личное сообщение · #6
Ну народ, может где-то описаны вообще теоретические основы ООП для ASM'а? Типа как передаются объекты, как описываются какие-то стандартные обращения к свойствам объектов на ASM'е???
| Сообщение посчитали полезным: |
Ранг: 40.0 (посетитель), 1thx Активность: 0.03↘0 Статус: Участник
|
Создано: 31 октября 2005 13:31 · Личное сообщение · #7
xtin.km.ru/view.shtml?id=148
правда там про борланд
ssx пишет:
this передается через ecx
не всегда, может быть через eax или стек
| Сообщение посчитали полезным: |
Ранг: 64.6 (постоянный) Активность: 0.02↘0 Статус: Участник
|
Создано: 31 октября 2005 13:52 · Личное сообщение · #8
Не поскупись и купи книжку Касперского.
| Сообщение посчитали полезным: |
![](img/s6.gif) Ранг: 299.6 (наставник) Активность: 0.3↘0 Статус: Участник Armadillo Killer
|
Создано: 31 октября 2005 13:54 · Поправил: Z0oMiK · Личное сообщение · #9
Step Зачем покупать если в инете можно найти ?
| Сообщение посчитали полезным: |
Ранг: 64.6 (постоянный) Активность: 0.02↘0 Статус: Участник
|
Создано: 31 октября 2005 14:27 · Личное сообщение · #10
Z0oMiK
1) поддержка отечественного производителя (издательства Питер)
2) книга в некоторых случаях удобней.
3) привыкаем уважать человеческий труд и хотя бы иногда не пользоваться халявой.
А то как в песне Арии – вся жизнь за даром.
| Сообщение посчитали полезным: |
Ранг: 352.4 (мудрец), 4thx Активность: 0.15↘0 Статус: Участник retired
|
Создано: 31 октября 2005 14:57 · Личное сообщение · #11
Крис свои книжки сам выложил.
а Z0oMiK'у просто хочется отметиться в каждом топике на этом форуме
| Сообщение посчитали полезным: |
Ранг: 1.2 (гость) Активность: 0.01↘0 Статус: Участник
|
Создано: 31 октября 2005 19:00 · Личное сообщение · #12
yohannes пишет:
Ломаю софтину.
Написана на MSVC 6-7
Не знаю, поможет тебе или нет:
VC5,6 размещает базу обьекта в ESI.
| Сообщение посчитали полезным: |
![](img/s4.gif) Ранг: 90.3 (постоянный), 1thx Активность: 0.03↘0 Статус: Участник
|
Создано: 01 ноября 2005 00:06 · Поправил: SLayer · Личное сообщение · #13
а как будет на асме выглядеть приблизительно такой код написанный на Delphi:
Timer.Interval := 1000;
Timer.Enabled := True;
| Сообщение посчитали полезным: |
Ранг: 192.3 (ветеран), 18thx Активность: 0.12↘0 Статус: Участник stoned machine-gunner
|
Создано: 01 ноября 2005 09:58 · Личное сообщение · #14
ssx пишет:
а Z0oMiK'у просто хочется отметиться в каждом топике на этом форуме
гм, и точно =) ... где там моя кнопка "БАН"...
----- once you have tried it, you will never want anything else | Сообщение посчитали полезным: |
![](img/s7.gif) Ранг: 303.7 (мудрец), 4thx Активность: 0.19↘0 Статус: Участник 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.25↘0 Статус: Участник 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.02↘0 Статус: Участник
|
Создано: 01 ноября 2005 14:25 · Личное сообщение · #19
yohannes
"Крис Касперски. Фундаментальные основы хакерства. Искусство дизассемблирования (с CD-ROM)"
Вот здесь краткое содержание: hххp://books.dore.ru/bs/f11bid322.html
| Сообщение посчитали полезным: |
Ранг: 64.6 (постоянный) Активность: 0.02↘0 Статус: Участник
|
Создано: 01 ноября 2005 14:30 · Личное сообщение · #20
SLayer
Bit-hack
nice
this передаётся в Борланде (как правило) через eax, всё правильно, только речь идёт об MSVC, так что неявный параметр - ecx.
| Сообщение посчитали полезным: |
![](img/s7.gif) Ранг: 303.7 (мудрец), 4thx Активность: 0.19↘0 Статус: Участник 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.02↘0 Статус: Участник
|
Создано: 01 ноября 2005 15:41 · Личное сообщение · #22
Bit-hack
Садись. Два.
В MSVC++ нет класса таймера. Таймер создаётся через вызов SetTimer(…), после чего пишется callback-функция, или обработчик сообщения ХХХ::OnTimer(UINT nIDEvent).
| Сообщение посчитали полезным: |
![](img/s7.gif) Ранг: 303.7 (мудрец), 4thx Активность: 0.19↘0 Статус: Участник tPORt Manager
|
Создано: 01 ноября 2005 18:32 · Личное сообщение · #23
Step пишет:
++
СукС. Я лучше буду писать без ООП. Т.к. ООП - сукс
| Сообщение посчитали полезным: |
![](img/s4.gif) Ранг: 90.3 (постоянный), 1thx Активность: 0.03↘0 Статус: Участник
|
Создано: 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;
По ходу дела эта конструкция выполняется быстрее, а в чём тогда отличия?
| Сообщение посчитали полезным: |
![](img/s4.gif) Ранг: 90.3 (постоянный), 1thx Активность: 0.03↘0 Статус: Участник
|
Создано: 01 ноября 2005 23:27 · Поправил: SLayer · Личное сообщение · #25
<< DELETE ME >>
| Сообщение посчитали полезным: |
![](img/s7.gif) Ранг: 303.7 (мудрец), 4thx Активность: 0.19↘0 Статус: Участник tPORt Manager
|
Создано: 02 ноября 2005 06:06 · Личное сообщение · #26
SLayer пишет:
а можно ли Олли так и заставить показывать в таком стиле
IMHO нет. Оля работает с ужо скомпилированным файлом, а в таком файле обычно нет инфы о именах переменных.
SLayer пишет:
а как будет вглядить кострукция такого вида:
А х.з. я не помню что она значит в делфи. На си пиши.
| Сообщение посчитали полезным: |
Ранг: 64.6 (постоянный) Активность: 0.02↘0 Статус: Участник
|
Создано: 02 ноября 2005 11:37 · Личное сообщение · #27
SLayer пишет:
а как будет вглядить кострукция такого вида:
with Timer do begin
Interval := 1000;
Enabled := True;
end;
Тебе что в лом дебагером дельфина посмотреть ?
SLayer пишет:
По ходу дела эта конструкция выполняется быстрее, а в чём тогда отличия?
С какой это радости она быстрее исполняется ?
| Сообщение посчитали полезным: |
Ранг: 60.4 (постоянный) Активность: 0.03↘0 Статус: Участник
|
Создано: 05 марта 2006 17:44 · Личное сообщение · #28
По поводу первого поста: в IDA 4.8 есть так называемые FLIRT-сигнатуры. Они распозают библиотечные и стандартные функции. Например вместо call sub_xxxxxxxx будет call strcpy, также присваиваются имена параметрам. ИМХО при исследовании ООП-программ это незаменимая вещь
| Сообщение посчитали полезным: |
Ранг: 60.4 (постоянный) Активность: 0.03↘0 Статус: Участник
|
Создано: 06 марта 2006 13:37 · Личное сообщение · #29 |