> Цель этого поста состоит в том, чтобы убедить Вас, что для твердого понимания C нужно так же хорошо понимать ассемблерный код, который генерирует Ваш компилятор C.
По отрывочным и не точным данным никакого понятия не будет.
> Я сделаю это на примере дизассемблирования и разбора простой программы на С с помощью GDB, а затем мы используем GDB и приобретенные знания ассемблера для изучения того, как устроены статические локальные переменные в С.
Это все-равно, что объяснять, как ездит автомобиль с помощью описания работы бензонасоса. Ну да, качает бензин. Куда? Откуда? Зачем?
Просто мое мнение — что такого рода материал должен охватывать большинство аспектов, пусть и очень поверхностно, но давая полную картину (если мы все еще говорим о статье для людей не посвященных в вопрос). Тут-же жуется только один нюанс, который человеку не знакомому с низкоуровневым программированием ну вообще ничего не скажет.
Например, тут делается разбор некоторого кода, который использует локальные переменные. Конечно, сначала необходимо объяснить, как x86 работает с данными, потом рассказать, что такое процедуры, зачем они нужны, и как они вызываются, плавно подведя рассказ к работе с глобальными переменными (и может их подвидом — статичными, которые на самом деле отличаются только областью видимости в коде) и локальными, почему они хранятся именно в стеке, аккуратно показав рекурсию и работу стека при ее использовании, объяснить, как функционирует стек в целом и зачем нужны два регистра-указателя. Это-бы дало понимание.
Далее рассматривается использование переполнения без объяснения его принципов, о регистре флагов ни слова и одно некорректное предложение насчет знаковости (знаковость существует только в компиляторе и уме программиста, компьютер работает с 1 и 0, впрочем есть специальные инструкции, которые дают выполняют арифметические операции с учетом трактовки данных как знаковых).
И еще раз, я так понял GDB — штука консольная? Зачем она новичкам? OlldyDbg или IDAPro ну куда понятнее.
А использование imm операнда (который указан непосредственно в инструкции, в данном случае — 0) может влиять на скорость? Понятно, что если брать из памяти — mov eax, [00040100h], где по 0x00040100 лежит 0 — однозначно медленнее.
> Низкоуровневое программирование — не мой профиль, поэтому если допустил какие-то неточности, буду рад узнать о них в ЛС
Тогда понятно. Статья очень слабая, я бы сказал, что этот материал есть на первой странице любого учебника по АСМ. В куда более толковом, полном и точном виде.
Сам использовал OllyDbg + FASM с немного доработанным MASM синтаксисом, от AT&T глаза на лоб лезут (не привык).
> в письменной форме сотавьте заявление на гарантийное обслуживание с указанием всех деталей, относительно данной ситуации и передайте продавцу под подпись. Не принять — не могут по закону. Ответить должны также письменно.
По практике мне советовали отсылать заказные письма, факт получения которых фиксируется.
> Откуда спустя два месяца ноут вернулся с новой материнской платой, после чего был успешно продан.
К слову, не знаю как в России, но в Украине ремонт не может длиться более 14 дней (не помню, календарных или рабочих, но да не в этом суть) и по истечению этого срока Вам должны либо вернуть отремонтированную технику, либо вернуть деньги, либо предоставить новую аналогичную технику (или ее модификации, с доплатой или опять-же возвратом части средств, но это уже на усмотрение потребителя). За сутки просрочки взымается пеня в размере 1% от стоимости товара.
У меня в прошлом году был N76vz, который я сдал после 3 месяцев пользования с полным возвратом денег.
А дело было в следующем — при переключении на дискретную карту он намертво зависал в некоторых приложениях и при некоторых сценариях использования (в играх например, но не во всех, в TES V только если долго держать на паузе, странно, да?) — такая-же проблема была у еще нескольких людей, которых я нашел в интернете.
Я отнес его в авторизированный СЦ, где неполадка была удачно воспроизведена и об этом сделана соответствующая запись в квитанции; далее, подождав 2 недели я послал заказные письма (лучше исопльзовать именно их, т. к. факт их получения фиксируется) продавцу и в СЦ, где потребовал либо вернуть мне деньги, либо предоставить новый ноутбук, идентичный оригинальному. Дело в том, что по закону Украины по гарантии в ремонте техника не может находиться более 14 дней. Магазин весьма корректно вернул деньги, правда потребовал экспертизу из СЦ, а СЦ вынужден был отправить ноутбук в Киев, что и заняло еще 1 неделю. В целом со стороны продавца и СЦ все было корректно. А вот производитель что, не тестирует собранные изделия совсем?
Бля, ну не нужно принимать законы, которые не будут соблюдаться. Это касается всего. Вот, например, вымостили плиткой дорожку, по которой из пункта А в Б идти в два раза дольше, чем напрямую, так сколько табличек «по газону не ходить» — все будут идти ближней дорогой.
Нормальная борьба с пиратством — это просто возможность приобрести удобно и быстро какое либо произведение (а не диск с ним, в данном случае я плачу и за диск, и за коробочку, и за топливо, которое было израсходовано, пока этот диск везли).
Если Вы сплайсите в точке вызова процедуры — Вы перехватите только ее вызовы из данной точки, если Вы сплайсите в точке входа в целевую процедуру — Вы перехватите все ее вызовы. Краткое содержание статьи.
Парни, чёт вы вообще какую-то херню сделали, я, например, ждал интерфейс оперы с ее фишками (а они у нее были уникальными) и от хрома только движок. А тут оперы не осталось-то.
1. У меня не открывается сайт torrentino.ru, только torrentino.com
2. При нажатии кнопки скачать конкретно по фильму — Хром предупреждает.
3. Случайная раздача (GTA SanAndreas отдает .torrent файл)
Тогда в чем причина для удивлений, если уже было передано управление исполняемому файлу, полученному из неблагонадежного источника? С таким же успехом он мог сделать свое дело и без галочек.
> Цель этого поста состоит в том, чтобы убедить Вас, что для твердого понимания C нужно так же хорошо понимать ассемблерный код, который генерирует Ваш компилятор C.
По отрывочным и не точным данным никакого понятия не будет.
> Я сделаю это на примере дизассемблирования и разбора простой программы на С с помощью GDB, а затем мы используем GDB и приобретенные знания ассемблера для изучения того, как устроены статические локальные переменные в С.
Это все-равно, что объяснять, как ездит автомобиль с помощью описания работы бензонасоса. Ну да, качает бензин. Куда? Откуда? Зачем?
Просто мое мнение — что такого рода материал должен охватывать большинство аспектов, пусть и очень поверхностно, но давая полную картину (если мы все еще говорим о статье для людей не посвященных в вопрос). Тут-же жуется только один нюанс, который человеку не знакомому с низкоуровневым программированием ну вообще ничего не скажет.
Я не согласен.
Например, тут делается разбор некоторого кода, который использует локальные переменные. Конечно, сначала необходимо объяснить, как x86 работает с данными, потом рассказать, что такое процедуры, зачем они нужны, и как они вызываются, плавно подведя рассказ к работе с глобальными переменными (и может их подвидом — статичными, которые на самом деле отличаются только областью видимости в коде) и локальными, почему они хранятся именно в стеке, аккуратно показав рекурсию и работу стека при ее использовании, объяснить, как функционирует стек в целом и зачем нужны два регистра-указателя. Это-бы дало понимание.
Далее рассматривается использование переполнения без объяснения его принципов, о регистре флагов ни слова и одно некорректное предложение насчет знаковости (знаковость существует только в компиляторе и уме программиста, компьютер работает с 1 и 0, впрочем есть специальные инструкции, которые дают выполняют арифметические операции с учетом трактовки данных как знаковых).
И еще раз, я так понял GDB — штука консольная? Зачем она новичкам? OlldyDbg или IDAPro ну куда понятнее.
mov eax, [00040100h]
, где по 0x00040100 лежит 0 — однозначно медленнее.Тогда понятно. Статья очень слабая, я бы сказал, что этот материал есть на первой странице любого учебника по АСМ. В куда более толковом, полном и точном виде.
Сам использовал OllyDbg + FASM с немного доработанным MASM синтаксисом, от AT&T глаза на лоб лезут (не привык).
По практике мне советовали отсылать заказные письма, факт получения которых фиксируется.
К слову, не знаю как в России, но в Украине ремонт не может длиться более 14 дней (не помню, календарных или рабочих, но да не в этом суть) и по истечению этого срока Вам должны либо вернуть отремонтированную технику, либо вернуть деньги, либо предоставить новую аналогичную технику (или ее модификации, с доплатой или опять-же возвратом части средств, но это уже на усмотрение потребителя). За сутки просрочки взымается пеня в размере 1% от стоимости товара.
xor eax, eax
— можно так обнулять регистр, по идее быстрее, чемmov eax, 0
.А дело было в следующем — при переключении на дискретную карту он намертво зависал в некоторых приложениях и при некоторых сценариях использования (в играх например, но не во всех, в TES V только если долго держать на паузе, странно, да?) — такая-же проблема была у еще нескольких людей, которых я нашел в интернете.
Я отнес его в авторизированный СЦ, где неполадка была удачно воспроизведена и об этом сделана соответствующая запись в квитанции; далее, подождав 2 недели я послал заказные письма (лучше исопльзовать именно их, т. к. факт их получения фиксируется) продавцу и в СЦ, где потребовал либо вернуть мне деньги, либо предоставить новый ноутбук, идентичный оригинальному. Дело в том, что по закону Украины по гарантии в ремонте техника не может находиться более 14 дней. Магазин весьма корректно вернул деньги, правда потребовал экспертизу из СЦ, а СЦ вынужден был отправить ноутбук в Киев, что и заняло еще 1 неделю. В целом со стороны продавца и СЦ все было корректно. А вот производитель что, не тестирует собранные изделия совсем?
Нормальная борьба с пиратством — это просто возможность приобрести удобно и быстро какое либо произведение (а не диск с ним, в данном случае я плачу и за диск, и за коробочку, и за топливо, которое было израсходовано, пока этот диск везли).
2. При нажатии кнопки скачать конкретно по фильму — Хром предупреждает.
3. Случайная раздача (GTA SanAndreas отдает .torrent файл)
???