Pull to refresh
12
0
Медведь по сравнению с ними в эффективности сна просто сосёт.

Энергосбережения же.
Обычно перед покупкой можно послушать семпл, которого хватает чтоб понять как начитано.
Я споткнулся уже на первом обзаце:
Хотите, например, прочитать книгу судьи Бретта Кавано

В оригинале:
Want to read Brett Kavanaugh buddy Mark Judge’s old book, for instance

Judge — фамилия автора книги, который, в свою очередь, является приятелем Бретта.
сборку кода
сборочные инструкции

За такой перевод надо значок «Надмозг» выдавать. Не сразу догадался что в оригинале там было «assembly».
Носимый компьютер вмещает большое количество других чипов, а также аккумулятор на 36,77 Вт.
36,77 Вт⋅ч (ватт-час)
Более того, zstd позволяет сначала построить единый словарь для всех имеющихся данных, а затем сохранить его один раз и сжать им все страницы.
Справедливости ради, zlib так тоже умеет. См. inflateSetDictionary/deflateSetDictionary.
В некоторых странах популярны замки, захлопавающиеся без ключа. С ними проблемы оставить ключи нет, вот только у тех кто к ним не привык это случается непроизвольно.
Переводить с иностранного языка на родной значительно проще чем наоборот. И, если сейчас переведенные русскими редакторами английские посты нередко представляют из себя жуткий треш, то что же ожидать от переводов на английский? Вот если ТМ будет нанимать редакторов из англоязычных стран, знающих русский язык на достаточном уровне, тогда другое дело.

КДПВ нужно было брать из третьего задания =)

В 9-м пересчитывать CRC32 для всего образа достаточно долго. Вместо этого можно заранее посчитать CRC от начала до первого битого байта, и сразу после последнего битого. Второе можно сделать, «отмотав» CRC от конца до нужного места (я использовал github.com/theonlypwner/crc32). Зная эти два значения, можно пересчитывать CRC только для 3-х битых байтов, что гораздо быстрее:
from binascii import crc32
from struct import pack

value = 0x7ffcce87
target = 0xea4af7fe

for i in range(0x1000000):
    data = pack("I", i)[:-1]
    crc = crc32(data, value)
    if crc == target:
        print("FOUND: %s" % data.hex())
Двоеточие вплотную к символам кого-то может запутать. ".:", например, вообще выглядит как шрифт Брайля. В оригинальной статье такой проблемы нет, так как символы находятся а темном фоне.
Если поставил слишком большое время за задачу и руководитель это заметил, то он мог потребовать выполнить эту задачу повторно при нем. И если ты выполнял ее намного быстрее, то время корректировали, а время, затраченное на повторное выполнение шло в плюс руководителю в качестве задачи «Контроль сотрудника».
Насколько я понимаю, интервью было на английском. Можете добавить оригинальный текст куда-нибудь под спойлер?
Плохо искали. Кстати в той статье на хабре, на которую вы ссылаетесь в первом же абзаце, также используется «дополнение». «Набивка» здесь плохо подходит по смыслу.
Мне кажется что «padding» в данном случае корректнее было бы перевести как «дополнение» а не «набивка».
Там же хоткей есть. Если не нравится стандартный — можно поменять. Мне кажется вполне удобно.
Вот, добрался до IDA:

image

Тут сразу напрашивается feature request. Иногда в коде встречается слишком много inline функций. Приходилось разбирать бинарник где чуть ли не в каждой десятой строчке был заинлайнен деструктор строк. Удобно было бы скрыть их все автоматически. В идеале их хорошо бы вообще вынести отдельно, но это уже более сложная задача.

Есть "Collapse/uncollapse item" (https://www.hex-rays.com/products/decompiler/manual/interactive.shtml). Не то ли это что вам нужно?


В любом случае, code folding, как мне кажется, это не трансформация кода. Дерево же при этом не меняется, просто скрываются отдельные его части при отображении.

Можно было бы, используя стандартную опцию "map to another variable", избавиться от них. Но это не всегда удобно при отладке, может быть ошибочно и к тому же невозможно откатить не пересоздавая функцию заново.

Почему невозможно? Есть же "unmap variable": https://www.hex-rays.com/products/decompiler/manual/cmd_map_lvar.shtml

Есть неочевидные вещи, например, IDA Pro будет падать, если не отключать Garbage Collector для объектов, добавленных с помощью idaapi в абстрактное синтаксическое дерево

Какое-то время назад при реверсинге прошивки под ARM столкнулся с тем, что Hex-Rays не распознает одну инструкцию и оставляет ее в asm {}. Она использовалась повсюду и это очень сильно портило код. Попытался написать плагин, который бы заменял эти блоки asm {}. Но как только я стал добавлять свои узлы в дерево — IDA сразу падала. Никогда бы не подумал что проблема может быть в Garbage Collector.


В итоге проблему решил, заменив везде инструкцию на аналогичную, с которой у Hex-Rays было все в порядке. Но тут можно сказать повезло, так как такой могло и не оказаться.

1

Information

Rating
Does not participate
Location
Россия
Registered
Activity