lsd.jxe / rom.classes
Добро пожаловать на Turbo Quattro.
Показано с 1 по 6 из 6
  1. #1
    Новичок
    Регистрация
    14.08.2014
    Адрес
    Zürich, Switzerland
    Сообщений
    19

    По умолчанию lsd.jxe / rom.classes

    Кто-нибудь уже разбирал кишки rom.classes? Неужели я первый? Вопросы на форуме есть, а ответов нет.

    Кусок для затравки с каким-то VIN внутри:

    Name: run
    Signature: ()V
    Access Flags (30001): public (vtable)


    0 ldc2lw 26 (long) 0x00000000000007D0
    3 invokestatic 7 java/lang/Thread.sleep(J)V
    6 goto 14
    9 pop
    10 invokestatic 8 java/lang/Thread.interrupted()Z
    13 pop
    14 aload0getfield
    15 getfield 14 de/audi/tghu/redengineering/app/g.c Lde/audi/tghu/redengineering/app/FSCViewer;
    18 new 25 org/dsi/ifc/cryptomanagerhmi/SFscDetails
    21 dup
    22 aload0getfield
    23 getfield 15 de/audi/tghu/redengineering/app/g.a Lorg/dsi/ifc/cryptomanagerhmi/SFscStatus;
    26 invokevirtual 17 org/dsi/ifc/cryptomanagerhmi/SFscStatus.getSwid()I
    29 aload0getfield
    30 getfield 15 de/audi/tghu/redengineering/app/g.a Lorg/dsi/ifc/cryptomanagerhmi/SFscStatus;
    33 invokevirtual 18 org/dsi/ifc/cryptomanagerhmi/SFscStatus.getState()I
    36 aload0getfield
    37 getfield 14 de/audi/tghu/redengineering/app/g.c Lde/audi/tghu/redengineering/app/FSCViewer;
    40 aload0getfield
    41 getfield 16 de/audi/tghu/redengineering/app/g.b I
    44 invokestatic 12 de/audi/tghu/redengineering/app/FSCViewer.a(Lde/audi/tghu/redengineering/app/FSCViewer;I)Z
    47 ifeq 56
    50 sipush 128
    53 goto 57
    56 iconst0
    57 i2s
    58 aload0getfield
    59 getfield 14 de/audi/tghu/redengineering/app/g.c Lde/audi/tghu/redengineering/app/FSCViewer;
    62 aload0getfield
    63 getfield 16 de/audi/tghu/redengineering/app/g.b I
    66 invokestatic 12 de/audi/tghu/redengineering/app/FSCViewer.a(Lde/audi/tghu/redengineering/app/FSCViewer;I)Z
    69 ifeq 77
    72 ldc 1 (java.lang.String) "WAUZZZ8K99A123456
    74 goto 79
    77 ldc 2 (java.lang.String) "---
    79 aload0getfield
    84 getfield 16 de/audi/tghu/redengineering/app/g.b I
    87 invokestatic 12 de/audi/tghu/redengineering/app/FSCViewer.a(Lde/audi/tghu/redengineering/app/FSCViewer;I)Z
    90 ifeq 98
    93 ldc 3 (java.lang.String) "200806231015+0100
    95 goto 100
    98 ldc 2 (java.lang.String) "---
    100 invokespecial 21 org/dsi/ifc/cryptomanagerhmi/SFscDetails.<init>(IISLjava/lang/String;Ljava/lang/StringV
    103 invokevirtual 19 de/audi/tghu/redengineering/app/FSCViewer.fscDetails(Lorg/dsi/ifc/cryptomanagerhmi/SFscDetailsV
    106 return0
    107 nop

  2. #2
    Местный
    Регистрация
    10.12.2013
    Адрес
    Moscow
    Сообщений
    253

    По умолчанию

    а как вообще дебажить ром класес?
    т.е. так перевести его в код как выше?
    я его давно видел, но как копать - понятия не имею
    Последний раз редактировалось zerbino; 01.10.2014 в 15:02.

  3. #3
    Новичок
    Регистрация
    14.08.2014
    Адрес
    Zürich, Switzerland
    Сообщений
    19

    По умолчанию

    Цитата Сообщение от zerbino Посмотреть сообщение
    а как вообще дебажить ром класес?
    т.е. так перевести его в код как выше?
    я его давно видел, но как копать - понятия не имею
    Простого способа я не нашёл, только два сложных, в обоих надо писать свой код.

    Способ 1: самому разбирать файл. Формат частично гуглится по "J9ROMImageHeader", но есть непонятные места.
    Способ 2: в библиотеках J9 SDK есть функции, которые могут дампить классы из rom.classes. Самому надо написать обвязку, правильно всё инициализировать и вызвать.

    Я прошёл оба варианта. Если есть планы его патчить в бинарном виде, то лучше идти первым путём, там понятно где конкретно что в файле лежит. Вторым путём получается больше информации, но нет конкретных смещений в файле и нужны куски J9 SDK.

  4. #4
    Местный
    Регистрация
    10.12.2013
    Адрес
    Moscow
    Сообщений
    253

    По умолчанию

    Наработками не поделитесь?)

  5. #5
    Новичок
    Регистрация
    14.08.2014
    Адрес
    Zürich, Switzerland
    Сообщений
    19

    По умолчанию

    У меня, к сожалению, совсем нет времени приводить их в удобный вид, документировать и т.д.
    Поделюсь в "сыром" виде:

    Способ 1: https://github.com/unbe/romclasses-py
    Способ 2: https://github.com/unbe/romclasses-c

    Если будут вопросы, постараюсь ответить.

  6. #6

    По умолчанию

    Вопрос такой: как это запустить? Что дополнительно скачать и установить?

 

 

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •  
Back to top