Эльфпак : Эльфы : Форум

Страница 125 из 128: « 1 ... 121 122 123 124 [125] 126 127 128 »

 IDOL1234:
06.12.11, 19:42
 Есть идея. Прошу больно не пинать =) Исправьте, если я где-то ошибся.
1) В библиотеке функций содержатся ссылки на стандартные функции телефона.
2) Если какая-либо функция (ещё) не найдена в прошивке, в библиотеке её нет.
3) При заливке lib.vkp вместо адреса отсутствующей функции будет то, что там было до установки патча, с большой вероятностью - FFF...F.
4) Если эльф использует функцию, адрес которой в библиотеке отсутствует, то происходит попытка обращения к недопустимому диапазону памяти или выполнение "мусора".
5) А что, если создать функцию, которая выводит сообщение об ошибке с указанным номером отсутствующей функи (найти по адресу возврата?), и вписать её адрес в либу вместо всех не портированных/отсутствующих у данного телефона функций? Это решило бы проблему вопросов "почему у меня ребууут?!!".
Подозреваю, что, если бы всё было так просто, и без меня бы давно что-то подобное сделали, но всё же... :oops:

[ Редактировано IDOL1234 в 6.12.11 19:45 ]

 Pavlus:
07.12.11, 19:50
 IDOL1234, если не ошибаюсь, то аргументы ф-ии толкаются в стек, перед вызовом, а во время исполнения ф-ии - поднимаются оттуда. Если аргументы положить в стек, а потом не забрать оттуда, то поведение программы будет не предсказуемо ввиду того, что в стэке находятся данные отличные от ожидаемых. Поднять правильное количество аргументов мы не можем так-как не знаем их количество (для каждой подпрограммы оно ведь разное может быть).

 IDOL1234:
07.12.11, 19:56
 Да.
Согласен.
Предвидел =)
Но идея в том, чтобы получить номер функции.
В общем-то, никто не мешает для каждой функи сделать заглушку, которая выбрасывает "лишие" аргументы и кладёт в стек нужное кол-во ноликов вместо возвращаемого значения. Но больно уж много их делать надо. Да и ненадёжно это - мало кто проверяет результат выполнения обыденных функций -> будут ошибки из-за некорректных значений
Ещё раз повторю: идея в том, чтобы телефон завис с номером отсутствующей функции на экране (завис не от ошибки функции, а намеренно, чтобы не потерять изображение при ребуте).

[ Редактировано IDOL1234 в 7.12.11 19:59 ]

 Pavlus:
07.12.11, 20:01
 IDOL1234, я не сильно в работе ЭП разбираюсь, но можно слегка модифицировать его так, чтоб он запускал ельф-хелпер, который бы патчил кеш либы и подставлял вместо неопределённых функций свои.

 IDOL1234:
07.12.11, 20:11
 А я только идею высказал.. Потому как понятия не имею, получится ли так сделать.
Я не умею работать с памятью напрямую, ибо даже примерно не знаю, где там что находится. Сам я не нашёл, а на вопросы никто не ответил..

 Pavlus:
07.12.11, 20:20
 IDOL1234,
Код: 
typedef struct EP_DATA
{
    LIST* UserDataList;//unused
    LIST* gKbdHookList;
    PROCESS HPID;
    LIST* UIHookList;
    LIST* OseHookList;//unused
    LIST* DBExtList;
    FILESUBROUTINE* elf_ext_m;
    LIST* DLLList;
    LIST* UIPageHook_Before;
    DB_EXT* (*CreateDbExt)(void);
    IMAGEID IconSmall;
    IMAGEID IconBig;
    void** LibraryCache; // Не перемещать!!!!!
    void* LibraryDLL;
    wchar_t LastKey;
    LIST* UIPageHook_After;
}EP_DATA;

Из ЭП запустить ельф с параметром-указателем на существующую структуру EP_DATA (не знаю как другим способом её получить), в которой пробежаться по LibraryDLL и заменить FFFFFFFF или 00000000 на аналоги соответствующих функций.

 IDOL1234:
07.12.11, 20:45
 А если там мусор будет?

 Pavlus:
07.12.11, 20:51
 А это уже твои проблеммы - там мусора по-умолчанию не должно быть.

 IDOL1234:
07.12.11, 20:56
 Как это - не должно быть? О_о
Ладно, поиск отсутствующих функций - это уже детали.. Буду думать и копать исходники.

 IDOL1234:
13.12.11, 23:48
 Да, ещё вопрос.
На вики лежит гора функций, которых нет в либе. Среди них - несколько для 3D. Их не добавляют, так-как ещё не все необходимые для работы функции найдены, или по какой-то другой неведомой причине?
Страница 125 из 128: « 1 ... 121 122 123 124 [125] 126 127 128 »

URL этой темы:
https://mobilefree.justdanpo.ru/newbb_plus/viewtopic.php?topic_id=2468&start=1240

© 2005-2018 supertrubka.org