Comments 5
В чем задача у задания Spectre? Кто-то действительно считает, что исправлять битый (пусть и умышленно) файл — весело?
+6
VladikSS, думаю, если глубоко не вдаваться в подробности уязвимости Spectre, данный битый файл получен с помощью этой уязвимости. В кратце про Meltdown и Spectre, при попытке чтения сегментов памяти через кэш cpu, есть некий шанс приближенный к 100% (99.8% например) получить абсолютно идентичный дамп.
0
UFO just landed and posted this here
Я решал 9-ый без ревёрса, сдампил всю память машины через gdb, посмотрел как мигают лампочки, восстановил память и выставил нужную последовательность.
Примерно в середине квеста организаторы запатчили таск с луа и его стало невозможно пройти указанным способом.
0
В 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())
+1
Sign up to leave a comment.
NeoQuest 2018: Читерство да и только