Форум TeamX
   Home   Members  
Pages: 1 [2] 3 |   Go Down
 
Author Topic: Декомпиляция движка  (Read 5339 times)
helios2000
Guest
Re: TEAM x WE NEED YOU! Samij Waschnij Mod dlja Fallout 2
« Reply #15 on: 25 April 2008, 22:46:57 »

Code:
//----- (004C7E6C) --------------------------------------------------------
int __stdcall sub_4C7E6C(double a1)
{
  int v1; // ecx@2
  int v2; // edx@6
  int v14; // eax@6
  int v15; // [sp+Ch] [bp-4h]@1
  __int64 v16; // [sp+4h] [bp-Ch]@2
  int v17; // [sp+0h] [bp-10h]@6

  dbl_51DF18 = a1;
  v15 = 0;
  do
  {
    __asm
    {
      fld     ds:dbl_51DF18
      fild    [esp+10h+var_4]
    }
    IF();
    __asm
    {
      fst     [esp+10h+var_C]
      fcomp   ds:dbl_50F97C
      fnstsw  ax
      sahf
    }
    if ( !(_CF | _ZF) )
    {
      *((_DWORD *)&v16 + 1) = v1;
      *(_DWORD *)&v16 = 0;
    }
    __asm
    {
      fldz
      fcomp   [esp+10h+var_C]
      fnstsw  ax
      sahf
    }
    if ( !(_CF | _ZF) )
      v16 = 0i64;
    __asm { fld     [esp+10h+var_C] }
    _CHP();
    __asm { fistp   [esp+10h+var_10] }
    v2 = v15;
    byte_673390[v15] = v17;
    v14 = v15++ + 1;
  }
  while ( v14 < 64 );
  return sub_4C73E4((int)byte_673090, v2);
}

My Programm can embed headers.    
I believe it is possible to convert correctly.
The headers we need:
e:\WATCOM\H\string.h
e:\WATCOM\H\stdlib.h
e:\WATCOM\H\stdarg.h
e:\WATCOM\H\ctype.h
e:\WATCOM\H\NT\wtypes
e:\WATCOM\H\NT\winver.h
e:\WATCOM\H\NT\winuser.h
e:\WATCOM\H\NT\winsvc.h
e:\WATCOM\H\NT\winspool.h
e:\WATCOM\H\NT\winsock.h
e:\WATCOM\H\NT\winreg.h
e:\WATCOM\H\NT\winperf.h
e:\WATCOM\H\NT\winnt.h
e:\WATCOM\H\NT\winnls.h
e:\WATCOM\H\NT\winnetwk.h
e:\WATCOM\H\NT\wingdi.h
e:\WATCOM\H\NT\winerror.h
e:\WATCOM\H\NT\windows.h
e:\WATCOM\H\NT\windef.h
e:\WATCOM\H\NT\wincon.h
e:\WATCOM\H\NT\winbase.h
e:\WATCOM\H\NT\unknwn.h
e:\WATCOM\H\NT\shellapi.h
e:\WATCOM\H\NT\rpcnterr.h
e:\WATCOM\H\NT\rpcnsip.h
e:\WATCOM\H\NT\rpcnsi.h
e:\WATCOM\H\NT\rpcndr.h.
end else.

I do not say that I have the correct code. I ask whether you can start so what.
Why are you so hostile?
Ray
Глобальный модератор
Posts: 220

336150559
Re: TEAM x WE NEED YOU! Samij Waschnij Mod dlja Fallout 2
« Reply #16 on: 25 April 2008, 23:05:02 »

We don't Улыбка Sorry if it seems like Подмигивающий Look at your code. We already saw something like that a long time ago. Your code is unusable. You can't write any modiffications with it.

P.S. Я думаю привидённый выше пример яркое тому доказательство. Что и требовалось доказать.
helios2000
Guest
Re: TEAM x WE NEED YOU! Samij Waschnij Mod dlja Fallout 2
« Reply #17 on: 25 April 2008, 23:15:19 »

