Сидел чета, тупил-тупил, и вдруг стало интересно, а можно ли в Си просто взять и запустить какой-то байт код?
Ассемблировал с помощью NASM'а очень сложную программу на ассемблере:
jmp $
Что в переводе значит "перейти на текущую команду".
NASM крут тем, что может выдавать "flat-form binary", короче не экзешник в формате для какой-либо операционной
(
Read more... )
Comments 20
goodsoft@lappy:~$ gcc zomg.c -o zomg
goodsoft@lappy:~$ ./zomg
main() address: 0x4004e8
pfunc = 0x40055c
myFunc executed!
pfunc = 0x349a5d70
Segmentation fault
goodsoft@lappy:~$
Reply
Олсо, лол, секция (блджад, чувствую себя идиотом когда говорю о чем-то что не до конца понимаю х) кода загружается с тем же базовым адресом что и в винде х))
Reply
Reply
Reply
(The comment has been removed)
Что за "настройки dep"? x)) Я хз, просто из консоли компилил без каких-либо опций типа
cl test.c
Reply
(The comment has been removed)
С утра протестю на втором компе, там как раз WinXP SP2.
Reply
Где ты видел асм, который не умеет давать чистый бинарик? Хотя можт gcc-шный и не умеет, ибо весь gcc большой кусок говна.
Reply
Ну у NASM'а эта опция просто на самом виду. Набираешь nasm -hf и он выдает список форматов и первый из них bin и это дефолтный формат =)
Бгы, посмотрел манпейдж GNUсного as -- он реально походу только объектные файлы для линкера умеет выдавать х) Ну в какой-то мере ему можно это простить, т.к. он же вообще изначально не предназначался для использования чилавеками =)
Reply
Reply
Reply
Reply
Reply
Leave a comment