Помогите вытащить переменные из скрипта
|
|
Сообщений: 1
|
Опубликовано: 02.06.2013, 21:37:54
Всем привет сильно не пинайте, темка не совсем про червячки... есть файло от навигации (igo) на луа. в нем крутятся пару параметров, которые хотел бы вытащить и отправить на ком порт или хотя бы в отдельный файл. прямое декомпилирование не дает результатов, хедл не нравится. как поправить? файло прилагаю... спасиб
Сообщение отредактировал Alex_M - ПН, 03.06.2013, 03:56:11
|
|
|
|
Сообщений: 3813
|
Опубликовано: 03.06.2013, 00:45:24
Alex_M, добавил тебя в проверенные, чтоб ты мог прикрепить файл. Если слишком большой - залей на файловый хостинг.
Смысл жизни в том, чтобы жизнь имела смысл... (firsacho 2005) Рай придуман, чтобы не страшно было умирать. Ад придуман, чтобы не страшно было жить. (firsacho 2007) Мир делиться на два типа людей: Бездарные трудоголики и Талантливые лентяи. (firsacho 2008)
mod.worms.pro - мод Worms Renewation для Worms4
|
|
|
|
Сообщений: 1042
|
Опубликовано: 03.06.2013, 22:44:42
С Lua 5.1 я не работаю там совсем другая структура данных. Все чем могу помочь: весь софт по lua http://lua-users.org/wiki/LuaTools ну и спецификацию, как он устроен на английском, прикрепляю.
|
|
|
|
Сообщений: 1042
|
Опубликовано: 03.06.2013, 23:23:00
Обычные декомпиляторы работают с float и double float тут же используется Integer... так что, нужно будет переписывать декомпелятор. А так зная названия переменной ты можешь ее найти через Hex Вот пример: Код 00010400 00 04 0C 00 00 00 73 61 74 4D 61 78 50 68 61 73 ......satMaxPhas 00010410 65 00 03 03 00 00 00 04 07 00 00 00 44 4F 55 42 e...........DOUB 00010420 4C 45 00 04 04 00 00 00 6E 65 77 00 04 06 00 00 LE......new..... 00010430 00 36 2E 32 38 33 00 04 04 00 00 00 73 69 6E 00 .6.283......sin. 00010440 04 06 00 00 00 74 6F 49 6E 74 00 03 02 00 00 00 .....toInt......
сразу можно представить как: 04 0C 00 00 00 - тип строка, размер (0xC) 12 - "satMaxPhase" 03 03 00 00 00 - тип число, "3" 04 07 00 00 00 - "DOUBLE" 04 04 00 00 00 - "new" 04 06 00 00 00 - "6.283" 04 04 00 00 00 - "sin" 04 06 00 00 00 - "toInt" 03 02 00 00 00 - "2"
Пойми логику и найдешь свои значения. Весь файл ты не декомпилируешь, однозначно, если не напишешь свою прогу на основе исходников.
|
|
|
|
Сообщений: 1042
|
Опубликовано: 04.06.2013, 01:20:23
Ковырял твой файлик и нактнулся на одну гадость... Код bad constant type 9 at 51220 надо узнать что такое тип 9, чтобы суметь декомпилировать файл.
В коде выглядит так: 09 01 00 00 00 00 00
Прикрепил файл список констант, которые считываются до этого типа...
|
|
|
|
Сообщений: 1042
|
Опубликовано: 04.06.2013, 03:53:25
Вот нашел декомпилятор для твоей проги http://dfiles.ru/files/pjpatpffu
http://www.mobilepassion.org/viewtopic.php?f=210&t=282&start=40#p1925 Цитата (psb) Проверку правильности декомпилирования (на примере navigatemap.lua) можно сделать так:
1. Decompile -> navigatemap.lua будет создано три файла: navigatemap.luad, navigatemap_luad.dis, navigatemap_error.txt 2. Анализируя 955 строку корректируем ее к виду: return _G["activeCockpitField" .. index + 1]() 3. Compile -> navigatemap.luad будет создан: 2_navigatemap.lua 4. Decompile -> 2_navigatemap.lua будет создано три файла: 2_navigatemap.luad, 2_navigatemap_luad.dis, 2_navigatemap_error.txt 5. Сравнить файлы 2_navigatemap_luad.dis и navigatemap_luad.dis ( на отличия в строках ; Defined at line: ххх - не обращайте внимания) 6. Анализировать отличия в файлах navigatemap_luad.dis, корректировать файл navigatemap.luad до такого вида, чтобы файлы: 2_navigatemap_luad.dis и navigatemap_luad.dis не отличались по содержанию, повторять пункты 3 ... 6
для примера сравните с моим декоипилированным файлом navigatemap.lua, который я выкладывал на этом форуме
успехов
|
|
|
|