Вниз  J2me Loader
- 30.11.2013 / 20:23
DominaN
  Пользователь

DominaN 
Сейчас: Offline
Naik, TiledLayer
- 31.12.2013 / 10:39
kiriman
  Пользователь

kiriman 
Сейчас: Offline
Эмм, а зачем юзать сторонние библиотеки, чтобы заменить вызов метода? Можно и самим справиться.
Ну допустим есть код
  1. getClass().getResourceAsStream("/lol.txt");
  2. SomeClass.getResourceAsStream("/lol.txt");
Опкод invokevirtual - 0xB6
Вызывает метод экземпляра объекта, основываясь на типе объекта во время выполнения (виртуальном типе). Это обычный способ вызова методов в языке Ява.
Опкод invokestatic - 0xB8
Вызывает статический метод в названном классе.
Нам всего лишь нужно найти упоминание getResourceAsStream(Ljava/lang/String;)... в константном пуле и запомнить индекс этой записи. Привести ее к виду SomeClass/getResourceAsStream(Ljava/lang/String;)Ljava/io/InputStream;
Далее в коде найти 0xB6 вместе с двумя байтами индекса записи(к примеру 0xB6 00 05) и поменять опкод на B8.
В итоге получится:
  1. getClass();
  2. SomeClass.getResourceAsStream("/lol.txt");
  3. SomeClass.getResourceAsStream("/lol.txt");


Изменено kiriman (31.12 / 10:41) (всего 2 раза)
- 31.12.2013 / 10:45
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
kiriman, из статического класса получать getResourceAsStream? Rly?
__________________
 let live
- 31.12.2013 / 10:46
kiriman
  Пользователь

kiriman 
Сейчас: Offline
aNNiMON, SomeClass реализует загрузку ресурсов под андроид. Ай, ты про пример) Ахаха, но это фигня, суть ясна

Изменено kiriman (31.12 / 10:48) (всего 1 раз)
- 31.12.2013 / 10:48
PLUTONiUM
  Пользователь

PLUTONiUM 
Сейчас: Offline
aNNiMON, более чем возможно. Или никто не знает? 0_0
- 31.12.2013 / 10:49
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
kiriman, а, ну если на готовый класс подменять, тогда всё норм.
__________________
 let live
- 31.12.2013 / 10:51
PLUTONiUM
  Пользователь

PLUTONiUM 
Сейчас: Offline
Только на j2me вариант будет немного другой:
  1. SomeClass.class.getResourceAsStream("...");

- 31.12.2013 / 11:14
Naik
  Пользователь

Naik 
Сейчас: Offline
kiriman, Я думал так делать, но не знаю структуры класса. Поробую сделать. Еще нужно заменять MyClasa.class.getResourceAsStream(...);

Изменено Naik (31.12 / 11:15) (всего 1 раз)
- 31.12.2013 / 12:03
SeTSeR
  Пользователь

SeTSeR 
Сейчас: Offline
Naik, структура класса на с-к есть
- 31.12.2013 / 13:58
kiriman
  Пользователь

kiriman 
Сейчас: Offline
хотя немного не так надо делать, как я написал.. Если будет время реализую.
Наверх  Всего сообщений: 224
Фильтровать сообщения
Поиск по теме
Файлы топика (23)