Ok. Shame.
But I have use first Rec Studi. I think Ide Pro with Hex Aray Plugin is better.
At your place I would look at this Prog. Maybe you get it is still out.
No headers are available?
Mr.Wolna
Пользователь
Posts: 16


Re: TEAM x WE NEED YOU! Samij Waschnij Mod dlja Fallout 2
« Reply #18 on: 25 April 2008, 23:22:14 »

Neuschelji ne4jo newijdet Обеспокоенный


btw: Ja ozen 4nju waschu rabotju rebjata. Ja nekatoroje wremja tamju ma3ad pisal wam na Milo no nepalu4jil otwetja moschna mne atkritj nowij topic,? u menja jest parju waprosow k mr fixitju!
Jordan
Пользователь
Posts: 416

476228895
Re: Декомпиляция движка
« Reply #19 on: 18 August 2008, 07:14:22 »

helios2000

News about project?

download source code fallout2.exe?

Воспрянет Россия, из праха отцов
Расправятся крылья, миллионов сердец
Поднимут все головы и грудью вздохнут
И громка скажут, что пришли
Мы пришли, со столетней войны
Mynah
Модератор
Posts: 29


Re: Декомпиляция движка
« Reply #20 on: 18 August 2008, 09:01:00 »

Jordan,
А какие у них могут быть новости? :) В теме ж вроде ясно написано. Ребята нашли "декомпилятор си", радостно запихнули в него exe'шник фола, тот им выдал... Эмм... Как бы назвать этот набор команд ассемблера оформленных синтаксисом си... В общем, штука получилась крайне бесполезная и неудобная. Вдобавок, зачем-то просят стандартные хэдеры виндовые, которые свободно валяются в инете - бери не хочу. Но наши великие программисты об этом не очень знают ;)

И, да, вот такое вот выкапывание бесполезной темы 4-х месячной давности - не есть хорошо. Учти, на всякий.
Hexxx
Пользователь
Posts: 3


Re: Декомпиляция движка
« Reply #21 on: 11 September 2011, 02:02:39 »

Есть новая идея: http://www.fallout-archives.com/forums/index.php?showtopic=5472

Я уже код восстанавливать начал, совсем мало, 40 кб асма из 30 мб. Но дорогу осилит идущий. Что думаете?
Ray
Глобальный модератор
Posts: 220

336150559
Re: Декомпиляция движка
« Reply #22 on: 11 September 2011, 11:24:39 »

Думаю что это бесполезное занятие, без обид Улыбка Поясню мысль... Я в соседней (относительно) теме упоминал когда-то, что работаю над одним проектом (ныне мной успешно закрытым Улыбка). Идея была в том, что я вставил в движёк вызов собственной библиотеки и потихоньку переписывал код движка своим, на си. Который даже работал... пока дело касалось простых функций вроде main, WindowProcedure, Init и прочего. Но потом я понял что дальше тупик. Согласовывать значение регистров, с учётом что компилятор может оптимизировать код и в итоге получать жуткую кашу... Это адский труд. Даже если сказать ему ничего не трогать... Всё равно - это занятие не благодарное - переписать простые функции можно, но смысл? Сложные переделать не получится, т.к. там всё настолько сложно завязано, что... Вобщем словами не передать Улыбка А для "простых" вставок и возможностей sfall хватит с головой. Проще написать двиг с нуля, чем серьёзно переделать этот, сколь банально это б не звучало. Поверь, не трать время зря. У меня опыта поболее чем на 40кб Веселый Если решишь продолжить - ты видел линк на декомпилированный мной двиг в псевдокод с помощью REC с моими комментариями? Возможно пригодится - там есть что почитать Улыбка Делать точечные правки можно в принципе, что опыт Timeslip и мой, а также наших коллег доказывает. Но не более.

