Перейти к содержанию

fto

Пользователь
  • Публикаций

    50
  • Зарегистрирован

  • Посещение

Репутация

58 Excellent

Информация о fto

  • Звание
    Rank №3
  1. Специально для уверовавших в "рантайм" и "FUD". FirefoxHTTP264.dll (144 kb): md5: c83009a0096855abeaf22dbd9d35c1c5 clean 0/26 Пример, который делает вебфейки по http 2.0, работает под последний FF 66-й и Win10 x64. Несмотря на hde движок. Арифметика не сложная, АВ не будут ставить сигнатуры на код, который сложно отличить от легитимного, false позитивы никому не нужны, проще на инсталл и инжект в процесс поставить.
  2. Один покупатель взял, в одну руки уже не пройдет, думаю еще 1-2 продажи и на этом хватит. модулей никаких нет, сорцы чистый код написанный по rfc, в них нет ни единого вызова WinAPI, сейчас собираю пример как выполнить инжект
  3. В одни руки $5k. Либо 2-3 покупателя по $2k. Рантайм чего? Это исходники модуля, а не целого продукта. АВ обычно ставят сигнатуры на более конкуретные вещи, такие как инсталл, внедрение в процесс, работа по сети, генераторы имен и пр. На практике применения не было, разработка была под заказ, который был отменен.
  4. Однажды уже постил на аукционе, пожалуй не самое удачное места для сорцов. Продам сорцы позволяющие добавить поддержку инжектов/граббинга HTTP 2.0 в ваш проект. Написано мною по официальным RFC докам, абсолютно с нуля, зависимости только zlib, язык C/C++ (без ООП), поддержка как 32-бит, так и 64-бит само собой. Все внешние API вынесены в отдельные файлы, есть общее описание, весь код прокомментирован, форматирован и читабелен, стилистика согласованная. Прицепить можно в любой проект, сделано с душой и опытом 15+ лет в кодинге. Проверено на всех хромах и фаерфоксах работающих по сегодняшний день. Интеграция несложная - добавляется ветвление для запросов по протоколу HTTP/2.0, и обработчики для потоков данных, где реализуется модификация контента, все остальное реализовано внутри и вникать необязательно. Условие: без перепродажи, без публикации в открытом доступе. Цена: $2000 в BTC.
  5. с наступающим!

    С натуспившим всех! Первый Новый Год, когда про онлайн вспомнил только сейчас. Прекрасный год начался, всех поздравляю!
  6. Обратился к человеку по Telegram с просьбой посмотреть инфу по владельцу МегаФона, оплатил сразу. Обещал к вечеру. Сегодня смотрю, чат удален, сообщения потерты, но на хосте телега ещё не синхронизировалаь, сделаю скрин. Некрасиво выглядит.
  7. Корзина это виртуальное понятие в рамках Volume. Контейнер TrueCrypt простая технически штука с позиции криптографии, делает сквозное шифрование данных в режиме XTS, созданном для этих задач, ака крипто-прокси (посекторный многопоточный доступ). Файловые системы в не его компетенции, прикидываетсчя диском и размещает виртуальные сектора там где попросят - на реальном диске или в файле.
  8. Open Source

    И хром и лиса сливают телеметрию. Опера это хром со скинами. Вивальди это хром со скинами. Лиса выигрывает за счет архитектуры, как KDE, она полностью кастомизируется и настраивается, но с 57й версии отрезали low level api, встали на рельсы хромизации.
  9. Все верно, из коробки не поддерживает авторизацию, фоксипрокси для 57 версии, решений два - прокси-прокси с авторзацией по середине как например через проксифаер или допиливать браузер руками. Ни один нормальный браузер сейчас авторизацию на соксах не поддерживает. Ах, да, совсем забыл. Есть на самом деле решение под 57 версию, называет ProxyToggle. Появилась Native возможность использовать SOCKS5 авторизацию, но этого не добавили в интерфейс. Сорцы расширения ProxyToggle предельно простые, можно свое написать. Файл background .js это код интеграции WebExtensions. const proxyScriptURL = "pac.js"; function buttonClicked() { stateChange(true); } function stateChange(toggle) { function onGot(item) { state = item.state; proxySettings = item.proxySettings; if(toggle) { state = (state ? 0 : 1); browser.storage.local.set({ state: state }); } updateState(state, proxySettings); } function onError(error) { console.log('Error: ${error}'); } var gettingItem = browser.storage.local.get({ state: 0, proxySettings: {type: 'direct', host: '', port: 0, username: '', password: '', proxyDNS: false}}); gettingItem.then(onGot, onError); } function updateState(state, proxySettings) { if(state==0) { browser.browserAction.setIcon({path: "icons/p1.svg"}); browser.browserAction.setTitle({title: "Proxy Toggle (direct)"}); } else { browser.browserAction.setIcon({path: "icons/p2.svg"}); browser.browserAction.setTitle({title: "Proxy Toggle (using proxy)"}); } browser.runtime.sendMessage({type: "updateProxy", data: proxySettings}, {toProxyScript: true}); browser.runtime.sendMessage({type: "setCurrentProxy", data: state}, {toProxyScript: true}); } function handleInit() { browser.storage.onChanged.addListener((newSettings) => { if ("proxySettings" in newSettings) stateChange(false); }); stateChange(false); } function handleMessage(message, sender) { if (sender.url != browser.extension.getURL(proxyScriptURL)) return; if (message === "init") handleInit(message); else { //status/debug message from PAC console.log(message); } } browser.runtime.onMessage.addListener(handleMessage); browser.proxy.register(proxyScriptURL); browser.proxy.onProxyError.addListener(error => { console.error('Proxy error: ${error.message}'); }); browser.browserAction.onClicked.addListener(buttonClicked); Файл pac.js здесь обработчики отдающие настройки прокси для внешних адресов. var proxies = [ [{ type: 'direct', host: '', port: 0 }], [{ type: 'direct', host: '', port: 0 }] ]; var currentProxy = 0; browser.runtime.onMessage.addListener((message) => { switch(message.type) { case 'setCurrentProxy': currentProxy = message.data; //browser.runtime.sendMessage('PAC script set current proxy to ${currentProxy}'); break; case 'updateProxy': proxies[1][0] = message.data; //browser.runtime.sendMessage('PAC script updated proxy settings to ${JSON.stringify(proxies[1][0])}'); break; } }); function isLocal(host) { var local = new RegExp("(^[^.]*$)|(.local$)|(^127\.)|(^192\.168\.)|(^10\.)|(^172\.1[6-9]\.)|(^172\.2[0-9]\.)|(^172\.3[0-1]\.)|(^::1$)|(^[fF][cCdD])"); if (local.test(host)) return true; return false; } function FindProxyForURL(url, host) { //browser.runtime.sendMessage('Proxy request for ${host} - using ${currentProxy}'); if(isLocal(host)) { //browser.runtime.sendMessage('Local host detected - ${host}'); return proxies[0]; } return proxies[currentProxy]; } browser.runtime.sendMessage("init"); Файл settings.js здесь интеграция с настройками GUI и локальным хранилищем браузера. function saveOptions(e) { e.preventDefault(); browser.storage.local.set({ proxySettings: { type: document.querySelector("#type").value, host: document.querySelector("#host").value, port: document.querySelector("#port").value, username: document.querySelector("#username").value, password: document.querySelector("#password").value, proxyDNS: document.querySelector("#dns").checked } }); } function restoreOptions() { function onGot(item) { document.querySelector("#host").value = item.proxySettings.host; document.querySelector("#port").value = item.proxySettings.port; document.querySelector('#type [value="' item.proxySettings.type '"]').selected = true; document.querySelector("#username").value = item.proxySettings.username; document.querySelector("#password").value = item.proxySettings.password; document.querySelector("#dns").checked = item.proxySettings.proxyDNS; typeChanged(); } function onError(error) { console.log('Error: ${error}'); } var gettingItem = browser.storage.local.get({ proxySettings: {type: 'direct', host: '', port: 0, username: '', password: '', proxyDNS: false}}); gettingItem.then(onGot, onError); } function typeChanged() { var type = document.querySelector("#type").value; var usernamePasswordDisplay = 'none'; var dnsDisplay = 'none'; if(type=="socks") usernamePasswordDisplay = 'table-row'; else { document.querySelector("#username").value = ''; document.querySelector("#password").value = ''; } if(type=="socks"||type=="socks4") dnsDisplay = 'table-row'; else document.querySelector("#dns").checked = false; document.querySelector("#usernamerow").style.display = usernamePasswordDisplay; document.querySelector("#passwordrow").style.display = usernamePasswordDisplay; document.querySelector("#dnsrow").style.display = dnsDisplay; } document.addEventListener("DOMContentLoaded", restoreOptions); document.querySelector("#type").addEventListener("change", typeChanged); document.querySelector("form").addEventListener("submit", saveOptions);
  10. Да, ютуб это телек. Искать годный контент на ютубе как искать годный контент по телеку. Меинстрим аудитория определяет спрос и предложение. Любое масс медиа выращивает людей современной системы взглядов и ценностей, что как результат вполне успешно получается. Сохранение устойчивого строя общества выгодно всем корпорациям для реализации их планов и стратегий. Ведь там вполне плановая экономика и бесконтрольная трансформация общества несет большие риски. Например, как сейчас принято, получил базовое образование и вали на улицу жить отдельно от родителей, отрыв от семьи в раннем возрасте благодаря образованию и массовой культуре. Получаем уязвимого, зависмого и полностью управляемого индивидуума, плюс гарантии отсутствия семейного клана представляющего конкуренцию. Евреи не делают так и итальяшки, как результат их семейный подход позволяет править и создавать мощные кланы. А в основе все просто, хомо сапиенс не самый умный вид из предешествующих, но за счет социальных связей победил в эволюции. Научный факт. Социальные связи это мощнейшая сила. Массовая культура на создание индвидуализма позволяет плодить более слабых особей оторванных от этой силы. Ютуб, без всяких заговоров, продвигает массовую культуру и тренды направленные на эти все цели, другой массовой культуры нет, пару десятилетий установилась монополия. Спасает открытость доступа к информации, все же годный контент есть и можно фильтровать потоки информации.
  11. Я повидал десятки различных билдов и сделать нормально можно только проведя анализ различных версий. Компилятор в целях оптимизаций так сильно меняет цепочку вызовов и способ передачи аргументов, что простые способы здесь вообще не уместны. Особенно это касается 64-битной версии. А на 62-й версии произошел семантический переход и устойчивые сигнатуры с 42-й по 62-ю перестали нормально работать. Так же как это было до 42-й версии. Это уже пожалуй 4-й или 5-й серьезный перепил архитектуры. Потихоньку накапливали костыли, все эти "got handshake" флаги, и вот решили переделать. Чтобы нормально найти, нужно сделать несколько алгоритмов различного анализа, провести комплексный анализ для каждого этапа сохранив найденный список вариантов, потом эти варианты между собой сопоставить и вывести конечную оценку. Как в нейросетях система весов, где конечный результат определяется "наиболее вероятным", а не гарантированным. А эти коды error'ов лишь одна из опорных точек, они по разному компилятся и в разных местах появляются. Что они дают? Немного помогут локализовать среди 30-50 мегабайт несколько сотен участков потенциального кода уменьшив круг поиска.
  12. С++ С нуля До профи

    Надо писать малвару на .NET. Создает головную боль для антивирусных решений. Имеет наибольшие перспективы. Кроссплатформенно. А еще стильно, модно, современно. :D
  13. С++ С нуля До профи

    Поддержу Visual Studio 2015, стабильная версия. Рекомендую использовать Visual Studio в связке с VAssistX, намного приятнее работать. Так же ознакомься с Code::Blocks, это кроссплатформенное решение для серьезных разработок, если писать под nix то удобнее под Ubuntu, там прекрасная отрисовка шрифтов. Apocalypse, да, прям изобилует форум людьми которые в очереди стоят дабы купить софт за 7к - 15к, возьми к примеру тему с VAST, доходы по стате больше чем у мелких воришек в разы, только там совсем иные навыки нужны и это уровень хай лоад проектов, где надо обладать серьезными скилами. P.S. Тут один человек не может $3k собрать уже полгода, чтобы оплатить HTTP2 сорцы, которые просил сделать на заказ, чистый native без зависимостей. А в соседних темах люди скидываются баблом, чтобы купить лицуху на какой-то банкбот за средний прайс. :D :D :D А еще в соседних темах люди просят цитадель 2012 года выпуска в 2018 году. Времена по-моему не самые сытные судя по всему. :)
  14. С++ С нуля До профи

    Начнем с понимания главных моментов: 1. C это язык высокоуровневый, объектно ориентированный, с функциональными элементами. 2. C это инструмент для решения задач. 3. Написание вирусов это задача низкого уровня. 4. Знать C это знать как пользоваться инструментом. 5. Знать как решать задачи это знание различных подходов и методологий совмещенных со знаниями об использовании инструментов. Книги Скотта Майерса научат пользоваться инструментом. Книги Стива Макконелла. научат методологии решения задач. Есть еще банда четырех о шаблонах проектирования, стоит ознакомится до кучи. Писать вирусы это мелко. Начинай сразу мыслить шире, чтобы потом не продавать гавнософт за гроши для криминалитета.
  15. Ну если вариант "с инжектом и прочие костыли" отпадает, то как вариант удалить продукт через Uninstall с ключом /q и /w, зайти по RDP и сделать то же самое вручную если не прокатит :)
×