1. Использование ядерной функции для косвенного чтения памяти
2. Использование драйвера ядра
3. Использование SGX анклава, его исполнение не тригерит бряки
4. Индексы сусколов получаются хз как и потом генерируются собственные трамплины в обход ntdll, это кстати можно зачекать поиском страниц памяти на исполнение но не сопоставленных с загруженными модулями, либо оно переписывает какой-то участок секции кода и это можно попробовать спалить антируткитом который чекает целостность страниц кода.
Кстати не все используют GetProcAddress для поиска функций, обход по функциям может быть реализован самостоятельно.

Могу ошибаться но BlackCypher это вроде аналог Xigncode а там второй процесс и выполнял все проверки и сбор информации.