Реагировать - Как экспортировать чистый компонент без сохранения состояния

Если вы пишете эмулятор, на самом деле вам никогда не понадобится полная разборка. Вы знаете, что счетчик программ теперь, вы знаете, ожидаете ли вы новый код операции, адрес, код операции CB или что-то еще, и вы просто справляетесь с этим. Фактически, люди, в основном, являются парсером рекурсивного спуска для каждого опкода.

Чтобы добраться до полного дизассемблера, большинство людей приписывают некоторое мягкое моделирование, рекурсивный отслеживающий поток.

Не так много на ГБ, где хранилище было много (для сравнения), а пиратство имело физический барьер, но на других платформах было разумно распространено сэкономить место или для создания кода, защищенного от разборки, путем написания кода, где ветвь в середине кода операции создаст мультиплексированный второй поток операций или где то же самое может быть достигнуто путем внезапного повторного использования достоверных данных в качестве действительного кода. Одна из усилий Orlando 6502 даже повторно использовала часть текста загрузчика - обычный ASCII - как расшифрованный код. Такие вещи очень трудно взломать, потому что для этого нет простой сборки, и поэтому дизассемблер обычно не сможет понять, что делать эвристически. И наоборот, на подходящем точном эмуляторе такой код должен работать точно так же, как и первоначально.

61
задан Damien Leroux 17 January 2017 в 10:57
поделиться