Доброе время суток, Не подскажите как правильно побайтово формировать руками такие ресурсы как STRINGS, DIALOG, MENU для PE. В Идеале было бы получить ссылочку на спецификацию, а то что то весь вечер в поисках и результата пока ноль. Попробывал на скорую руку RT_STRINGS забивать юникодными строками и между ними нули ставить, что то явно не то ... Заранее спасибо.
К сожалению спецификации как таковой нет. Лучшее что можно сделать на данный момент - открыть исходник фасма. Там кажется есть генератор для ресурсов. PS: вам не для криптора случайно?
mz80 Конечно не то - между строками должны быть не нули, а длина самой строки (при этом сама строка не завершается нулем). Курите исходники вайна (в частности LoadStringA и LoadStringW), хотя там полно багов, но для общего представления вполне хватит.
StingTable: Код (Text): int RESOURCE_WORKER::GetStringTable(unsigned int iName, char *cName, unsigned int Lang) { unsigned int i, Size, Rand; struct ResourceToolResult Result; if(VirtualFile == NULL) return -1; Result.Offset = (unsigned char*) calloc(0x1000, 1); Size = 0; for(i=0;i<16;i++) { Rand = Random(3); if(Rand == 0) { Rand = 5 + Random(20); *(PWORD) &Result.Offset[Size] = Rand; GenerateString(&Result.Offset[Size+2], Rand, STR_UNICODE); Size += (Rand+1)*2; } } Result.Size = Size; NoAddToInternalMemory(); AddResource(RT_STRING, NULL, iName, cName, Lang, Result.Offset, Result.Size); } DialogBox много кода, я Menu реализовывал с рекурсией, с регулируемым уровнем вложенности меню, а так генерировать их не сложно.