P.S. По началу эти перспективы действительно выглядят радужно, у меня тоже всё вначале получалось Улыбка А дальше это болото Подмигивающий
Hexxx
Пользователь
Posts: 3


Re: Декомпиляция движка
« Reply #23 on: 11 September 2011, 13:32:04 »

Quote
У меня опыта поболее чем на 40кб
Ну начинается...

Quote
Проще написать двиг с нуля, чем серьёзно переделать этот
Знаете почему заказывают декомпиляцию прошивок дорогих игровых автоматов, вместо того чтобы у китайцев заказать "клон" написаный с нуля?

Quote
Если решишь продолжить - ты видел линк на декомпилированный мной двиг в псевдокод с помощью REC с моими комментариями
Неа, когда-то пробовал гуглить, не нашел. Можно урл?
Ray
Глобальный модератор
Posts: 220

336150559
Re: Декомпиляция движка
« Reply #24 on: 11 September 2011, 15:16:07 »

Quote
Ну начинается...

Заканчивается Подмигивающий Я это написал не для того, чтобы самолюбие потешить, вообще-то. Я ковырянием конкретно этого экзешника занимался 6 лет и знаю его не хуже Timeslip. Это если не вдаваться в кокретные навыки программирования и реверс-инженеринга. Это просто был совет обратить внимание на слова человека который "в теме". И не жалеть в дальнейшем о потеряном времени. Я прекрасно осведомлён насчёт второй фразы - я тоже долго думал прежде, чем начать переписывать двиг. Однако работа себя не опровдала. Посмотреть некоторые схемы реализации этого двига, чтобы создать свой - куда ни шло... А биться головой в стену хитросплетений ассемблерного кода... Для чего? Воссоздать в точности графическую подсистему? А стоит ли, если её всё равно надо менять хотя бы на поддержу 24 бит цветов. Просто цена затраченых усилий несоизмерима с полученным результатом. И уверен будут возникать такие баги, на отладку которых уйдёт весь энтузиазм. Причём багов подхода в целом, а не программирования в часности. Я верю в твою квалификацию, раз уж ты этим уже занимаешься - но задумайся, стоит ли?

На самом то деле двиг фолла довольно прост. Всё уже давно задокументировано. Есть заморочки с некоторыми расчётами, но на НМА народ уже давно лопатит это направление и есть патчи для sfall. Так что в принципе как мне кажется - просто серьёзно никто за это дело не брался. А те кто брались или не имели время\мотивацию\квалификацию. Я не призываю писать свой двиг. Это не веселее чем ковырять существующий и для этого надо море времени. Но всё же это более реально.

Хотя если есть конкретные вопросы - можешь говорить смещения в двиге - может что вспомню "по старой памяти", учитывая что некоторые наработки у меня всё же остались Улыбка

P.S. Сайт где дока была выложена давно умер, а сама дока осталась дома, в другой стране. Поеду в гости - постараюсь не забыть захватить Улыбка
P.P.S Не принимай мои слова близко к сердцу - это "тимыксовый синдром" Веселый Просто ты спросил мнения - я тебе ответил Улыбка Особенно учитывая объём работ и постановку вопроса.
Wasteland Ghost
Администратор
Posts: 869

Маленькое Злое Привидение


Re: Декомпиляция движка
« Reply #25 on: 11 September 2011, 17:04:54 »

Quote from: Hexxx on 11 September 2011, 13:32:04
Ну начинается...
Просить мнения знающих людей и тут же ставить их знания под сомнение — нелогично. А знающий человек тут как раз Ray.
Hexxx
Пользователь
Posts: 3


Re: Декомпиляция движка
« Reply #26 on: 11 September 2011, 18:37:56 »

