Как с этим справляются joiner'ы и подобные? Насколько я понимаю этот процесс, они загружают файл в оперативку, из заголовка берут адресс точки входа и передают туда управление. Так вот вопрос, как это реализовать c#? Знаю, что язык выбран не тот, но тем интереснее Асмовые вставки худо-бедно сделать можно, а вот как найти куда передавать управление... Вобщем, буду благодарен за любые подсказки.
Да, при запуске с харда, но ведь и я это могу сделать Поексперементировал немного, точка отправления есть: Code: namespace prg { class Program { public static void Main(string[] args) { byte[] t={0,1,2,3,4,5,6,7,8,9}; unsafe { fixed(byte* p=&t[0]){ test(p);} } foreach (byte b in t) Console .Write (b + " "); Console.WriteLine (); Console.Write("Press any key to continue . . . "); Console.ReadKey(true); } private unsafe static void test(byte* ptr){ Random rnd=new Random (); Console.WriteLine ((int)(ptr)); for (int i=0;i<10;i++) *(++ptr)=(byte)(rnd.Next()%256); Console.WriteLine ((int)(ptr)); } } } Пойду гуглить PE заголовок...
PE заголовок изучать изучать изучать.Как понять куда передавать управление?Пишешь подобие PE загрузчика и записываешь в память,и передаешь управление туда куда записал))