LINUX.ORG.RU

Открытие файла


0

1

Здравствуйте,может вопрос глуп,но я в этом плохо разбираюсь) есть файл запуска игры cod4_lnxded,нужно открыть его и редактировать скрипты,возможно ли это сделать,спасибо)


Название файла определенно очень много нам говорит о его формате- Текстовый, бинарник...

Ranzor
()
Ответ на: комментарий от AITap

При вводе file cod4_lnxded выдает: cod4_lnxded: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.2.0, stripped

asdasd
() автор топика
Ответ на: комментарий от asdasd

Охренеть, как помогло. Это скрипт, бинарный файл, или что?

mopsene ★★★
()
Ответ на: комментарий от asdasd

Ну и какие скрипты Вы собираетесь в нём редактировать? Это же бинарные исполняемый файл.

Ищите другие файлы.

AITap ★★★★★
()
Ответ на: комментарий от mopsene

Нужно отредактировать его,добавив функцию,которая присутствует в другом таком же файле,можно поподробнее про Дизассемблер,где его можно скачать,спасибо)

asdasd
() автор топика

Закрыть потом не забудь.

anonymous
()
Ответ на: комментарий от asdasd

При помощи Дизассемблера не получилось открыть нормально,использовал hexedit

00000000 7F 45 4C 46 01 01 01 00 00 00 00 00 00 00 00 00 02 00 03 00 01 00 00 00 C0 A6 04 08 34 00 00 00 DC 18 14 00 .ELF........................4....... 00000024 00 00 00 00 34 00 20 00 08 00 28 00 1C 00 1B 00 06 00 00 00 34 00 00 00 34 80 04 08 34 80 04 08 00 01 00 00 ....4. ...(.........4...4...4....... 00000048 00 01 00 00 05 00 00 00 04 00 00 00 03 00 00 00 34 01 00 00 34 81 04 08 34 81 04 08 13 00 00 00 13 00 00 00 ................4...4...4........... 0000006C 04 00 00 00 01 00 00 00 01 00 00 00 00 00 00 00 00 80 04 08 00 80 04 08 0C 40 13 00 0C 40 13 00 05 00 00 00 .........................@...@...... 00000090 00 10 00 00 01 00 00 00 0C 40 13 00 0C D0 17 08 0C D0 17 08 94 BB 00 00 CC 24 8F 00 06 00 00 00 00 10 00 00 .........@...............$.......... 000000B4 02 00 00 00 30 40 13 00 30 D0 17 08 30 D0 17 08 F0 00 00 00 F0 00 00 00 06 00 00 00 04 00 00 00 04 00 00 00 ....0@..0...0....................... 000000D8 48 01 00 00 48 81 04 08 48 81 04 08 20 00 00 00 20 00 00 00 04 00 00 00 04 00 00 00 50 E5 74 64 1C 8E 11 00 H...H...H... ... ...........P.td.... 000000FC 1C 0E 16 08 1C 0E 16 08 9C 5C 00 00 9C 5C 00 00 04 00 00 00 04 00 00 00 51 E5 74 64 00 00 00 00 00 00 00 00 .........\...\..........Q.td........ 00000120 00 00 00 00 00 00 00 00 00 00 00 00 06 00 00 00 04 00 00 00 2F 6C 69 62 2F 6C 64 2D 6C 69 6E 75 78 2E 73 6F ..................../lib/ld-linux.so 00000144 2E 32 00 00 04 00 00 00 10 00 00 00 01 00 00 00 47 4E 55 00 00 00 00 00 02 00 00 00 02 00 00 00 00 00 00 00 .2..............GNU................. 00000168 83 00 00 00 9F 00 00 00 07 00 00 00 00 00 00 00 29 00 00 00 4D 00 00 00 86 00 00 00 06 00 00 00 00 00 00 00 ................)...M............... 0000018C 9E 00 00 00 40 00 00 00 72 00 00 00 9D 00 00 00 00 00 00 00 35 00 00 00 82 00 00 00 08 00 00 00 89 00 00 00 ....@...r...........5............... 000001B0 00 00 00 00 8B 00 00 00 94 00 00 00 31 00 00 00 00 00 00 00 00 00 00 00 90 00 00 00 79 00 00 00 5D 00 00 00 ............1...............y...]... 000001D4 00 00 00 00 76 00 00 00 00 00 00 00 96 00 00 00 70 00 00 00 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ....v...........p...P............... 000001F8 00 00 00 00 42 00 00 00 00 00 00 00 68 00 00 00 10 00 00 00 98 00 00 00 83 00 00 00 3E 00 00 00 2D 00 00 00 ....B.......h...............>...-... 0000021C 4E 00 00 00 3B 00 00 00 1B 00 00 00 00 00 00 00 8A 00 00 00 4A 00 00 00 5E 00 00 00 1F 00 00 00 8F 00 00 00 N...;...............J...^........... 00000240 9B 00 00 00 77 00 00 00 3C 00 00 00 8C 00 00 00 00 00 00 00 63 00 00 00 99 00 00 00 00 00 00 00 57 00 00 00 ....w...<...........c...........W... 00000264 52 00 00 00 9C 00 00 00 2C 00 00 00 6D 00 00 00 59 00 00 00 4B 00 00 00 00 00 00 00 5A 00 00 00 66 00 00 00 R.......,...m...Y...K.......Z...f... 00000288 00 00 00 00 00 00 00 00 00 00 00 00 12 00 00 00 6C 00 00 00 6B 00 00 00 33 00 00 00 00 00 00 00 48 00 00 00 ................l...k...3.......H... 000002AC 00 00 00 00 21 00 00 00 14 00 00 00 00 00 00 00 00 00 00 00 45 00 00 00 7F 00 00 00 1C 00 00 00 67 00 00 00 ....!...............E...........g... 000002D0 00 00 00 00 85 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0F 00 00 00 5F 00 00 00 00 00 00 00 88 00 00 00 ........................_........... 000002F4 00 00 00 00 60 00 00 00 46 00 00 00 00 00 00 00 8D 00 00 00 91 00 00 00 00 00 00 00 95 00 00 00 7D 00 00 00 ....`...F.......................}... 00000318 73 00 00 00 81 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 8E 00 00 00 62 00 00 00 09 00 00 00 s...........................b....... 0000033C 6E 00 00 00 3D 00 00 00 84 00 00 00 55 00 00 00 9A 00 00 00 00 00 00 00 93 00 00 00 0C 00 00 00 4C 00 00 00 n...=.......U...................L... 00000360 4F 00 00 00 00 00 00 00 78 00 00 00 7C 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 O.......x...|....................... 00000384 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .................................... 000003A8 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .................................... 000003CC 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 .................................... 000003F0 00 00 00 00 13 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1A 00 00 00 .................................... 00000414 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0E 00 00 00 00 00 00 00 05 00 00 00 00 00 00 00 .................................... 00000438 1D 00 00 00 19 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0A 00 00 00 00 00 00 00 .................................... 0000045C 37 00 00 00 2F 00 00 00 20 00 00 00 00 00 00 00 2A 00 00 00 28 00 00 00 17 00 00 00 00 00 00 00 00 00 00 00 7.../... .......*...(............... 00000480 00 00 00 00 00 00 00 00 3F 00 00 00 39 00 00 00 00 00 00 00 00 00 00 00 43 00 00 00 00 00 00 00 0B 00 00 00 ........?...9...........C........... 000004A4 00 00 00 00 00 00 00 00 32 00 00 00 49 00 00 00 00 00 00 00 2B 00 00 00 38 00 00 00 26 00 00 00 01 00 00 00 ........2...I.......+...8...&....... 000004C8 00 00 00 00 22 00 00 00 03 00 00 00 00 00 00 00 44 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1E 00 00 00 ...."...........D................... 000004EC 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 15 00 00 00 36 00 00 00 00 00 00 00 2E 00 00 00 47 00 00 00 ....................6...........G... 00000510 58 00 00 00 00 00 00 00 04 00 00 00 41 00 00 00 00 00 00 00 34 00 00 00 61 00 00 00 00 00 00 00 23 00 00 00 X...........A.......4...a.......#... 00000534 00 00 00 00 54 00 00 00 00 00 00 00 56 00 00 00 69 00 00 00 11 00 00 00 51 00 00 00 00 00 00 00 00 00 00 00 ....T.......V...i.......Q........... 00000558 00 00 00 00 71 00 00 00 00 00 00 00 6A 00 00 00 00 00 00 00 3A 00 00 00 75 00 00 00 00 00 00 00 00 00 00 00 ....q.......j.......:...u........... 0000057C 00 00 00 00 6F 00 00 00 30 00 00 00 5C 00 00 00 00 00 00 00 18 00 00 00

asdasd
() автор топика
Ответ на: комментарий от asdasd

Нужно отредактировать его,добавив функцию,которая присутствует в другом таком же файле

cp другой_такой_же его

должно помочь.

anonymous
()
Ответ на: комментарий от anonymous

Вы непоняли суть проблемы cod4_lnxded запускает версии игр call of duty 4,таких версий несколько,нужно открыть 2 бинарника различных версий и добавить часть содержимого одного бинарника в другой,из этого следует вопрос чем его открыть?

asdasd
() автор топика
Ответ на: комментарий от asdasd

Если Вы серьёзно, то править машинные коды вручную - это как совать пальцы под фрезу. Это же не plain-text скрипт. Попробуйте дизассемблировать оба файла и сравнить. Если отличия минимальны, то можно попробовать создать общий asm-файл, включающий все версии и скомпилировать его.

backbone ★★★★★
()
Ответ на: комментарий от backbone

backbone,понятно что я псих :D Но всё таки при помощи рук и гугла я попробую что нибудь сделать)) Какой дизассемблер лучше использовать,и если получиться это при помощь чего можно создать asm-файл и его компильнуть?

asdasd
() автор топика
Ответ на: комментарий от asdasd

На счёт «компильнуть» - это перегиб наверное.

objdump -d cod4_lnxded_1 > cod4_lnxded_1.s
objdump -d cod4_lnxded_2 > cod4_lnxded_2.s
vimdiff cod4_lnxded_1.s cod4_lnxded_2.s
Если файлы сильно различаются, то проще потребовать исходный код.
В лучшем случае, как отметили выше, удастся определить адрес функции запуска и подставить на её место свою через LD_PRELOAD, которая будет предлагать выбор.
А в чём проблема использовать два исполняемых файла cod4_lnxded_1 и cod4_lnxded_2 внутри скрипта к примеру, где будет предлагаться выбор?

backbone ★★★★★
()
Ответ на: комментарий от backbone

backbone,кое как разобрался с дампами,сделал для обоих бинарников,но vimdiff на debian не обнаружилось?как можно установить apt-get install vimdiff не помогает? ок даже если я найду отличия от двух файлов,как я узнаю какое мне нужно использовать?проблема использовать два файла в том,что они запускают две различные версии одной игры,мне нужно вытащить из одного бинарника в другой,не меняя при этом версии игры))может фантастика,но попробовать хочется))

asdasd
() автор топика
Ответ на: комментарий от asdasd

Можно простой diff. По отличиям можно определить адреса вызываемых функций (call, jmp и т.п.), узнать методом проб и ошибок, требует времени и усилий, надо полагать.

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

Что за функция, которую хотите вытащить и кто её будет вызывать?

backbone ★★★★★
()
Ответ на: комментарий от asdasd

А из какого места будет происходить прыжок на эту функцию? Ведь никакой информации в исходном бинарнике о ней нет.

backbone ★★★★★
()
Ответ на: комментарий от asdasd

я правильно понял что надо читать «упоротый»?;)

mumpster ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.