Quote
Хотя если есть конкретные вопросы - можешь говорить смещения в двиге - может что вспомню "по старой памяти"
Ссылку на "декомпилированный мной двиг в псевдокод с помощью REC" можно? Или вот это как раз про нее и было:
Quote
P.S. Сайт где дока была выложена давно умер, а сама дока осталась дома, в другой стране. Поеду в гости - постараюсь не забыть захватить
?

Quote
Просить мнения знающих людей и тут же ставить их знания под сомнение — нелогично. А знающий человек тут как раз Ray.
Т.е. ставить мое мнение под сомнение - логично. И логично по-умолчанию меня записать в незнающие.
« Last Edit: 11 September 2011, 18:56:44 by Hexxx »
Freeman
Пользователь
Posts: 50


Re: Декомпиляция движка
« Reply #27 on: 11 September 2011, 19:04:07 »

Ссылка на декомпилированный не мной двиг в псевдокод с помощью REC. Может и новее версия есть, я не в курсе.
Ray
Глобальный модератор
Posts: 220

336150559
Re: Декомпиляция движка
« Reply #28 on: 11 September 2011, 19:53:29 »

Quote
Т.е. ставить мое мнение под сомнение - логично. И логично по-умолчанию меня записать в незнающие.

Бррр... Где ты это усмотрел то? Улыбка Я наоборот высказался чётко насчёт квалификации. Не надо всё воспринимать так категорично. Просто твой вопрос был в духе всех новичков - я вот тут собрался замутить "глобальный мод\новый двиг\новую игру", что думаете? Пусть и прозвучавший в другом контексте. Именно это я в шутку назвал синдромом тимы Улыбка Не принимай на свой счёт Подмигивающий Я вот что сказать хочу. Если ты задал вопрос - "что думаете?" то я ж надеюсь ты не расчитывал получить ответ в духе - "вау, круто, молодец, вот мне бы так..."? Если тебя действительно интересовал ответ - то я думаю тебе интересны ответы по существу. А опыт у меня поверь большой. И что самое важное - я делал именно ту же работу, что и ты начал и я в курсе объёма работ. И я логично предположил, что используя свой опыт я вполне могу давать подобные советы. Более того, если внимательно читать - я даже помощь предложил. И ещё - я не знаю, сколь старая версия выложена Freeman'ом, но в личку я спросил у тебя мыло и готов слить доступный мне в данный момент последний вариант (новее только через пару месяцев так как он остался в другой стране, как я уже говорил, и отпуск у меня только через месяц).

Я ни в коем случае не умоляю твоих заслуг, но поверь - 40кб это самое начало и капля в море. "Дальше будет хуже"  Веселый Ты хотел совет - ты его получил. А как им распорядиться - твоё дело. Перенести код из sfall в то, что делаешь ты - это не тоже, что переписать обработку кнопок с нуля скажем. Я коммитил в код sfall и в курсе что и как там сделано.

P.S. И вообще - дай хоть посмотреть на работу Улыбка Интересно ж блин Подмигивающий
P.P.S Вот так и складываются стереотипы - пришёл человек, делает полезное дело - пришли старожили и накинулись... К сожалению не все через некоторое время понимают, что мы хотели как лучше...
Ray
Глобальный модератор
Posts: 220

336150559
Re: Декомпиляция движка
« Reply #29 on: 11 September 2011, 19:56:58 »

Линк Freeman'а ведёт на какую-то совсем древнюю доку помоему. Вроде эта слегка новее Улыбка

P.S. И вообще - это даже не дока. Это скорее путевые заметки Улыбка Которые я набрасывал в течении некоторого времени "для себя". Без орфографии, корректности слов и фраз и прочая, прочая... Иногда на ходу... Информация кое-где вообще может быть не точной. Этот текст не предназначался в public. Залил я его просто так, чтобы не пропал Улыбка

P.P.S. Искать в документе символы // Все мои комментарии начинаются с них
« Last Edit: 11 September 2011, 20:04:47 by Ray »
Pages: 1 [2] 3 |   Go Up