Советы IDA - быстро переименуйте адрес дампа памяти

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

Вставьте описание изображения сюда

Однако, когда мы сбросим его и откроем с помощью ida, он станет таким

Вставьте описание изображения сюда

После того, как мы дважды щелкнем по адресу памяти, мы увидим, что адрес каждой функции заполнен

Вставьте описание изображения сюда

Но мы сбрасываем его, чтобы упростить использование ida для анализа. Мы не можем переименовывать эти адреса один за другим в имя вызываемой функции, поэтому в настоящее время нам нужно использовать более простой метод, чтобы изменить все адреса памяти на имена функций.

Сценарий ida предоставляет нам множество функций, среди которых мы можем использовать функцию set_name для изменения.

Прежде всего, наше окно памяти следует за адресом памяти вызова и отображает его как адрес.Эти функции api заполняются адресом памяти во время работы программы, и все строки, содержащие функции api, копируются.

Вставьте описание изображения сюда
Используйте инструмент редактирования текста, чтобы отредактировать в следующем формате, будьте осторожны, чтобы не забыть добавить перед адресом памяти 0x, что означает шестнадцатеричный

set_name(0x000000000008154C,"BCryptOpenAlgorithmProvider");
set_name(0x0000000000081554,"BCryptCloseAlgorithmProvider");
set_name(0x000000000008155C,"BCryptVerifySignature");
set_name(0x0000000000081564,"BCryptDestroyKey");
set_name(0x000000000008156C,"BCryptGetProperty");
set_name(0x0000000000081574,"BCryptImportKeyPair");
set_name(0x000000000008157C,"GetAdaptersInfo");
set_name(0x0000000000081584,"SHGetFolderPathW");
set_name(0x000000000008158C,"CharLowerBuffA");
set_name(0x0000000000081594,"GetExitCodeProcess");
set_name(0x000000000008159C,"GetNativeSystemInfo");
set_name(0x00000000000815A4,"SetFileAttributesW");
set_name(0x00000000000815AC,"CreateThread");
set_name(0x00000000000815B4,"FindNextFileW");
set_name(0x00000000000815BC,"VirtualFreeEx");
set_name(0x00000000000815C4,"ResetEvent");
set_name(0x00000000000815CC,"ReadFile");
set_name(0x00000000000815D4,"RtlLeaveCriticalSection");
set_name(0x00000000000815DC,"lstrlenW");
set_name(0x00000000000815E4,"CreateDirectoryW");
set_name(0x00000000000815EC,"FileTimeToSystemTime");
set_name(0x00000000000815F4,"CreateRemoteThread");
set_name(0x00000000000815FC,"lstrcmpW");
set_name(0x0000000000081604,"Process32FirstW");
set_name(0x000000000008160C,"GetLocalTime");
set_name(0x0000000000081614,"CreateFileW");
set_name(0x000000000008161C,"WideCharToMultiByte");
set_name(0x0000000000081624,"GetSystemDirectoryW");
set_name(0x000000000008162C,"RtlAddVectoredExceptionHandler");
set_name(0x0000000000081634,"GetComputerNameW");
set_name(0x000000000008163C,"GetTempFileNameW");
set_name(0x0000000000081644,"VirtualProtectEx");

Откройте команду сценария ida, введите указанный выше текст и нажмите «Выполнить».

Вставьте описание изображения сюда
Вернитесь на адрес, ранее проверенный и обнаружив, что все функции выполнены

Вставьте описание изображения сюда

рекомендация

отblog.csdn.net/weixin_44001905/article/details/104327108
рекомендация