![]() |
[c++] [firefox] скрытый переход по линку
Добрый день,
К примеру есть следующая хтмл страница, открытая в лисе (допустим ее адрес, находящийся в панели адреса - http://www.CURRENT.com/another.php): <html> <body> <form action=http://www.ORIGINAL.com/main.php> ....... // контент формы </form> </body> </html> нужно чтобы после сабмита юзером формы, в браузере остался адрес http://www.CURRENT.com/another.php, а ответ был отображен от сервера http://www.ORIGINAL.com/main.php Желательно сделать это хуком какойнить функции фф или winsock. Посдкажите каким образом можно реализовать подобный скрытый серфинг? Я вообще хотел делать так: 1. в PR_Write (оболочка для send) изменить заголовки так, чтобы они соответствовали http://www.CURRENT.com/main.php 2. в send поменять заголовки обратно)) таким образом фф занесет нужный адрес урла (http://www.ORIGINAL.com/main.php) в нужный буффер и в нужный момент времени, а именно как только получит первые данные от recv, в поле урла должен отобразиться нужный урл))) во всяком случае это в теории |
еще вопрос, как быть с хттпс? весь запрос включая хедеры и тело шифруется и подменить нужный текст запроса не получится(
|
эм если пишешь под windows что мешает тебе напрямую работать с окном fireFox через winAPI функции?
FindWindow, GetWindowText, SetWindowText чтобы быстро найти нужный элемент используй стандартную утилиту VS - Spy++ чтоб писать легче было прогу алгоритм такой: нашли окно нашли нужный элемент цикл бесконечный с задержкой в несколько миллисекунд чтобы не грузить процессор запросили текст элемента в нем, если нужный сайт переписываем что нужно... |
это работает с ИЕ (причем некрасиво), но не работает с фф, т.к. там механизм окон реализован подругому. я не нашел окна, ответственного за прием сообщений об изменении поля с урл.
я вообще хз че с этим фф делать( |
только что промониторил все окна мозиллы, ничего с http туда не приходит, нужен другой подход. хук send тоже неподходит. остается хук PR_Write, но подменяя хедеры GET / на GET /adad.php в строке урла получаем:
http://ya,ru/adad.php !!! то же самое с хуком send, значит получение урла, откуда получен ответ, происходит какимто другим образом |
вопрос: откуда можно достать инфу с какого урла качается в данный момент инфа (функцией PR_Read или recv)? насколько мне известно в ответе от сервера нет информации откуда пришел ответ!
|
ага... нету есть только запрос
GET path HTTP POST path HTTP ну а вообще вроде поле HOST является обязательным параметром. + ко всему есть такая штука как индификатор сокета - а его можно узнать так же можно узнать какие сокеты открыл процесс с какими индификаторами... http://forum.antichat.ru/showpost.php?p=1302363&postcount=28 в общем трындец ) |
ну допустим я знаю идентификатор сокета(они передаются как параметры функциям PR_Read/PR_Write, а они обе у меня захучены) че дальше?))
это имеешь ввиду? Код:
ress = sizeof(sockaddr_in);//--- commenting this line would cause an 10014 error.может ff список какойнить создает, где хранится этот path? |
чет не понял что ты хотел сказать своим постом) за коды ответа спасибо, но мне нужно всего-лишь одно:
чтобы я перешел на yandex.ru/yandsearch?text=any а в строке браузера было: http://yandex.ru/ ! ща перелопатил исходники фф вместе с документацией пришел к выводу, что докопаться до поля урла можно 2мя способами: 1. xpcom 2. чезез shell-функции мозиллы (LoadURI()/OnLinkClick()) https://developer.mozilla.org/en/Document_Loading_-_From_Load_Start_to_Finding_a_Handler с первым я никогда не работал, а вторые проблематично вызвать, т.к. они находятся в самом ехе, а не во внешней длл( в общем какойто пестец |
ну а че тут не понятного? ) тебе надо хреначить расширение для мозилы-тормозилы )
читай как это делается https://developer.mozilla.org/En/Firefox_addons_developer_guide я в принципе допер ) все пишется на языке javascript используя DOM мозилы и ее внутренние всякие функции... |
я инжектюсь в АП фф, хотелось бы решить это без аддонов) либо написать его так, чтобы я имел полный контроль над аддоном. в принципе нужно это тока для хттпс, возможно прокатит такой вариант:
1. подменяем в PR_Write path на тот что наодится в поле адреса в данный момент 2. расшифровываем send и подменяем запрос обратно по идее не должен он из зашифрованного запроса выстаскивать урл... ну самый крайний вариант - написать свой send или отлавливать запрос на более низком уровне.. |
qsd главный вопрос - зачем? )))
вот тебе еще бредовая идея ) делать WM_POPUP окно поверх всех окон. в нем рисовать белую полоску и текст с адресом. вот оно и будет перекрывать адрес )))) ахахах |
нужно очень) есть есть силы, возможности и желание, заплачу за реализацию)
ps я уже думал об этом)) |
вот набросал на FASM :)
нужно из объявлений удалить не используемые функции + удалить cmp [uMsg],WM_LBUTTONDBLCLK je .destroy что бы она не закрывалась по двойному нажатию и изменить mov [wc.hbrBackground],25d // 25d это цвет подсказки на COLOR_WINDOW+1 и по хорошему сделать командную строку для запуска типа x y width height text Код:
format PE GUI 4.0у меня получилась 2048 байт прога ) но думаю можно и поменьше сделать |
Retimiled :) если бы там был едит контрол...
|
Беру слова обратно ... на графику отвечайте графикой! 8))
|
Retimiled типа умный? посмотри на мозилку через spy++ , а потом говори.
у нее собственный интерфейс и стандартные виндовые функции тут не работают. и вообще 5 января люди расслабляют мозг ) креатив выходит с бадуна ) заплатки вон оконные :D |
Gar|k
спасиб за код, но нада бы найти более красивый метод) слишком много вариантов когда это не прокатит (например - юзер ресайзит окно) ну ты и сам понимаешь))) |
| Время: 23:35 |