Есть процесс в памяти, надо получить его иконку средствами ntdll и сохранить в файл. Нашел несколько функций для работы с ресурсами: LdrEnumResources LdrFindResourceDirectory_U LdrAccessResource LdrFindResourceEx_U LdrFindResource_U Но в гугле не густо инфы как юзать эти функции Не подскажите с чего надо и кудать копать?
Опять небось мега анти-чит Загрузить в IDA нтдлл и отреверсить ети функции для их понимания. Для безгеморройности советую заюзать символы. А исчо есть LdrResFindResource, LdrResFindResourceDirectory, LdrResSearchResource, LdrpResGetResourceDirectory...
[offtop] Видел один компилятор под win32, хз какого языка (помесь паскаля и си, авторская разработка), он делал странные секции ресурсов. Обычно ресурсы представлены тремя ступенями - тип_ресурса-язык-идентификатор, а тот компилятор для ресурсов, у которых язык не важен (скажем, иконки или изображения), создавал деревья вида тип_ресурса-идентификатор. Как ни странно, приложение корректно работало и оторбражалось. [/offtop]
Flasher Нэйтив поможет только найти ресурс, все манипуляции по извлечению иконки придётся выполнять в ручную http://www.wasm.ru/forum/viewtopic.php?id=31344. Есть апи, незачем вручную это выполнять. Нэйтив нужен для низкоуровневых манипуляций.
Flasher Задача выполняется без проблем вручную. Как парсить ресурсы, их формат и тп можно найти в сети
ohne Проблем там много, причина - разнообразие форматов. Например размеры изображения. Когдато я писал парсер извлекающий иконки, это было весьма геморно.
http://code.jeefo.net/listing?repname=checker&path=/nt/&rev=1 Код (Text): NTSYSAPI NTSTATUS NTAPI LdrFindResourceDirectory_U( IN PVOID DllHandle, IN CONST ULONG_PTR* ResourceIdPath, IN ULONG ResourceIdPathLength, OUT PIMAGE_RESOURCE_DIRECTORY *ResourceDirectory ); NTSYSAPI NTSTATUS NTAPI LdrFindResource_U( IN PVOID DllHandle, IN CONST ULONG_PTR* ResourceIdPath, IN ULONG ResourceIdPathLength, OUT PIMAGE_RESOURCE_DATA_ENTRY *ResourceDataEntry ); NTSTATUS NTAPI LdrFindResourceEx_U( ULONG Flags, IN PVOID DllHandle, IN CONST ULONG_PTR* ResourceIdPath, IN ULONG ResourceIdPathLength, OUT PIMAGE_RESOURCE_DATA_ENTRY *ResourceDataEntry ); NTSYSAPI NTSTATUS NTAPI LdrEnumResources( IN PVOID DllHandle, IN CONST ULONG_PTR* ResourceIdPath, IN ULONG ResourceIdPathLength, IN OUT PULONG NumberOfResources, OUT PLDR_ENUM_RESOURCE_ENTRY Resources OPTIONAL ); NTSYSAPI NTSTATUS NTAPI LdrAccessResource( IN PVOID DllHandle, IN CONST IMAGE_RESOURCE_DATA_ENTRY* ResourceDataEntry, OUT PVOID *Address OPTIONAL, OUT PULONG Size OPTIONAL );