Задать вопрос
  • Как избавиться от ада зависимостей в Debian?

    xomachine
    @xomachine
    akimdi, если речь идёт о ночной сборке фаерфокса, то можно. Все пакеты из AUR (а ночная сборка находится там) компилируются в Вашей системе и линкуются с Вашими текущими библиотеками, если это возможно.

    В крайнем случае можно отредактировать PKGBUILD так, чтобы он устанавливал программу в альтернативную локацию.
  • Как избавиться от ада зависимостей в Debian?

    xomachine
    @xomachine
    akimdi, чтобы иметь свежие пакеты в Arch не обязательно пользоваться AUR. В обычном контролируемом разработчиками репозитории арча обычно лежат намного более свежие пакеты чем в дебиане. AUR нужен для чего-то специфичного, а такого софта немного. Даже если пользоваться AUR, никто Вам не мешает самостоятельно проверить PKGBUILD перед установкой на предмет подмены источника или левых патчей с вредоносами.
  • Как загрузить antegros, если уже установлена win 8.1?

    xomachine
    @xomachine
    У Вас ссылка на то, где написано как восстанавливать линуксовый загрузчик сломана.

    Просто предположение: вы запускаете grub-install не с chroot'а в целевую систему, а с самой флешки, потому и получаете /dev/sdc1 вместо целевого диска.
  • Как прочитать память ядра на процессоре Intel используя уязвимость meltdown?

    xomachine
    @xomachine
    Я может глупую вещь скажу, поскольку совсем не силён в теме... Но развре массив probe не должен внутри meazure читаться в (псевдо?)случайном порядке, чтобы исключить упреждающее чтение?
    И вторая глупая заметка: Неужели конвеер успеет добраться до пятой инструкции прежде чем произойдёт проверка прав доступа на первую?
  • Как убрать вызов функции в exe, пропатчив его?

    xomachine
    @xomachine
    Менять jmp на nop без возврата управления вызывающей процедуре очень плохая идея, на мой взгляд. jmp всё таки безусловный переход и компилятор никак не ожидает, что instruction pointer окажется за ним после выполнения, а значит дальше будет выполняться какой угодно код, кроме нужного.
  • Возможно ли узнать сигнатуру виртуального метода из рантайма?

    xomachine
    @xomachine Автор вопроса
    kloppspb, да собственно ответ на вопрос "зачем?" прямо в самом верху оригинального вопроса. Краткий ответ на него: "потому что Valve не публикует все заголовочные файлы".

    Если вопрос касается именно моей мотивации, то можно сказать у меня хобби такое: взять проприеритарщину, которой я пользуюсь, и попытаться устранить неудобства, которые она вызывает при использовании под linux. В конкретно этом случае успех почти достигнут, но до полноценного продукта как раз не хватает работоспособности со всеми версиями API без танцев с бубном.
  • Возможно ли узнать сигнатуру виртуального метода из рантайма?

    xomachine
    @xomachine Автор вопроса
    kloppspb, я собственно и расчитывал в этом вопросе узнать какие-нибудь грязные хаки, недокументированное поведение компилятора или что-то ещё, за что можно зацепиться. Среди диких, но нерабочих идей у меня были даже подсчёты push'ей в вызывающей функции.
    Но пока самая адекватная - брать IDA и долго, муторно выписывать сигнатуры методов из всех найденых версий виртуальных таблиц. Единственная сложность, что IDA не всегда правильно угадывает эти сигнатуры (да и саму точку входа в метод).
  • Возможно ли узнать сигнатуру виртуального метода из рантайма?

    xomachine
    @xomachine Автор вопроса
    Об этом я знаю, но возникает вопрос: где в рантайме можно найти информацию о закодированном имени виртуального метода? Заранее мне не известно как выглядит объект, возвращаемый steamclient.so, а значит максимум что я могу о нём узнать - количество виртуальных методов (из виртуальной таблицы) и информацию о наследовании.

    Насколько мне известно, в определённых ситуациях компилятор может вообще не производить кодирование имён виртуальных методов. И, кажется, это как раз тот случай, так как из steamclient.so эти методы ни в каком виде не торчат при objdump'е. Хотя возможно steamclient.so просто берёт эти объекты из других либ steam, но отследить этот путь мне пока не удалось.

    UPD: я нашёл виртуальную таблицу для каждой из версий классов в steamclient.so, но имён методов там нигде нет.
  • Возможно ли узнать сигнатуру виртуального метода из рантайма?

    xomachine
    @xomachine Автор вопроса
    Станислав Силин, Проблема в том, что вызов осуществляет код скомпилированный в MSVC (код игры из steam) и я (обёртка) получаю управление с уже забитыми аргументами в стек. Код, осуществляющий вызов ожидает от меня, что я знаю, сколько аргументов положено в стек и сам их оттуда вытащу.

    В то же время я передаю управление коду, скомпилированному в GCC (steamclient.so), знающему какие аргументы были переданы, но не очищающему стек (не возвращающему esp в положение до помещения в стек аргументов).

    Получается, что мой код должен не зная сколько аргументов было помещено в стек, вытащить их оттуда (или вернуть esp на позицию до помещения туда аргументов).
  • Как собрать модуль для Android?

    xomachine
    @xomachine
    DragoN DragoN Штука в том, чтобы найти заведомо компилирующееся ядро. Если нужного драйвера под это ядро нет, естественно нужно допиливать код драйвера. Но этот путь и правда довольно тернист и занял у меня не одну неделю.