CryptoUsbtor

Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Может кому то будет интересно, извлечение ресурсов из файла... С помощью WinAPI Требуется плагин: MemoryEx Номер ресурсов, можно подсмотреть, открыв файл в: ResHacker Код: -- В глобальные функции Bitmap = 2; Menu = 4; Dialog = 5; StringTable = 6; Accelerators = 9; RCData = 10; MessageTable = 11; CursorGroup = 12; IconGroup = 14; VersionInfo = 16; Manifest = 24; function File.ResExtract(FilePath, SaveAsFile, ResType, ResName, ResLang) if not File.DoesExist(FilePath) then return; end local Kernel32 = Library.Load(_SystemFolder.."\\kernel32.dll"); local hInstance = Kernel32.LoadLibraryExA(FilePath, 0, 2); if (hInstance > 0) then local hResource = Kernel32.FindResourceExA(hInstance, ResType, ResName, ResLang); if (hResource > 0) then local nSize = Kernel32.SizeofResource(hInstance, hResource); if (nSize > 0) then local hData = Kernel32.LoadResource(hInstance, hResource); if (hData > 0) then local pData = Kernel32.LockResource(hData); local bData = MemoryEx.LString(pData, nSize); local hFile = io.open(SaveAsFile, 'wb+'); if hFile then hFile:write(bData); hFile:flush(); hFile:close(); end end end end Kernel32.FreeLibrary(hInstance); end Kernel32:Close_(); end -- Пример использования File.ResExtract("AutoPlay\\Docs\\licecap.exe", "AutoPlay\\Docs\\licecap.exe.res", Manifest, 103, 1033); | Правильно извлекаются не все ресурсы... Некоторые из них компилированы. У меня получилось извлечь манифест и RCData-файлы. |