Пилим сук, на котором сидим |
Jul. 20th, 2011|10:23 am |
Захотелось странного - записать, что-нибудь в исполняемый файл, который в данный момент запущен. Просто так - нельзя, open вернет ETXTBSY. Сделал так - нашел таблицу сегментов, выделил mmap()'ом память, скопировал туда код - munmap(seg1)-munmap(seg2)-open(argv[0], O_RDWR)-lseek(h,0,2)-write(h,...)-exit(). Работает. После отмапливания всех сегментов файл освобождается и доступен для записи.
P.S. SPTH got me to do an english translation of this blog, so you could find the code for this entry there - herm1t.vxer.org. |
|