akimdi, если речь идёт о ночной сборке фаерфокса, то можно. Все пакеты из AUR (а ночная сборка находится там) компилируются в Вашей системе и линкуются с Вашими текущими библиотеками, если это возможно.
В крайнем случае можно отредактировать PKGBUILD так, чтобы он устанавливал программу в альтернативную локацию.
akimdi, чтобы иметь свежие пакеты в Arch не обязательно пользоваться AUR. В обычном контролируемом разработчиками репозитории арча обычно лежат намного более свежие пакеты чем в дебиане. AUR нужен для чего-то специфичного, а такого софта немного. Даже если пользоваться AUR, никто Вам не мешает самостоятельно проверить PKGBUILD перед установкой на предмет подмены источника или левых патчей с вредоносами.
У Вас ссылка на то, где написано как восстанавливать линуксовый загрузчик сломана.
Просто предположение: вы запускаете grub-install не с chroot'а в целевую систему, а с самой флешки, потому и получаете /dev/sdc1 вместо целевого диска.
Я может глупую вещь скажу, поскольку совсем не силён в теме... Но развре массив probe не должен внутри meazure читаться в (псевдо?)случайном порядке, чтобы исключить упреждающее чтение?
И вторая глупая заметка: Неужели конвеер успеет добраться до пятой инструкции прежде чем произойдёт проверка прав доступа на первую?
Менять jmp на nop без возврата управления вызывающей процедуре очень плохая идея, на мой взгляд. jmp всё таки безусловный переход и компилятор никак не ожидает, что instruction pointer окажется за ним после выполнения, а значит дальше будет выполняться какой угодно код, кроме нужного.
kloppspb, да собственно ответ на вопрос "зачем?" прямо в самом верху оригинального вопроса. Краткий ответ на него: "потому что Valve не публикует все заголовочные файлы".
Если вопрос касается именно моей мотивации, то можно сказать у меня хобби такое: взять проприеритарщину, которой я пользуюсь, и попытаться устранить неудобства, которые она вызывает при использовании под linux. В конкретно этом случае успех почти достигнут, но до полноценного продукта как раз не хватает работоспособности со всеми версиями API без танцев с бубном.
kloppspb, я собственно и расчитывал в этом вопросе узнать какие-нибудь грязные хаки, недокументированное поведение компилятора или что-то ещё, за что можно зацепиться. Среди диких, но нерабочих идей у меня были даже подсчёты push'ей в вызывающей функции.
Но пока самая адекватная - брать IDA и долго, муторно выписывать сигнатуры методов из всех найденых версий виртуальных таблиц. Единственная сложность, что IDA не всегда правильно угадывает эти сигнатуры (да и саму точку входа в метод).
Об этом я знаю, но возникает вопрос: где в рантайме можно найти информацию о закодированном имени виртуального метода? Заранее мне не известно как выглядит объект, возвращаемый steamclient.so, а значит максимум что я могу о нём узнать - количество виртуальных методов (из виртуальной таблицы) и информацию о наследовании.
Насколько мне известно, в определённых ситуациях компилятор может вообще не производить кодирование имён виртуальных методов. И, кажется, это как раз тот случай, так как из steamclient.so эти методы ни в каком виде не торчат при objdump'е. Хотя возможно steamclient.so просто берёт эти объекты из других либ steam, но отследить этот путь мне пока не удалось.
UPD: я нашёл виртуальную таблицу для каждой из версий классов в steamclient.so, но имён методов там нигде нет.
Станислав Силин, Проблема в том, что вызов осуществляет код скомпилированный в MSVC (код игры из steam) и я (обёртка) получаю управление с уже забитыми аргументами в стек. Код, осуществляющий вызов ожидает от меня, что я знаю, сколько аргументов положено в стек и сам их оттуда вытащу.
В то же время я передаю управление коду, скомпилированному в GCC (steamclient.so), знающему какие аргументы были переданы, но не очищающему стек (не возвращающему esp в положение до помещения в стек аргументов).
Получается, что мой код должен не зная сколько аргументов было помещено в стек, вытащить их оттуда (или вернуть esp на позицию до помещения туда аргументов).
DragoN DragoN Штука в том, чтобы найти заведомо компилирующееся ядро. Если нужного драйвера под это ядро нет, естественно нужно допиливать код драйвера. Но этот путь и правда довольно тернист и занял у меня не одну неделю.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
В крайнем случае можно отредактировать PKGBUILD так, чтобы он устанавливал программу в альтернативную локацию.