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

 eXeL@B —› Основной форум —› Владельцам Хекс-Рейз 1.2/1.3
. 1 . 2 . >>
Посл.ответ Сообщение

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

Создано: 01 октября 2010 17:37
· Личное сообщение · #1

Люди! Сделайте доброе дело, надо сделать сишный листинг игры, над декомпиляцией которой уже почти год бьется наша славная команда
Но из-за кучи глюков старого хекс-рейза 1.1 работа превратилась в тупую рутину по их устранению

Вот сам ехе-шник: ifolder.ru/19564478

Всего-то сделать - File - Produce File - Create C file... - и результат куда-то выложить...
Заранее спасибо!


П.С. Кому интересно, вот наш проект: www.assembla.com/code/bb7/subversion/nodes




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 01 октября 2010 17:44 · Поправил: reversecode
· Личное сообщение · #2

глюки? или фитчи? типа плавающей точки и mmx ?

зы мельком глянул http://www.assembla.com/code/bb7/subversion/nodes/RenderD3D3.c?rev=184 - смешно


hr = (**(_DWORD **)(pD3DRenderer->dword_040098) + 128)(*(_DWORD *)(pD3DRenderer + 262296), 0);

за вас это ни один хекс рейс не разберет
это нужно ручками разбирать
и так далее..

думаю вам нужно научится пользоватся этим инструментом для начала



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

Создано: 01 октября 2010 17:56
· Личное сообщение · #3

Нет, речь идет как раз о глюках... особенно часто в операциях с плавающей точкой



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

Создано: 01 октября 2010 17:58
· Личное сообщение · #4

не говоря уже о
#error "There were 52 decompilation failure(s) on 1866 function(s)"



Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 01 октября 2010 18:27
· Личное сообщение · #5

xdiablo
Неудивительно, что ошибки, импорт для начала бы восстановили нормально...
Code:
  1. #error "There were 90 decompilation failure(s) on 2016 function(s)"


reversecode
+1




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 01 октября 2010 18:41 · Поправил: Модератор
· Личное сообщение · #6

Я удивлю, даже последний рейс периодически лажает. Причём порой на линейных участках, что уж говорить и про более сложные, посему я настоятельно рекомендую, не цепляться за него зубами.
Топик закрою, обсуждать нечего. У кого есть желание-кидайте сорцы автору в личку.
З.Ы. Открыл обратно по просьбе автора.



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

Создано: 02 октября 2010 20:23
· Личное сообщение · #7

int
ты не мог бы пояснить детальнее, что хотел сказать, потому как те 52 функции из 1866 не декомпилировались именно из-за ошибок хекс-рейза
например:
#error "FFFFFFFF: variables would overlap: edx/4 and edx/8 (funcsize=182)"

насчет корректировки параметров знаю, но не помогает
ну и в новом хексрейз эти вещи ильфак исправил

П.С. вчера вышел хексрейз 1.4 - читаю ченджлог и вижу исправления, с которыми сталкивался....




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 02 октября 2010 20:35
· Личное сообщение · #8

xdiablo пишет:
#error "FFFFFFFF: variables would overlap: edx/4 and edx/8 (funcsize=182)"

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



Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 02 октября 2010 20:37
· Личное сообщение · #9

xdiablo
Короче файл, который ты кидал, кривой. Скорее всего дамп после протектора. Если есть оригинальный, то лучше бы ты кинул его. Строку которую я привёл от лучей 1.2.



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

Создано: 02 октября 2010 21:15
· Личное сообщение · #10

уже почти год бьется наша славная команда

Да, это явно не ОЕП шестого вижуала - это какаято функция:
Code:
  1. 004CD81E >/$ 55             PUSH EBP
  2. 004CD81F  |. 8BEC           MOV EBP,ESP
  3. 004CD821  |. 6A FF          PUSH -1
  4. 004CD823  |. 68 60B14D00    PUSH MM7_-_ко.004DB160
  5. 004CD828  |. 68 900F4D00    PUSH MM7_-_ко.004D0F90                   ; SE handler installation
  6. 004CD82D  |. 64:A1 00000000 MOV EAX,DWORD PTR FS:[0]
  7. 004CD833  |. 50             PUSH EAX
  8. 004CD834  |. 64:8925 000000>MOV DWORD PTR FS:[0],ESP
  9. 004CD83B  |. 83EC 58        SUB ESP,58
  10. 004CD83E  |. 53             PUSH EBX
  11. 004CD83F  |. 56             PUSH ESI
  12. 004CD840  |. 57             PUSH EDI
  13. 004CD841  |. 8965 E8        MOV DWORD PTR SS:[EBP-18],ESP
  14. 004CD844  |. FF15 4C814D00  CALL DWORD PTR DS:[4D814C]
  15. 004CD84A  |. 33D2           XOR EDX,EDX


