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

 eXeL@B —› Основной форум —› Как нормально дизассемблировать эту программу?
Посл.ответ Сообщение

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

Создано: 06 января 2006 20:16 · Поправил: Skyer
· Личное сообщение · #1

Это не программа, а игра - старая добрая Civization 1 Мне непонятно, как её распаковать так, чтобы и программа запускалась и дизассемблер правильно дизассемблировал?

Распаковывал upx - распаковалась, но при запуске писала "Overlay not found" и вылетала.

Файл civ.exe в аттаче.



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

Создано: 06 января 2006 20:19 · Поправил: Skyer
· Личное сообщение · #2

Аттач ниже



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

Создано: 06 января 2006 20:39 · Поправил: Skyer
· Личное сообщение · #3

Третья попытка

09a6_CIV.rar.zip




Ранг: 122.3 (ветеран)
Активность: 0.050
Статус: Участник

Создано: 06 января 2006 21:43 · Поправил: intty
· Личное сообщение · #4

cup386
Описание: Распаковывает DOS EXE, файлы COM в т.ч. упакованные PkLite, Diet, Protect и ЛЮБЫМ другим! V86 многозадачный трассировщик; ЭМУЛЯТОР i80386 CPU - полная поддержка Real Mode, очередь процессора и эмуляция регистров DRX. Встроенный диалоговый интерфейс, не уступающий Turbo Debugger регистры X0B BPX, BPM, BPR, BPIO, BPINT.

оно?



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

Создано: 06 января 2006 22:34
· Личное сообщение · #5

Может быть и тот, но как им пользоваться? Через cup386 civ.exe /1 прогнал, но никаких файлов прога не оставила и ничего не распаковала.




Ранг: 122.3 (ветеран)
Активность: 0.050
Статус: Участник

Создано: 06 января 2006 23:57
· Личное сообщение · #6

вот жеж поколение избалованное гуи интерфейсом. ;]
с ним ридми на 600 строк, там все расписано ) да и сам он пишет как им пользоваться, если без параметров пускать.

ладно, попробуй так: cup386 civ.exe civ_unp.exe /1



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

Создано: 07 января 2006 00:58
· Личное сообщение · #7

И ридми был прочитан и эта строчка запускалась. Но никаких файлов не сохранилось.




Ранг: 122.3 (ветеран)
Активность: 0.050
Статус: Участник

Создано: 07 января 2006 02:04
· Личное сообщение · #8

а он точно упакован? мне кап писал, что может файл вообще не упакован?
и архиватром он сжимается в два раза почти..



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

Создано: 07 января 2006 02:37 · Поправил: Skyer
· Личное сообщение · #9

Он упакован, но как-то странно. Может быть внутренний упаковщик там какой-то. Такое ощущение, что в определённых местах файл запакован, а в определённых - нет. Или распаковывается плохо или неправильно. Дело в том, что он запускается, и реально игровым является именно этот "упакованный" файл. А когда его распаковываешь unp.exe, он становится лишь чуть-чуть больше - 314 580. При этом данные рассортированы более красиво, но часть текстовых данных(сужу по тексту в файле) исчезает. Например, в "запакованном" файле есть стартовое меню в виде текста, а в "распакованном" - нет.

При этом после "распаковки"(unp.exe) файл не запускается. В XP вылетает без текста ошибки, а в 98-ом писал "Overlay not found". При том, что интересно - этого текста в "распакованном" файле тоже нет




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 07 января 2006 07:03
· Личное сообщение · #10

Skyer дык там оверлей и есть. Посмотри в опциях унпакера учет оверлея.

-----
Yann Tiersen best and do not fuck





Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 07 января 2006 11:28
· Личное сообщение · #11

или руками прикрути

-----
Yann Tiersen best and do not fuck




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

Создано: 07 января 2006 17:03
· Личное сообщение · #12

В unp.exe есть опция "-r" - делаю так, файл становится размером 188 179 и не запускается.

Если честно, я не знаю, что такое оверлей. Я искал информацию в Интернете, но так и не понял. Что это такое и что с ним делать?




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 08 января 2006 10:04
· Личное сообщение · #13

Оверлей - это часть программы, которая не грузится в оператиу. Посмотри в PE едиторе поле SizeOfImage Затем Overley=SizeOfFile-SizeOfImage.
Открывай файл в хекс едиторе, прыгай в конец и от конца к началу отсчитай кусок = Overley. Это и будут утеряные данные.

-----
Yann Tiersen best and do not fuck




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

Создано: 08 января 2006 13:56
· Личное сообщение · #14

Какой PE Editor берёт досовские файлы?

В принципе, информация об overlay есть в unp.exe, я "распаковал" civ.exe, после чего из старого "пакованного" файла с конца я отсчитал количество байтов, которое там указано, приставил к "распакованному" файлу - не запускается.



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

Создано: 09 января 2006 07:31
· Личное сообщение · #15

Skyer
В досе нет PE файлов, там свой формат, поэтому
Skyer пишет:
Какой PE Editor берёт досовские файлы?

Тоже нет

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




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

Создано: 10 января 2006 00:24 · Поправил: Skyer
· Личное сообщение · #16

Значит, тема вот какая. Я хочу поредактировать этот файл, поиграться с ним. Изменить что-то, добавить или изменить новые функции в игре и т.д.

Для этого надо знать как он работает. В принципе, и в таком полуупакованном файле он редактируется. Я нашёл то, как программа вставляет в игру некоторые тексты(а зная, где находится определённый текст, можно изменять и какую-то функцию в игре, к которой этот текст относится).

В игре есть "точка отсчёта" для некоторых текстов - offset 2484D. И эти тексты находятся по следующим строчкам:

mov ax, 0XXXX
push ax

После чего(сразу или через пару строк) делается какой-нибудь "call".

XXXX - количество байтов после 2484D.

Но так ловятся не все тексты. И вот задача - найти как ловятся в игре остальные тексты. Эти я нашёл(IDA их не отображает, поэтому и вопрос был о распаковке) благодаря тому, что нашёл переменную, которая отвечает за деньги ("w,[si][0C0F6]" - в Hiew). Тем самым отследив процессы, где количество денег изменяется на фиксированную сумму(50, 100) я смог найти принцип впечатывания нескольких текстов. А остальные как найти? За что здесь можно зацепиться?

Жду советов или взлома, если кому интересно

Игру слить можно на abandonia.com (сайт старых игр)


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


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