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

 eXeL@B —› Вопросы новичков —› Игры на базе Macromedia Projector и привязка к CD
Посл.ответ Сообщение

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

Создано: 12 января 2008 00:14
· Личное сообщение · #1

Есть несколько детских игр на Macromedia Projector (линейка игр "Смешарики" и еще кое-какие), которые никак не удается оттучить от диска. Проверка на метку диска там нет, есть проверка валидности диска на CD-шность и чтение файла. В ехе-шник запакованы несколько dll-ок, но дело не в них. Вместе с ними зашит и *.dxr-основной мувик в котором и прописана проверка. Не выдернув его управлять скриптом через внешний ini-файл безполезно. Пытался тупо выдернуть dxr, распаковать ехе-шник, подсунуть dll-ки(они расспаковываются при запуске игры во временную папку) и нарисовать ini-ругается на неправильный dxr. Помогите выдернуть мувик, либо подскажите направление где рыть и не расспаковывая ехе-шник оттучить от проверки, ибо GetDriveTypeA\W в файле нет.
ifolder.ru/4907013
Извеняюсь за кривизну терменологии-ибо самоучка



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

Создано: 12 января 2008 00:46
· Личное сообщение · #2

если допустить что мувик это видео, как я уже допускаю уже чуть более 5-и лет, то следовательно тебе надо выдернуть ресурс или сделать инлаин? я прав? (не могу сдержаться - файло большой больно, качает его совсем не бодро...)



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

Создано: 12 января 2008 02:47
· Личное сообщение · #3

хм, файлег отжыгает.
для начала, игра не полная, давай ту линку откуда сам качал. как это неполучаеться отучить от сд, если там лежит NoCD? по dxr ничего не нашёл, но пытаясь открыть хьювом и емИдетром наткнулся на смесь бульдога с носорогом - в начале обычный текст затем то что называеться exe. вообщем я в смущении. в start.exe таже тема, тока в начале код программы, затем опять уже знакомые строки которые меня по меньшей мере в ступор загнали:

;=================================================================
;
; Default Font Mapping Table for Director MX 2004 Macintosh and Windows.
;
; This file provides a font mapping table for Director MX 2004 for Windows
; and Macintosh.
;
; If a copy of this file is in the same folder or directory as the
; Director application, Director will automatically include this font
; mapping table in every new movie you create.
;
; To add this font mapping table to an existing movie, choose
; Movie:Properties... from the Modify menu. Then click Load from File.
; Use the dialog box that appears to locate this file.
;
; Note: In this file, a semicolon at the beginning of a line indicates
; a comment.
;
; Special Note for Mac OSX users: This file is saved using the 'Classic' line
; ending character (CR). If you need to alter and save this file, make sure to
; preserve this - the UNIX line ending character (LF) will not work properly.
;
;=================================================================
и тд и тп.

посмотрел остальные файлы peid'om - бред какойто: все файлы с расширением x32 написаны на с++ и думаеться мне на одном и томже компиляторе, но вот количесво секций в них почему различно, к тому же собраны они как dll, что не соотвествует разширению (мб собирались с разными опциями?). также часть из ни запакована upx, на нескольких peid и сигнатуру распознать не смог. также замечен reg файл, который при открытии говорит что он бинарник, но не имеет тому подтверждения.

вообщем если это кого заинтреговало, также сильно как автора этого поста и меня то жду с нетерпением. жаль что придёться ложиться спать и бездарно потерять 8 часов времени, которое могло быть потрачено на решение сего мирового заговора. :}

ps мне врача психиатора не навестить?




Ранг: 88.4 (постоянный)
Активность: 0.080
Статус: Участник

Создано: 12 января 2008 11:30 · Поправил: VaZeR
· Личное сообщение · #4

Привязка к диску очень простая. Игра проверяет файл version на диске. Сначала перебираются диски GetDriveTypeA если найден лазерный диск то вызывается API OpenFile для чтения файла c диска. Эта API вызывается из библы FileIo.x32.



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

Создано: 12 января 2008 13:49 · Поправил: Sandy Ann
· Личное сообщение · #5

TruPAC пишет:
игра не полная, давай ту линку откуда сам качал

игра с приватного торрента на 2-х CD. VaZeR пишет:
Сначала перебираются диски GetDriveTypeA

Спасибо, нашел в FileXtra4.x32, offset 3f46 75->74, а вот с OpenFile нифига не выходит. FileIo.x32 offset 3608-в этим call-е колдовать? Я так понял он ведет на OpenFile




Ранг: 88.4 (постоянный)
Активность: 0.080
Статус: Участник

Создано: 12 января 2008 14:00
· Личное сообщение · #6

Sandy Ann
На OpenFile ты попадешь в том случае если ты найдешь на диске этот файл спомощью API FindFistFileA.



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

Создано: 12 января 2008 14:17
· Личное сообщение · #7

FindFistFileA в том же FileIo.x32?




Ранг: 88.4 (постоянный)
Активность: 0.080
Статус: Участник

