|
KIA SORENTO 2013 NEW ГУ AV310DMDG.S
Есть ГУ с WinCE 6.0 (MIPSII) и приложение Х, которое работает с портами. Надо снять лог, что приложение считывает с портов и что пишет в них. С возможностью потом динамически преобразовывать информацию в нужную. Сделать таким способом подсоединиться к процессу приложения X, добавить свою ДЛЛ к процессу в которой буду перехватывать API CreateFileW, ReadFile и WriteFile и с помощью переопределения этих функци буду писать лог…Переопределённые функции ReadFilXXX и WriteFileXXX должны иметь возможность менять размер массива байт (считанный или который хочем записать), а также сам массив байт.
Добавлено через 34 минуты Всем здравствуйте.Так вот длл не инжектится к приложению X !!! УТОЧНЯЮ: Не работает PerformCallBack4! Какой алтернативный способ? После шага HINSTANCE hInst = ( HINSTANCE ) PerformCallBack4 ( &ci ); - ERROR_SHARING_VIOLATION и hInst выдаёт unused = CXX0030: ошибка: не удается вычислить значение выражения.Пробовал другой способ но там в одном из мест после memcpy(p, &Code, sizeof(DWORD) * 9);-ERROR_SHARING_VIOLATION.Как правильно подсоединять ДЛЛ к процессу приложения Х? Заранее благодарю. Функция способа №1 вот: Код:
void Inject9 ( void ) Код:
HMODULE LoadRemoteLibrary(HANDLE hProcess, HANDLE hThread, LPCTSTR FileName) |
ЕСТЬ СПОСОБ № 3 НУЖНА ПОМОЩЬ!
Здравствуйте.Сейчас вижу ещё один способ инжекта ДЛЛ-это отредактировать ЕХЕ файл вручную через редактор WinHex или подобный - вписать длл и ее вызов при старте ехе.Подскажите где есть рабочие прмеры с моей темой? Всем зарание спасибо.
|
ИНЖЕКТ ЕСТЬ!
Всем здравствуйте.Инжект получился вышеуказанным способом (PETools->PeEditor).Версию проги только надо брать нормальную.
Добавлено через 18 минут Длл внедрили в DrFish.exe. Этот модуль в ГУ отвечает за считывании данных ЖПС с портов и дальнейшей раздачи их остальным модулям или что то вроде этого...Задача ДЛЛ перехватить вышесказанные АПИ функции с подсунуть мои...делать это она будет при помощи редактирования таблиц импорта...Вот нарыл функцию которая это делает.Подскажите где берётся структура HDATA? Заранее всем спаибо! Код:
DWORD XXX ( HANDLE hProc, DWORD dFind, DWORD dReplace ) |
Здравствуйте.
Тоже борюсь с такой железкой пока не очень получается. попал в СЕ а дальше тоже уперся в работу GPS. Я так понял что drfish как раз и открывает порт, и протокол hippo. |
Subverting wince6
Здравствуйте.Метод - правки таблицы импорта хорошо работал на винсе 5, но на 6-ке пока мной не побеждён.Нашёл одну статью про это "subverting_wince6.pdf".В этой статье приведены различия 5 и 6...Как раз по этой части.
|
urban81, Привет!
на столе стоит голова от киа спортаж 2014 не видит спутников, не может открыть ни одного порта я так понимаю ты эту проблему пытаешься решить? |
Про заметки!
Здравствуйте все.Да наши задачи похожи в чём то.Хочу РЕШИТЬ задачу и самому интересно и людей научу как на ХАЛЯВУ решать...Ведь когда всё объяснено с примерами-это здорово!
|
чем могу помочь?
на киа клабе сборки работают с dll , переделывает hipo в nmea но на рестайлинговых аппаратах этот фокус не проходит |
Пишем прогу которая пишет в порт...
Всем здравствуйте.Скачал GpsVirtualDriver в коде.Установил...Он сделал записи в реестре...Пишу приложение которое, будет писать в порт пакет байт( в дальнейшем так будем скидывать в порт перехваченные пакеты байт)...
Пишу (см.проект): Код HTML:
PDWORD BytesHandled = 0; Всем заранее спасибо! |
Могу посоветовать в личку готовую сборку для ваших девайсов, стоит недорого
|
Тестовые проги готовы.Начинаем править exe файл!
Здравствуйте все.Тестовые проги готовы (всё необходимое в архиве).Начинаем править exe файл!Предисловие.В роли программы-утилиты,которая является аналогом утилиты доктор фишь, будет моя прога ZZZ.exe. Она будет читать с порта ком1 в эмуляторе вин се(эмулятор приложен).При разборе в пе едиторе доктора фиша, нашёл ,что только она имеет апи функцию реадфайл(доктор фишь читает с порта жпс данные) её идентификатор-00AAh.Нужно чтобы ёщё были какие нибудь данные в ком1.Сделаем так.Возьмём любой адептер юзб-ком.Нужно, чтобы на компе было два ком порта.В моём случае адаптер установил мне два порта ком1 и ком2. Сопрягаем ком1 в эмуляторе.Делаем далее нульмодем соединяем ком1 и ком2 так: 2(ком1)-3(ком2),2(ком2)-3(ком1),5(ком2)-5(ком1).Далее запускаем прогу Advanced Serial Port Monitor (приложена).В ней посылаем в ком2 любой пакет байт.Наша прога ZZZ.exe должна ловить этот пакет байт (у меня ловит).XXXDLL.dll - длл которую мы будем внедрять вручную(с помощью пе тулс) в ZZZ.exe.В длл есть функция function1 "заглушка"- нужна чтобы попасть в адресное пространство ZZZ.exe.Функция APIHook_ReadFile "подменнная"- нужна чтобы заменить апи реадфайл (идентификатор-00AAh) в ZZZ.exe.Начинаем править ZZZ.exe.1.Внедряемся в адресное пространство ZZZ.exe.Положим ZZZ.exe и XXXDLL.dll в одну папку и cмотри картинку.Делаем как на картинках.Обясняю (пока не знаю почему так).Внедрив заглушку надо поменять Original first Thunk.Проследив, как они располагаются в других библиотеках(смотри рисунок 5 и 6).Они располагаются с приращением 4.Находим последний Original first Thunk в библиотеке commctrl.dll 32A8.И прибовляем к нему 4 = 32AC- это и будет наш Original first Thunk.Сохраняем всё и запускаем.Если, до этих действий добавить в XXXDLL.dll после кода "case DLL_PROCESS_ATTACH:" любое сообщение, то после наших исправлений оно должно появиться-это и есть знак МЫ НА ПРАВИЛЬНОМ ПУТИ!!!Вот попали в адресное пространство ZZZ.exe.Дальше надо как то заменить апи реадфайл на на нашу функцию APIHook_ReadFile...Остановился здесь...Уважаемые форумчане пробуем, правим, заменяем, делимся...Дальше план такой- при удачной замене длл XXXDLL.dll,будет писать лог...Но мы можем и не писать, а перенаправлять данные в виртуальный порт(в архиве есть в коде), чтобы с него кушала наши данные любая другая навигация.Так же там в проекте виртуального порта уже есть функция конвертации в нужный протокол NMEA (попался на просторах инета).Eщё, попав в адресное пространство мы можем перехватывать нажатия аппартных клавиш ГУ и тем саммым перенаправлять родную оболочку на любую другую программу навигации...Всем кто в теме спасибо за внимание. П.С.Так же актуален вопрос: как внедрять длл с помощью кода и перехватывать реадфайл с помощью кода??? SDK2.doc-емулятор Вин се 6. переименовать в SDK2.msi Архив:[[Ссылки могут видеть только зарегистрированные пользователи. ]]> |
Есть ещё один план!!! Давайте обсудим!!!
Всем здравствуйте.Один мой земляк подсказал мне план.План прост.Хочу с вами его обсудить. Его + и -.План такой: Установить виртуальный ком порт.Изменить с помощью хекс редактора номер порта в приложении-утилите которая читает с порта(DrFish.exe).Сделать приложение, которое открывает аппаратный порт и скидывает данные в порт виртуальный, который мы поправили в DrFish.exe. Ну а там...Всем кто в теме спасибо за внимание.Жду обсуждений...
|
Новый план не подходит.Но есть ещё один план!
Всем здравствуйте.При разборе в хекс редакторе фиша, уидел : да можно поменять номер порта, но так же увидел функции с приставкой "COM". Это говорит, скорее всего, о том, что доктор фишь не только читает но и управляет портом...Мне подсказали добрые люди, что можно "слушать вместо навишации(перехват через инжект) стэк 127.0.0.1 на порту"...Там есть нужные нам данные...Теперь нам нужно изучить риеестр ГУ, чтобы представить какие порты у нас есть и послушать их, да и вообще врага надо знать в лицо...Для этого нам понадобится редактор риестра для МИПС архитектуры.У кого есть поделитесь пожалуйста.Всем спасибо за внимание...
П.С.Так же актуален вопрос: как сделать перехват с помощью кода? |
typedef struct udp_hdr
{ unsigned short source_port; // Source port no. unsigned short dest_port; // Dest. port no. unsigned short udp_length; // Udp packet length unsigned short udp_checksum; // Udp checksum (optional) } UDP_HDR; MessageBox(0, TEXT("программа открыта"),TEXT ("Error"), 0); HANDLE FileHandle,FileHandle2; if (FileHandle=CreateFile(L"\\DiskA3\\log_UDP.txt",GE NERIC_READ|GENERIC_WRITE, FILE_SHARE_WRITE | FILE_SHARE_READ, NULL, CREATE_NEW,FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, 0))MessageBox(0, TEXT("файл открыт"), TEXT("ок"), 0); SOCKET sServerListen; struct sockaddr_in localaddr,clientaddr; int iSize; char szIP [1024]; strcpy (szIP,"127.0.0.1"); //sServerListen = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); sServerListen = socket(AF_INET, SOCK_RAW, IPPROTO_UDP); //sServerListen = socket(AF_INET, SOCK_DGRAM, 0); if (sServerListen == INVALID_SOCKET) { MessageBox(0, TEXT("Can't create socket"),TEXT ("Error"), 0); return 0; } localaddr.sin_addr.s_addr = htonl(INADDR_ANY); //localaddr.sin_addr.s_addr = inet_addr(szIP); localaddr.sin_family = AF_INET; localaddr.sin_port = htons(29000); if (bind(sServerListen, (struct sockaddr *)&localaddr,sizeof(localaddr)) == SOCKET_ERROR) { MessageBox(0, TEXT("Can't bind"), TEXT("Error"), 0); return 1; } Добавлено через 1 минуту Лог с удп порта читай. А вот перехват я так и не освоил ;) Добавлено через 1 час 12 минут ну а вообще на 4pda есть тема соответствующая, почитай ее |
Текущее время: 20:42. Часовой пояс GMT +3. |
|
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot