у тебя волшебный некомпилирующийся пример. станцуй ритуальный танец с африканскими бусами и пример соберется сам собой.
to >> А®ТеS " INVOKE " -> Это довольно удобная команда. Удобство ее заключается, во-первых, в том, что мы сможем забыть о добавке @N. Во-вторых, эта команда сама заботится о помещении передаваемых параметров в стек. Последовательность команд PUSH par1 PUSH par2 PUSH par3 PUSH par4 CALL NAME_PROC@N ; N-количество отправляемых в стек байт заменяется на INVOKE NAME_PROC, par4, par3, par2, par1 Но надо помнить что в TASM отсутствует директива INVOKE .
Ваще то нада начинать с протого ))) к примеру некоторые начинали с С++ и делфи а 3аканчивали машинными кода но не всегда асм рулит !!! В зависимости какой алгоритм нада сделать ведь далеко асм не есть эталоном програмирования !!!
На досуге изучаю защищенный режим интела, возникло пока пара вопросов: Почему GS инициализируется нулем? Почему часть сегментных регистров имеют одинаковые значения? На васме говорится про два различных селектора, а на деле же получается три, как это объяснить?
точно ответ не помню, поэтому чтоб не врать ,советую тебе почитать книги по асму. В любой хорошой книге по асму в самом начале описуется архитектура процессора.
2 iv. А ты не задавался вопросом. почему переход на защищенный режим идет через контроллер клавы? Походу дела в Intel тоже траву курят
>>Отцы программинга подскажите как превратить shellcode (в виде binary файла) в .exe файл. Если теоретически то -сперва надо создать обьект ядра типа процесс с флагом CREATE_SUSPENDED что б приостановить его выполнение, это надо для редактирования его адрессного прространства -далее выделить память в удаленном адрессном пространстве спомощью VirtualAllocEx после скопировать этот массив байт(shellcode) WriteProcessMemory -и наконец продолжить прерванный ранее поток ResumeThread это в крадце и теоретически, если надо практически, то есть программка, которая это все иллюстрирует правда писал я ее на паскале по некоторым причинам, здесь ее выкладывать не буду по причине "не потеме топика" могу в пм или если кому нада забабахаю кратенькую статейку с кодом и коментариями и выложу где нибудь здесь
почему бред? я по крайней мере здоров (хотя родители говорят что меня скоро отправят в дурку) rus2k видимо расчитывает таким образом сделать криптор в выходной программе будет ввиде массива храниться зашифрованный код входной программы и расшифровываться и исполняться при запуске выходной по крайней мере я вижу только такой смысл
Всё очень просто - нужно самому заполнить структуру MZ_HEAD, PE_HEAD, TABLE_SECTION и сохранить всё в файл. Более проще будет - скомпилить на ASM маленькую прогу. которая не будет экспортировать несколько функций, а именно - GetProcAddress и LoadLibrary - это в зависимости от того, как юзает шел код библиотеки. ПОтом просто настрой заменить её внутренности на шеллкод и подправить некоторые значения. Типа: Размер секции виртуальный и реальный. И кол-во озушки требуемой для проги. Задачка проще некуда Вот код проги на FASM которую можно юзать как шаблон Code: format PE GUI include 'd:\coding\fasm\include\win32ax.inc' entry _start section '.idata' import data readable writeable library kernel32,'KERNEL32.DLL' include 'd:\coding\fasm\include\apia\kernel32.inc' section '.code' code readable writable executable _start: ret invoke LoadLibrary invoke GetProcAddress после компила - достаточно запихать шелкод по смешению 200h и подправить некоторые структуры
Вот выбрал для себя фасм =)) маленький и удобный вот но как делать фунции непонимаю в делфе function Msg(text : string):boolean; begin MessageBox(0,PChar(text),0,0); end; а как на фасм это перевести хз (
zl0y Рекомендую для начала почитать статьи на wasm.ru Также посмотри примеры программ В папке EXAMPLES FASM'а ЗЫ: PHP: public myproc myproc: ; тут тело функции mov eax,результат ret