Имеется *.exe. Его нужно запихнуть в исходник проги (я использую C#).И потом его создать, тоесть тело этого exe должно лежать в компилируемом exe'шнике. Делаю я это так: 1. Открываю собственно этот *.exe в WinHex. 2. Сохраняю в hex. Получается что-то вроде Code: \x4D\x5A\x99\x01\... бла.. бла... бла... 3.Пихаю эту штуку в исходник проги, как string Code: public string hex = " \x4D\x5A\x99\x01\... бла.. бла... бла... "; 4. Записываю в файл с помощью StreamWriter Code: .... path = @"D:\hex_to_exe.exe"; StreamWriter sw = new StreamWriter(path); sw.WriteLine(hex); sw.Close(); .... Все отлично. Файл создан, но сам exe не работает, в cmd пишет что ошибка EXE файла. Открываем exe созданный нами hex_to_exe.exe с помощью WinHex и видим Code: \x4D\x5A\xC2\x99\x01\xC3\x8F\x00\xC2\x89\x01\..... size = 143 665 byte смотрим оригинал Code: \x4D\x5A\x99\x01\xCF\x00\x89\x01\x80\x00\x40\..... size = 105 881 byte В чем проблема????? Никак разобраться немогу Помогите please! Если есть возможность приведите исходники
Программа неумещается в памяти??? Что за фигня??? делаю так: Code: public byte[] byt = { 0x4D, 0x5A, 0x99, 0x01............ }; path = @"D:\hex_to_exe.exe"; string str = Encoding.GetEncoding("iso-8859-5").GetString(byt); System.IO.StreamWriter sw = new System.IO.StreamWriter(path); sw.WriteLine(str); sw.Close(); как бэ тоже самое Code: \x4D\x5A\[B][COLOR=Red]xC2[/COLOR][/B]\x99\x01\xD0\xAF\x00\xC2\x89....... вот откуда он берется... я в непонятках...
используйте CreateFile/WriteFile из винапи кста вспомнил, кадата делал в аттаче подобная тулза для генерации с хидера из файла
2cheater_man: Я бы решил твою проблему по-другому. Если тебе нужно из своей программы создатьдругую, то можно просто создаваемый файл запихнуть в ресурсы главного софта, а по нажатию кнопки (или как там тебе нужно) извлечь его оттудова!
WinApi в C# гоморно Так что твоё предложение некатит, есть другой способ??? А я что по твоему делаю? Я тоже пихаю hex файла в исходник потом его сохраняю в файл! Тут пходу все дело в кодеровке?
Возможно мы не поняли друг друга так как хотелось бы, потому просто приведу пример на Delphi: http://www.188.ru/195062 . А вот статья, как все это сделать на Делфи, думаю в С такое возможно тоже: http://articles.org.ru/cfaq/index.php?qid=186
Вот пример выдергивания файла изи ресурсов компиленой проги на С : http://forum.sources.ru/index.php?showtopic=228575&hl= а именно тот пост поможет создать ресурсы: http://forum.sources.ru/index.php?showtopic=228575&view=findpost&p=1904033
Попробуй типа Code: byte[] byt = {0x4D, 0x5A, ....}; FileStream stream = new FileStream("C:\\file.exe", FileMode.Create); BinaryWriter w = new BinaryWriter(stream); w.Write(byt); w.Close();