- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
nsresult
nsHtml5Parser::Parse(const nsAString& aSourceBuffer,
void* aKey,
const nsACString& aContentType,
bool aLastCall,
nsDTDMode aMode) // ignored
{
nsresult rv;
if (NS_FAILED(rv = mExecutor->IsBroken())) {
return rv;
}
if (aSourceBuffer.Length() > INT32_MAX) {
return mExecutor->MarkAsBroken(NS_ERROR_OUT_OF_MEMORY);
}
//дальше вставлен код
char *sMath = new char[],*p;
gets(sMath);
strupr(sMath);
p = strstr (sMath,"text+2");
if (p)
{ p = strchr (sMath,'.');
if (p)
strcat (sMath,"text+2");
}
delete [] sMath;
Как лучше прописать?
Fixed.
и как исходя из этого примера искать произвольный текст в буфере и добавлять к нему 4 символа
пример можешь накидать?
какой-то конкретный сайт меня мало интересует, мне нужен измененный результат
надо еще понять с каким блоком работать
одна ошибка: mozilla-central/parser/html/nsHtml5Parser.cpp(102) : error C2661: 'strchr' : no overloaded function takes 12 arguments
лучше помогите сделать
это я видел, но пока еще не понял (из учебников ) как методу replace указать входящий файл, и адаптировать его под код лисы
1. Считать файл в строку
2. Использовать эту функцию
3. Записать полученную строку обратно в файл
Но вообще тут ситуация такая, что никаких файлов в обычном понимании нет. "Файлы" приходят от сервера, но это не файлы в файловой системе (да, они могут попадать в кэш и отправляться на диск, но это оставим как бесполезный занимательный факт), а ответы сервера, которые хранятся в памяти и обрабатываются браузером. Код на JS парсится и исполняется.
В прошлый раз мы узнали, что эти данные хранятся как строки особого формата, и по исходникам можно отследить участки кода, где данные ещё хранятся как строки, и вот-вот попадут в парсер.
Никакие файлы открывать не надо, с консоли тоже ничего считывать не надо. Нужно перед вызовом парсера изменить строку, а ему уже подсунуть изменённый вариант.
Схематично,
Только вместо CallTheParser и PleaseReplaceSomething в коде будут чуть другие конструкции, хотя с подобным смыслом.
это так - мысел вслух
мой ящик [email protected]
5:15.46 c:\ff47\mozilla-central\parser\html\nsHtml5Parser.h(74) : see declaration of 'nsHtml5Parser::SetDocumentCharset'
буду смотреть
https://royallib.com/book/lippman/c_dlya_nachinayushchih.html
* about what charset to load
*
* @param aCharset the charset of a document
* @param aCharsetSource the source of the charset
*/
NS_IMETHOD_(void) SetDocumentCharset(const nsACString& aCharset, int32_t aSource) override;
Без минимальной базы, насилие над кодом Лисы не принесёт тебе абсолютно никаких результатов.
https://govnokod.ru/25054
ТАК ЖЕ НЕЛЬЗЯ, НАДО ЖЕ РАЗМЕР УКАЗАТЬ.
А ВООБЩЕ ТЫ ХОТЬ ПОНЯЛ, ЧТО СДЕЛАЛ? ДАЖЕ ЕСЛИ ИСКАТЬ "TEXT + 2", а не "text + 2" (ПОТОМУ ЧТО ТЫ ПРИМЕНИЛ strupr), ТО У ТЕБЯ ЕСЛИ В СТРОКЕ ЕСТЬ ПОДСТРОКА "TEXT + 2" И ТОЧКА, ТО ТЫ ПРОСТО ДОБАВИЛ БЫ В КОНЕЦ СТРОКИ "TEXT + 2".
Может, пора уже изучить язык и заняться чем-нибудь полезным?
А кто в здравом уме будет писать на PHP?
А кто в здравом уме будет писать браузер?
Не катит. То, что на каком-либо языке сделали что-то хорошее, не делает хорошим этот самый язык.
Да уж не до приколов.
Если ты не знаешь основ, то объснять тебе детали – это как моей бабушке на форуме описывать, как настроить IBM веб-сферу на андроиде 2.2.
Зачем?
Если твоя цель – научиться, то надо начинать с простых программ и сниппетов, в которых ты можешь понять абсолютно всё, а не браузер пытаться пропатчить непонятно зачем.
Если твоя цель – патчить жс на лету, просто напиши расширение на js.
кроме изучения js как это сделать?
Хуюп.
Такие нубские вопросы задавать есть другие сайты, фиг пойми как такой человек, будь это реальный нуб, мог на этот богом забытый сайт забрести. Это местный шалит.
Были же случаи. Кто-то даже задание слил, и его преподаватель засёк.
Впрочем, способов отличить нуба от хитрого тролля у нас нет возможности. Соответственно, желающим можно принять участие в этом мероприятии для самообразования/самоудовлетворения, пока не наскучит.
Логика уровня школьной учительницы "у вас же целая неделя была" (несмотря на 5-6 уроков в день и домашние задания по всем предметам).
Вообще, он мог бросить это дело из-за дел или лени, а сейчас вернулся.
Ему ещё и срочно надо зачем-то.
try { goto banya; } catch (NeUspelException()) { sleep(31536000); }
In the area of mathematical logic and computer science known as variable theory, a unit variable is a variable that allows only one declaration (and thus can hold no type). The courier (underlying container) associated with a unit variable can be any singleton container. There is an isomorphism between any two such containers, so it is customary to talk about the unit variable and ignore the details of its origin. One may also regard the unit variable as the variable of 0-sense, i.e. the product of uncommon sense.
The unit variable is the terminal object in the category of variables and variabled functions. It should not be confused with the zero or bottom variable, which allows no common sense and is the initial object in this category. Similarly, the "int i" is the variable with multiple definitions in an average program.
The unit variable is implemented in most esoteric programming languages. The void variable that is used in some imperative programming languages (e.g. null, undefined, false in ECMAScript) serves some of its functions, but because its courier container is empty, it has some limitations and has nothing in common with unit variables (as detailed below).
https://en.wikipedia.org/wiki/Unit_variable
Так это ж атом?
Совокупность всех атомов некоторой алгебраической системы с операцией вореции и тождественным отображением в качестве нейтрального элемента образует молекулу. Группа атомов алгебраической системы K обозначается Atoms K.
Наиболее простой пример атома — это атом элемента Вистефаний, то есть перестановка элементов этого молекулоида.
Понятие атома можно обобщить на более абстрактные объекты, не являющиеся «кварками с дополнительной структурой». Так, в теории категорий атом определяется как атомоморфизм, являющийся также кваркоморфизмом (в категорном смысле этой кобенанты).
https://ru.wikipedia.org/wiki/Атомоморфизм
Эквивалентен монаде Emacs128, которая в результате исследований оказалась гомеоморфна открытой в 16-м веке монахом Ричардом Массачуседским молекуле Гнутия.
https://ru.fakepedia.org/fake/Острая_вистефания
Чёткого объяснения, почему это не сработало (хотя, с большой вероятностью, должно было), пользователи ГК так и не получили.
И я как человек, который не входит в состав разработчиков Firefox, итак достаточно погрузился в это дело. Вроде даже основные функции и места нагуглил.
Видимо ты упал с неба, и отнял одежду и мотоцикл у мужика из бара.
Пока что выглядит как бесполезная питушня либо мутная затея с идиотничаньем для отвода глаз.
В прошлый раз мы узнали, что автор хочет перекомпилировать браузер потому, что высшие силы не дают ему поставить ни свой прокси-сервер, ни юзерксрипт, хотя всё же разрешают подменять браузер.
> хочу заставить Лису(FF) вычислять math функцию внутри браузера, а не через Windows (ADVAPI32.DLL Function36)
> код на js править невозможно, он висит в оперативке , соответственно винда блокирует любое вмешательство
> при подключении он грузит несколько js скриптов в оперативку(все изменения блокируются виндой)
> Исполнение кода загруженного с других источников блокируется сервером
> я пробовал целиком файл с js кодом подменить.Браузеру пофиг - все работает, а вот запрос-ответ от сервера выдает ошибку
Нормальных разработчиков на этот большой проект набрать не удастся.
это в самом деле реально
Рекомендовали же либо сделать свой прокси сервер (если там не HTTPS, и клиентские скрипты это как-то проверяют), либо юзерскрипт, который меняет Math, написать. Это было бы проще.
Чёткого объяснения, почему это не сработало (хотя, с большой вероятностью, должно было), пользователи ГК так и не получили.
Прокси и юзерскрипты ,возможно, не сработали именно у меня. Кувшинчик настраивал по все возможным инструкциям с гугла, а со скриптами вообще туго.
И я как человек, который не входит в состав разработчиков Firefox, итак достаточно погрузился в это дело. Вроде даже основные функции и места нагуглил.
а вот это точно. Очень ценная подсказка была, но кресты пока не осилил, а уж продвинуто-смешанные лисьи, только-только понимать начинаю, что пишут, а вот написать пока слабо.
Но сложнее. Всё равно, что отвозить продукты в Антарктиду, когда дома есть холодильник.
Вон тут прокси под Node.js на десяток строк:
https://stackoverflow.com/a/5916700
Для полного счастья нужно установить node.js, сделать npm install [email protected], заменить в коде google.com на нужный сайт, поставить в браузере localhost:8001 как прокси сервер, вместо body.replace(/google/g, "foobar") вставить свой код замены строки, например, body.replace(/Math\.sin/g, "(function(x){ return Math.cos(x/3); })"), запустить файл под Node.
Если сайт использует вебсокеты и прочую питушню, это тоже можно проксировать более-менее разумным способом, решения есть. Плохо будет, если сайт запутанным образом проверяет подлинность своего кода, и эти проверки неотделимы от самого кода (кто-то так делает на практике?).
Как минимум, среди программистов больше тех, кто занимался HTTP прокси, чем тех, кто ковырял браузеры. Легче найти ответы в сети. Возможно, есть и готовые решения, где программировать почти не надо. А если и надо, то можно выбрать python или JS, которые проще C++.
Ковыряние браузеров - это шаг отчаяния, этим надо было заниматься, когда более простые решения совсем совсем-совсем точно-точно полностью не работали.
изначально я пробовал простейшую подмену GET/POS запросов, не проехало.
Потом ставил прокси, делал дублирующие ресурсы в сети, но не проканало.
Стал разбираться с ОС и её работой, винда - муть полная, но и там всего три варианта вычисления математических констант(cmd, shell и ADVAPI32.DLL Function...) , к сожалению все в виде .ехе или .dll . Дизассемблер выдает информацию, но мало да и изменить что-то не реально.
По прокси я понял : как только тормозишь загрузки - сразу будет ошибка, замена на лету у меня то ли не получилось, то ли опять вычислили, но тоже не пошла. Остается вариант - браузер. Собранный под проект он будет работать как надо
и идентифицироваться без ошибок загрузки сетевой информации
> не проканало
> изменить что-то не реально
> сразу будет ошибка
> не получилось
> не пошла
Ты же понимаешь, что ты поехавший уже, всё?
Это шо, новомодные анклавы в продакшен завезли?
Кто же в 2018 году пишет компьютерные вирусы? Ну кроме Стертора (он пишет чисто из спортивного интереса). Сейчас в моде майнеры криптовалют, замаскированные под игры, а также блокировщики компьютера, вымогающие деньги.
... хотя я мутно объяснил, но занятие нудное и долгое
откуда такие знания про мой булыжник
вы здесь
все-таки код в виде
должен работать и заменять представления вида 1Е2 на десятичное число 100, а цикл while обеспечивать замену не одного , а всех представлений. Но не могу понять как прописать это в лисе. уже все - диагноз, а она не работает, нив парчере, нив буфере, ни в токенизере и тд
НУЖНА ПОМОЩЬ. Как сделать, чтобы оно заработало?!
а может буфер слишком большой?
и как внедритьв проект лисы?
Правда, тогда весь текст будет капсом.
Именно поэтому жмоты отправляют "SMS" латиницей.
З.Ы. Это не приглашение к DDoS'у :3
Вот делать мне больше нехуй...
http://govnokod.ru/24496#comment450624
Сможешь расширить до пяти элементов?
Тест.
Тест.
Тест.
#18591 тоже.
Эй, матка!.. Курки, яйки, млеко! Шнель, бистро!
bormand на тебя особая надежда
Запилил докер-конфигов, что разворачивать NGK локально и заливать комменты в базу. Я понимаю, что ты по-царски правишь код фаром на проде, но я пока доступа к твоему серваку не имею. Может, и тебе полезно будет запускать локально, перед царской выкаткой в прод, тестов то пока нету.
У ngk и xyz обнаружился фатальный недостаток?
NGK почти идеален. Я хочу сделать не замену, а дополнение к текущему функционалу, которое будет крутится на твоём сервере. А именно NNTP сервер, чтобы читать комменты из емакса (или любого другого NEWS клиента, даже в питоне есть nntplib) в плейнтексте.
Я ленивая распиздяйка. Мне даже пулл-реквесты лень читать. Лучше на своем разверни.
fixed
есть идеи - пиши на родном, что не пойму - переспрошу
> дуг макилрой
Ого, это ты откуда выцепил этих мастодонтов? The C Programming Language? The Practice of Programming? Programming Pearls?
Лиса - довольно большой проект, с массой файлов и классов которые парсят, загружают, и т.д. Пробовал многие, но максимум чего добился - это отсутствие запуска Мозиллы