30.11.2013 / 20:23 | |
DominaN Пользователь Сейчас: Offline
Имя: Кирилл Откуда: Смоленск Регистрация: 28.09.2011
| Naik, TiledLayer
|
31.12.2013 / 10:39 | |
kiriman Пользователь Сейчас: Offline
Имя: Кирилл Откуда: Красноярск Регистрация: 18.01.2010
| Эмм, а зачем юзать сторонние библиотеки, чтобы заменить вызов метода? Можно и самим справиться. Ну допустим есть код getClass().getResourceAsStream("/lol.txt");
SomeClass.getResourceAsStream("/lol.txt");
Опкод invokevirtual - 0xB6 Вызывает метод экземпляра объекта, основываясь на типе объекта во время выполнения (виртуальном типе). Это обычный способ вызова методов в языке Ява. Опкод invokestatic - 0xB8 Вызывает статический метод в названном классе. Нам всего лишь нужно найти упоминание getResourceAsStream(Ljava/lang/String... в константном пуле и запомнить индекс этой записи. Привести ее к виду SomeClass/getResourceAsStream(Ljava/lang/StringLjava/io/InputStream;Далее в коде найти 0xB6 вместе с двумя байтами индекса записи(к примеру 0xB6 00 05) и поменять опкод на B8. В итоге получится: getClass();
SomeClass.getResourceAsStream("/lol.txt");
SomeClass.getResourceAsStream("/lol.txt");
Изменено kiriman (31.12 / 10:41) (всего 2 раза) |
31.12.2013 / 10:45 | |
aNNiMON Супервизор Сейчас: Offline
Имя: Витёк Регистрация: 11.01.2010
| kiriman, из статического класса получать getResourceAsStream? Rly?
__________________
let live |
31.12.2013 / 10:46 | |
kiriman Пользователь Сейчас: Offline
Имя: Кирилл Откуда: Красноярск Регистрация: 18.01.2010
| aNNiMON, SomeClass реализует загрузку ресурсов под андроид. Ай, ты про пример) Ахаха, но это фигня, суть ясна
Изменено kiriman (31.12 / 10:48) (всего 1 раз) |
31.12.2013 / 10:48 | |
PLUTONiUM Пользователь Сейчас: Offline
Имя: Nameless Откуда: Авалон Регистрация: 14.10.2012
| aNNiMON, более чем возможно. Или никто не знает? 0_0
|
31.12.2013 / 10:49 | |
aNNiMON Супервизор Сейчас: Offline
Имя: Витёк Регистрация: 11.01.2010
| kiriman, а, ну если на готовый класс подменять, тогда всё норм.
__________________
let live |
31.12.2013 / 10:51 | |
PLUTONiUM Пользователь Сейчас: Offline
Имя: Nameless Откуда: Авалон Регистрация: 14.10.2012
| Только на j2me вариант будет немного другой: SomeClass.class.getResourceAsStream("...");
|
31.12.2013 / 11:14 | |
Naik Пользователь Сейчас: Offline
Имя: %name% Регистрация: 14.03.2010
| kiriman, Я думал так делать, но не знаю структуры класса. Поробую сделать. Еще нужно заменять MyClasa.class.getResourceAsStream(...);
Изменено Naik (31.12 / 11:15) (всего 1 раз) |
31.12.2013 / 12:03 | |
SeTSeR Пользователь Сейчас: Offline
Имя: Сергей Откуда: Где-то возле Москвы Регистрация: 01.07.2012
| Naik, структура класса на с-к есть
|
31.12.2013 / 13:58 | |
kiriman Пользователь Сейчас: Offline
Имя: Кирилл Откуда: Красноярск Регистрация: 18.01.2010
| хотя немного не так надо делать, как я написал.. Если будет время реализую.
|