Comments 23
Возможно, помещение списка точек останова в более эффективную для проверки наличия в ней определённого адреса позволит ускорить обработку инструкций (O(n) -> O(logn)). Например, для этого можно использовать set или unordered_set из стандартной библиотеки c++.
Я делал именно C-реализацию, чтобы код был более менее универсальным для вставки в другие проекты. Как раз *Genesis Plus GX* ядро выполнено на C.
Предоставленный эффективный вариант для C всячески приветствуется!
В стандартной библиотеке C, опять же, по причине её универсальности и простоты, нет реализаций таких нетривиальных структур данных. Тут придётся либо положиться на внешние библиотеки (или мини-библиотеки из двух файлов: исходного и заголовочного), либо предоставлять свою реализацию.
Например, есть uthash.

Я попробую этот вариант для реализации бряков по значению, т.к. именно они будут являться бутылочным горлышком у точек останова в принципе.

#include <Windows.h>

А вы точно уверены, что ваш код всё еще портативен и универсален?)
В данном случае нет никакой потребности во вспомогательных структурах, там хватит обыкновенной битовой маски, по биту на адрес.
Насколько я вижу, лицензия на IDA это как минимум несколько сот долларов, т.е. даже для фрилансера будет напряжно, не говоря уже о программировании как хобби (в случае с ромхакингом итп.). Может таки разумнее взглянуть на то что есть в опен-сорсе? Radare2 например.
Лицензия IDA для частного лица вещь вообще неподъёмная, не из-за цены даже. Вы просто попробуйте ссылку на BUY найти (нет, в итоге вы её найдёте).

Забавно, но под каждой статьёй про иду будет комент про радар2. Я же только за. Просто портировать всё это богатство по него, да и ждать, пока в гуи мой проц добавят (да, гуи) вся жизнь пройдёт...


Поработайте-ка вы несколько суток с консольной прогой над одним проектом — я же простой человек, а не Столлман.

А ещё кроме иды варианты есть какие-то для исследователя. кстати?

Radare2, binary ninja. Но под всё из них придётся пилить лоадеры и дебагеры, или того хуже — поддержку проца.

x64dbg только для винды же., и базу он хранить не умеет, насколько я знаю.

Да и игра Pier Solar and the Great Architects, вышедшая на картриджах в 2010, и которую так хотелось исследовать (а антиэмуляционных трюков там полно),
Риторический вопрос — зачем это вообще.

Хобби, научный или спортивный интерес, челлендж. Ну, или, просто потому что могу.:)

Да, пожалуй, меня не поняли.
Я хотел сказать — зачем защищать игру в 2010 году?
Ну разве что по той же причине.

А, ну, причина такова: что за картридж в 2010 году они просили 55$, и игру сделали шикарную, в которую вложили силы многие хоумбрюшники. И, просто так сразу отдаваться дамперам картирджей (которые обязательно захотят сдампить игру, ведь надежды, что играть в неё на картриджах будут не только лишь все, очень мало) будет означать, что все труды были слиты в унитаз.


К слову, только два эмулятора поддерживают Pier Solar, да и то, один не до конца корректно.

Интересно, насколько такой трюк поднял продажи. Экземпляра на два, наверное.

На самом деле куда больше, они потом ещё репринты сделал, а спустя пару лет — ещё.


Я был первым, кто сдампил репринт (ревизия 2) в 2012-м, кажется, до меня ещё дампили бету, и ревизию 1.

Я немного о другом — много ли тех, кого отсутствие цифровой версии сподвигло на поиск и покупку б/у консоли?

Оно обычно не рассчитывается на покупку консоли, и целевая аудитория — ретро-ностальгирующие гики. А их, на самом деле, очень даже много. Это я Вам, как один из них говорю.:)

Only those users with full accounts are able to leave comments. Log in, please.