-----
Надежда - есть худшее из зол, ибо она продлевает наши страдания.© Ф. Ницше





Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 02 октября 2010 21:21
· Личное сообщение · #11

0x4CD81E thehardyhome.com/software/VS97_SP3/all/vc/crt/src/crt0.c



Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 02 октября 2010 21:21
· Личное сообщение · #12

gena-m
Разочарую) это действительно OEP.



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

Создано: 02 октября 2010 22:52
· Личное сообщение · #13

Если топикстартер выложит дистрибутив, видно будет, а пока меня терзают смутные сомнения что всего одна АПИ в начале и та в небо смотрит.

004CD844 |. FF15 4C814D00 CALL DWORD PTR DS:[4D814C]

Code:
  1. 004D8144    70 CD 0D 00    82 CD 0D 00  pН..‚Н..
  2. 004D814C    8E CD 0D 00    9C CD 0D 00  ЋН..њН..
  3. 004D8154    B0 CD 0D 00    C2 CD 0D 00  °Н..ВН..


reversecode
Непонятно, причем здесь адрес ОЕП и wWinMain

-----
Надежда - есть худшее из зол, ибо она продлевает наши страдания.© Ф. Ницше




Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 02 октября 2010 23:00
· Личное сообщение · #14

gena-m
Я не знаю что у вас куда смотрит, но IDA прекрасно справилась вместе со своим FLIRT. reversecode правильно тыкнул пальцем на исходник стаба MS VC++. Внима-а-ательно посмотри на код в исходнике и на код на EP. Игра найди 10 отличий)




Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 03 октября 2010 02:50 · Поправил: ClockMan
· Личное сообщение · #15

xdiablo пишет:
Вот сам ехе-шник:

Файл игры Might and Magic 7 скомпелирован Microsoft Visual C++ 6.0 игра выпущена для старой версии винды,(windows 98,me) импорт нормальный ;) oep оригинальный.смотрит в небо потомучто нехвотает для полноты анализа MM7TEXT.DLL

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.




Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

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

ClockMan
А тот факт, что код лежит между хедером и первой секцией это тоже нормально? А то, что между MM7TEXT.DLL и остальным импортом лежат FPU константы тоже нормально? Это анпак и при том кривой. Попробуйте хотя бы ребилд сделать в PETools. Для нормальной проги ребилд почти ничего не даёт.

Короче топик-стартер пусть выкладывает исходный оригинальный файл игры, иначе я сам закрою тему.




Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 03 октября 2010 12:02
· Личное сообщение · #17

int пишет:
А тот факт, что код лежит между хедером и первой секцией это тоже нормально?

Где ты это увидел?
рис.

если бы прогу анпакали то pe хидере остаются данные об удалённых секциях там их нет.

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.




Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 03 октября 2010 12:19
· Личное сообщение · #18

Я имел в виду в самом хедере код. Но видимо, перепутал с другой прогой. В любом случае, если это не анпак:
Code:
  1. .text:00401022                 mov     ecx, offset dword_4F8580 ; очень
  2. .text:00401027                 jmp     $+5
  3. .text:0040102C                 mov     eax, ecx
  4. .text:0040102E                 push    3Ch
  5. .text:00401030                 pop     ecx
  6. .text:00401031                 lea     edx, [eax+4]
  7. ...
  8. fld     dword ptr ds:byte_4D8410+2D4h
  9. ...
  10. fadd    dword ptr ds:byte_4D8410+354h

то примеры в студию, где ещё такое можно встретить.

А "красивые" Raw и Virtual Size ни о чём не говорят?




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 03 октября 2010 13:45 · Поправил: reversecode
· Личное сообщение · #19

Code:
  1. .text:00401022                 mov     ecx, offset dword_4F8580 ; очень
  2. .text:00401027                 jmp     $+5

сюда этот джамп потому что процедура два раза обьявлена а компилятор соптимизировал
Code:
  1. .text:0040102C                 mov     eax, ecx
  2. .text:0040102E                 push    3Ch
  3. .text:00401030                 pop     ecx
  4. .text:00401031                 lea     edx, [eax+4]

дурная оптимизация студии
Code:
  1. .data:004DF00C                 dd offset sub_401022

это код на инициализации в конструкторах

Code:
  1. .idata:004D8410                 extrn byte_4D8410:byte:4404h
  2. .idata:004DC814 ;


нужен полный набор DLL
или хотя бы SMACKW32.DLL
возможно кривой интерфейс для взаимо использования если она само сборная



Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 03 октября 2010 13:57
· Личное сообщение · #20

reversecode
Raw Size не выровненный это тоже всё стандартно? Я не к коду придирался, а к тому, что данные лежат в таблице импорта.




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

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

