BennyBlanco Цитата: N.B. Ключ дампится при запуске каспера.
Где хоть слово об отлове ключа в режиме пошагового отладчика? Задайте нормальное ТЗ - иначе ни один программист Вас не поймёт!
Исходно задача звучала так (суммировано):
Код: В памяти процесса AVP (тот у которого PID (process ID) больше) ключ хранится в открытом виде. Ключ найти и опознать элементарно по сигнатуре в его заголовке: KLsw' (или 0х 4B 4C 73 77 27) Конец - цифровая подпись, заканчивающаяся
байтами 0х AD AD
Сделать дампер ключа - задача вполне выполнимая. Писать kernel-mode драйвер не обязательно. Все можно сделать из под user-mode, используя win32 api + Process Status Helper (psapi.dll), хотя привилегии отладчика возможно потребуется себе и поставить.
в черновом виде примерно так:
//Получаем привелегии отладки (иногда это и не нужно, но все таки)
OpenProcessToken;
LookupPrivilegeValue;
AdjustTokenPrivileges;
Тут юзаем функции из PSAPI.dll, узнаем запущенные процессы, находим каспа - pid_avp. Узнаем какую память он себе отвел. Ключ явно хранится в куче, вряд ли в стеке. Будем искать во всех страницах, которые отвел себе процесс и доступом Read-Write.
//открываем процесс каспа который собираемся дампить
Openprocess(PROCESS_ALL_ACCESS,false,pid_AVP);
//читаем память и ищем начало ключа KLsw', ищем конец.
readprocessmemory;
нашли, сохраняем в файл.
Поиск по строке - лучше делать алгоритмом Бойера-Мура (http://www.rsdn.ru/article/alg/textsearch.xml).