Создано: 12 января 2008 14:30
· Личное сообщение · #8

Sandy Ann
Точно не помню прогу я уже удалил. Просто поставь на неё бряк и посмотри за её работой.



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

Создано: 12 января 2008 15:04 · Поправил: Sandy Ann
· Личное сообщение · #9

А как в Olli бряк поставить? Вроде на обе API FindFistFileA бряк ставлю-ни один ни отрабатывает... Я просто окромя W32Dasm-а и WinHex-а ни во что другое так и не вьехал




Ранг: 88.4 (постоянный)
Активность: 0.080
Статус: Участник

Создано: 12 января 2008 15:09
· Личное сообщение · #10

Sandy Ann
Попробуй при GetDriveTypeA изменить возвращаемое значение с 3 на 5. Бряк обычный
bp FindFistFileA



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

Создано: 12 января 2008 16:59
· Личное сообщение · #11

GetDriveTypeA переправил. Вроде FindFistFileA в том же FileXtra4.x32, вот только заплутал я там, как свинья в апельсинах




Ранг: 88.4 (постоянный)
Активность: 0.080
Статус: Участник

Создано: 12 января 2008 17:30 · Поправил: VaZeR
· Личное сообщение · #12

Sandy Ann
Помне там самый легкий и практичный вариант, это занопить условный переход после вызова GetDriveTypeA. (Библиотека FileXtra)
cmp eax, 5
je (jnz)
Поправить на
cmp eax, 5
nop
nop
Дальше просто положи этот файл version на любой жесткий диск. Например сюда (C:\version)
Еще есть хорошая статья как раз на эту тему Fess
http://www.exelab.ru/art/?action=view&id=102



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

Создано: 12 января 2008 20:17 · Поправил: Sandy Ann
· Личное сообщение · #13

Тем еще GetFileAttributesA в msvcrt.dll и FileIo.x32, они вызываются последовательно. В FileIo.x32 исправил, счаз буду пытаться с dll-кой справиться, но боюсь, что не справлюсь. Статью, спасибо, уже читал.



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

Создано: 14 января 2008 00:35
· Личное сообщение · #14

Все. Пипец. Не получается исправить проверку атрибутов. Help!!!




Ранг: 88.4 (постоянный)
Активность: 0.080
Статус: Участник

Создано: 14 января 2008 09:30
· Личное сообщение · #15

Sandy Ann
Раскажи что не получается. Там нужно в общих чертах сделать так это после выхода из GetFileAttributesA проэмулировать правильное значение т.е. вместо вызова API сделай её эмуляцию. Правильное начение возьми из оригинала.



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

Создано: 15 января 2008 00:29 · Поправил: Sandy Ann
· Личное сообщение · #16

VaZeR пишет:
вместо вызова API сделай её эмуляцию

Как? Я и выхода из GetFileAttributesA не нашел. Может мне проще --> сюда? <--. Я сам не справлюсь




Ранг: 88.4 (постоянный)
Активность: 0.080
Статус: Участник

Создано: 15 января 2008 08:18
· Личное сообщение · #17

Sandy Ann
Вообще я так и непонял зачем тебе это все нужно. Прога и так легко запускается нужно только кинуть этот файл version в любой из жестких дисков, только нужно подправить вызов GetDriveTypeA. А так чтобы полностью оттучить от проверки там надо править прилично вызовов.



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

Создано: 15 января 2008 19:54 · Поправил: Sandy Ann
· Личное сообщение · #18

Да я не собираюсь всю процедуру обходить. Но не жрет он в корне этот version. Ну хоть ты убейся. Ищет, находит, сверяет атрибуты, читает и выплевывает errorFile. Даже readonly не помогает. GetDriveTypeA уже давно занопен.




Ранг: 88.4 (постоянный)
Активность: 0.080
Статус: Участник

Создано: 15 января 2008 19:58
· Личное сообщение · #19

Sandy Ann
Я у себя этот файл проверить не как не могу так как он не запускается. Сколько весит полностью игра?



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

Создано: 15 января 2008 20:22 · Поправил: Sandy Ann
· Личное сообщение · #20

Полностью игра весит 290 метров. А обрезок почему не пашет? Все что надо в нем есть.




Ранг: 88.4 (постоянный)
Активность: 0.080
Статус: Участник

Создано: 15 января 2008 20:25
· Личное сообщение · #21

Sandy Ann
Он то пашет, но вот проверить идет ли игра или нет невозможно, так как там после обхода проверки диска GetDriveTypeA выходит окно с ошибкой что нужен какой то файл. У тебя это окно тоже выходит?



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

Создано: 15 января 2008 20:27
· Личное сообщение · #22

Intro требует? Значит проверка прошла удачно



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

Создано: 16 января 2008 16:34
· Личное сообщение · #23

Вопрос исчерпан. VaZeR спасибо еще раз.


 eXeL@B —› Вопросы новичков —› Игры на базе Macromedia Projector и привязка к CD
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати