[ Обновленные темы · Новые сообщения · Участники · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Помогите вытащить переменные из скрипта
Проверенные
Сообщений: 1
Реп: 0
Всем привет
сильно не пинайте, темка не совсем про червячки...
есть файло от навигации (igo) на луа.
в нем крутятся пару параметров, которые хотел бы вытащить и отправить на ком порт или хотя бы в отдельный файл.
прямое декомпилирование не дает результатов, хедл не нравится. как поправить?
файло прилагаю...
спасиб
Прикрепления: navigatemap.lua (77.0 Kb)


Сообщение отредактировал Alex_M - ПН, 03.06.2013, 03:56:11
 
firsacho
Админы
Сообщений: 3813
Реп: 84 / Инв: 15
Alex_M, добавил тебя в проверенные, чтоб ты мог прикрепить файл. Если слишком большой - залей на файловый хостинг.



Смысл жизни в том, чтобы жизнь имела смысл... (firsacho 2005)
Рай придуман, чтобы не страшно было умирать. Ад придуман, чтобы не страшно было жить. (firsacho 2007)
Мир делиться на два типа людей: Бездарные трудоголики и Талантливые лентяи. (firsacho 2008)

mod.worms.pro - мод Worms Renewation для Worms4
 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
С Lua 5.1 я не работаю там совсем другая структура данных.
Все чем могу помочь:
весь софт по lua http://lua-users.org/wiki/LuaTools
ну и спецификацию, как он устроен на английском, прикрепляю.
Прикрепления: ANoFrillsIntroT.pdf (218.7 Kb)


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Обычные декомпиляторы работают с 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"

Пойми логику и найдешь свои значения. Весь файл ты не декомпилируешь, однозначно, если не напишешь свою прогу на основе исходников.


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Ковырял твой файлик и нактнулся на одну гадость...
Код
bad constant type 9 at 51220

надо узнать что такое тип 9, чтобы суметь декомпилировать файл.

В коде выглядит так:
09 01 00 00 00 00 00

Прикрепил файл список констант, которые считываются до этого типа...
Прикрепления: map_const.txt (65.9 Kb)


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Вот нашел декомпилятор для твоей проги 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,
который я выкладывал на этом форуме

успехов
Прикрепления: navigatemap.luad (53.9 Kb)


 
  • Страница 1 из 1
  • 1
Поиск: