2.01.2014 / 14:22 | |
ВитаминКО Супермодератор Сейчас: Offline
Имя: Василиус Откуда: RZN Регистрация: 20.04.2012
| kiriman (02.01.2014/08:30) Пришла в голову другая идея, которая решит проблему со стеком. Но придется написать более умный анализ кода. * меня кто-нибудь понимает? **нет но очень интересно*
__________________
わからない!! |
2.01.2014 / 16:42 | |
kiriman Пользователь Сейчас: Offline
Имя: Кирилл Откуда: Красноярск Регистрация: 18.01.2010
| vl@volk, Нет. То, что я делаю и так сама простота.
Изменено kiriman (2.01 / 16:53) (всего 1 раз) |
2.01.2014 / 22:14 | |
Naik Пользователь Сейчас: Offline
Имя: %name% Регистрация: 14.03.2010
| vl@volk, так я через dx и перегоняю классы в dex, но как им заменить метод не представляю
|
2.01.2014 / 22:17 | |
kiriman Пользователь Сейчас: Offline
Имя: Кирилл Откуда: Красноярск Регистрация: 18.01.2010
| Naik, http://pastebin.com/dqcwHJ1Zтестируй! рефакторить отказываюсь! я тестил на этом классе: Изменено kiriman (2.01 / 22:19) (всего 1 раз)
Прикрепленные файлы: Main.class (0.7 кб.) Скачано 633 раза |
2.01.2014 / 22:33 | |
vl@volk Пользователь Сейчас: Offline
Имя: Владислав Откуда: Земля Регистрация: 26.12.2012
| Naik, если я скачал исходники dx, то посмотрю что там, может чего придумаю
__________________
знает толк |
2.01.2014 / 22:39 | |
kiriman Пользователь Сейчас: Offline
Имя: Кирилл Откуда: Красноярск Регистрация: 18.01.2010
| } else {
// Заодно оптимизируем класс удалив к ***м ненужные аттрибуты
System.out.println("Fuck!!!");
}
Вот эта ветвь в моем коде вообще сомнительна, потому что кол-во аттрибутов записано в файле класса.. Так что там лучше поставьте 1 в записи кол-ва. Это здесь: System.out.println("Loading method: " + cpool.elementAt(name_index - 1));
dos.writeShort(name_index);
dos.writeShort(dis.readShort()); // Дескриптор
int count_attr = dis.readShort();
dos.writeShort(1);
Ну и цикл тогда можно убрать. Изменено kiriman (2.01 / 22:41) (всего 4 раза) |
2.01.2014 / 23:11 | |
kiriman Пользователь Сейчас: Offline
Имя: Кирилл Откуда: Красноярск Регистрация: 18.01.2010
| А вообще я думаю, что класслоадеру пофиг на аттрибуты. Ибо класс, который я кинул в пример имеет их несколько. Те же stackmap и code. Но после изменения микроэмулятор его запустил спокойно. Так что можешь ничего не менять
Изменено kiriman (2.01 / 23:20) (всего 1 раз) |
2.01.2014 / 23:30 | |
kiriman Пользователь Сейчас: Offline
Имя: Кирилл Откуда: Красноярск Регистрация: 18.01.2010
| Хотя я ща бред написал, я сонный(
|
3.01.2014 / 02:21 | |
kiriman Пользователь Сейчас: Offline
Имя: Кирилл Откуда: Красноярск Регистрация: 18.01.2010
| Проверил, работает на классах aNMPWR_v2_0.jar http://pastebin.com/dFfq9ge4 |
3.01.2014 / 04:28 | |
kiriman Пользователь Сейчас: Offline
Имя: Кирилл Откуда: Красноярск Регистрация: 18.01.2010
| Не пашет для NewClass.class.getClass().getResource... И некоторые классы думается мне не обработаются верно, но.. Naik, запили тестовую версию эмулятора с моим кодом! В дальнейшем может быть перепишу. Кстати о microemulator.. Посмотри как там сделано Я не особо шарю в загрузке классов, может что поможет в сорцах Изменено kiriman (3.01 / 04:39) (всего 1 раз) |