2xGOR ничем, он наверное имел ввиду что masm < 6.11 использует masm.exe и link.exe а версии => 6.11 так как выше написано было через ml.exe
туплю не подецки bl = 1Ah, al = 69h div bl ax = 104h Почему? должно быть 4? ЗЫ ступил. там ведь остаток в ah?
Деление "слова на байт". Делимое находится в регистре AX, а делитель - в байте памяти или а однобайтовом регистре. После деления остаток получается в регистре AH, а частное - в AL. Так как однобайтовое частное очень мало (максимально +255 (шест.FF) для беззнакового деления и +127 (шест.7F) для знакового), то данная операция имеет ограниченное использование. (с) ассемблер абель
объясните компилятор подбирают по разрядности процессора или по разрядности ОС. например у меня Amd +64
Бери Fasm обычный 32-х битный под винду. В любом случае он будет поддерживаться 32\64-битными процами\ОС А там уже в самом фасме при компиляции проги выберишь под что компилить
Приветствую! Кто может дать пример перехвата прерывания(желательно комментированый), а то теоретически понимаю как, а написать проблема...
А в винде прерывания разве есть? include '..\..\include\win32ax.inc' .code start: invoke MessageBox,0,0,0,0 invoke ExitProcess,0 .end start
Вобще то это не виндовое sysenter никаким боком не относиться к ней,в винде все сделанно посредством хуков. тыб еще сказал out или int 21
как скрыть вызов АПИ ф-и? как скрыть вызов АПИ ф-и? пробовал использовать метод Криса(masm32): ------------------------------------------ пример вызова MessageBox .data lib db "user32.dll",0 f db "MessageBoxA",0 .code invoke LoadLibrary, addr lib invoke GetProcAddress, eax, addr funk push MB_OK push NULL push NULL push NULL push 0E0FFh (опкод jmp eax) jmp esp --------------------------------------------- вроде работает, но если после jmp esp идет ret валится на стадии выполнения. в чем бок? и какие еще есть способы скрытого вызова АПИ?
Хорошо, я примерно тут подразобрался...Но у меня вопрос, как узнать адрес нужного прерывания, адрес функции, как подставить свой адрес и с какое по какое место прогу надо оставлять в памяти?
Естественно будет падать,так как ты должен занести в стек адрес возврата перед вызовом после чего,после вызова апи сделать ret либо retn в зависимости от апишки,да и на новых процах запрещенно аппаратно исполнение в стеке(могу ошибаться).
zl0y об int 2eh http://z0mbie.daemonlab.org/ntoskrnl.html Можно использовать адреса API функций: Code: mov eax, address_of_API push argument1 push argument2 .... push argumentn call eax