флоат может лежать - допускаю
а вот найти куда должно указывать(и на какае смещение)
можно по
Code:
  1. .text:004D13BD                 push    ebp
  2. .text:004D13BE                 mov     ebp, esp
  3. .text:004D13C0                 push    0FFFFFFFFh
  4. .text:004D13C2                 push    4DB318h
  5. .text:004D13C7                 push    offset unknown_libname_59
  6. .text:004D13CC                 mov     eax, large fs:0

4DB318 должен указывать на таблицу SEH
а не в импорт(хотя тоже допускаю что в древние времена кто то что то напортачил в компиляции и SEH находится аж в другой DLL)
и так таблица SEH должна быть там где стоит xref на
Code:
  1. .text:004D1424                 push    [ebp+var_14]

и исходя из найденого уже считать какое +- значение от 4DB318h
должно быть от всего кривого SEH

нужны две длл MM7TEXT.DLL и SMACKW32.DLL
в крайнем случае вопрос к ТС
у них этот exe работает? или они год бьютса над тем что не работает вообще)



Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

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

reversecode
http://www.google.ru/search?sourceid=chrome&ie=UTF-8&q=Might+and+Magic +VII ;)

Я думаю перед нами NoCD




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 03 октября 2010 14:26
· Личное сообщение · #23

не, пусть они сами ищут, это ж не я xdiablo пишет:
над декомпиляцией которой уже почти год бьется наша славная команда

весело если он(exe) у них еще и не запускается

и вообще у меня такой вопрос к xdiablo
почему в том idb что вы дали сделано только 1% от всей работы что видно по www.assembla.com/code/bb7/subversion/nodes
когда видно по проекту что idb должен быть сожержательный
или я в чем то ошибаюсь?



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

Создано: 03 октября 2010 22:11
· Личное сообщение · #24

Каюсь, забыл прикрепить дллки, вот они: ifolder.ru/19592669

reversecode
я правильно понял, что если декомпильнуть старым хексрейз 1.0, то некоторые функции таки декомпильнутся?



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

Создано: 03 октября 2010 22:16
· Личное сообщение · #25

по поводу 1% всей работы - мне как по большей части программеру, чем реверсеру удобнее все делать в вижуал студии, в ИДА только корректирую параметры/массивы - то, что нудно потом пересчитывать руками

что касается работоспособности проекта, то результаты можно оценить здесь:
www.celestialheavens.com/forums/viewtopic.php?t=10974&postdays=0&postorder=asc&start=60




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 03 октября 2010 22:26
· Личное сообщение · #26

так а тот exe что прикрепили в начале - он работоспособный?

xdiablo пишет:
что касается работоспособности проекта, то результаты можно оценить здесь:

фигасе, то что вы декомпилите еще и работает?

xdiablo пишет:
по поводу 1% всей работы - мне как по большей части программеру, чем реверсеру удобнее все делать в вижуал студии, в ИДА только корректирую параметры/массивы - то, что нудно потом пересчитывать руками

вы меня не поняли
судя по разобраному коду, idb должен содержать намного больше стуктур чем две которые присутсвуют в том idb что вы показали




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 03 октября 2010 22:27 · Поправил: reversecode
· Личное сообщение · #27

xdiablo пишет:
я правильно понял, что если декомпильнуть старым хексрейз 1.0, то некоторые функции таки декомпильнутся?

ну если не сможете пофиксить, то да
я для таких случаев держу другой хексрейс на другом хоткее



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

Создано: 03 октября 2010 23:11
· Личное сообщение · #28

reversecode пишет:
фигасе, то что вы декомпилите еще и работает?


да работает, уже добрую половину исходников разобрали
более того, добиться самой работоспособности декомпилированного листинга не так и сложно
главная работа идет по полному разбору исходников - что и как делается и за что отвечает
ну и параллельно идет работа по переводу на новый движок

если кому-то интересно - присоединяйтесь, нам любая помощь сейчас нужна



Ранг: 226.0 (наставник), 67thx
Активность: 0.160
Статус: Участник

Создано: 03 октября 2010 23:52
· Личное сообщение · #29

xdiablo пишет:
игры, над декомпиляцией которой уже почти год бьется наша славная команда

неужели не проще/быстрее написать заново ?



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

Создано: 08 октября 2010 18:08
· Личное сообщение · #30

ну вот, файлы скачало куча народу, а так никто и не выложил результат

ехе-шник: ifolder.ru/19564478
дллки: ifolder.ru/19592669

если кто-то, все-таки, декомпилирует - напишите в ПМ, т.к. тему, я так чувствую, ща закроют


. 1 . 2 . >>
 eXeL@B —› Основной форум —› Владельцам Хекс-Рейз 1.2/1.3
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати