Вот такой код из MBR MS-DOS показывает Turbo Debagger: 7C00 FA CLI 7C01 33C0 XOR AX,AX 7C03 8ED0 MOV SS,AX 7C05 BC007C MOV SP,7C00 7C08 8BF4 MOV SI,SP 7C0A 50 PUSH AX 7C0B 07 POP ES 7C0C 50 PUSH AX 7C0D 1F POP DS 7C0E FB STI 7C0F FC CLD 7C10 BF0006 MOV DI,0600 7C13 B90001 MOV CX,0100 7C16 F2A5 REPNZ MOVSW 7C18 EA1D060000 JMP 0000:061D Вопрос по последней инструкции, как ее скомпилировать при помощи TASM в тот же машинный код EA 1D 06 00 00. Т.е. что написать в исходнике? Текст типа следующего: jmp 0000:061Dh или jmp far ptr 0000:061Dh, TASM компилит как E9 02 06, что является не совсем тем, а вернее совсем не тем, что нужно. И вообще как компилировать такие загрузчики (чтоб без PSP и т.д.)
Код (Text): ; tasm /m anticaro.asm ; tlink anticaro.obj ; exe2bin anticaro.exe anticaro.com anticaro segment byte public assume cs:anticaro,ds:anticaro org 0 Код (Text): db ..., ..., ...
Такой изврат, а всё из-за незнания особенностей линкера Код (Text): ; tasm /m anticaro.asm ; tlink /t anticaro.obj,anticaro.bin anticaro segment byte public assume cs:anticaro,ds:anticaro org 7C00h Переходы такие tasm не кодирует, напиши руками.
Дык давно ничего такого не писал, код был тупо скопипастен с бут-вируса, вот теперь думаю может это был sys-infector
Всем спасибо. На виртуальной машине все прекрасно заработало. Можно добавлять свой код - уже попробовал. Как просто оказывается было писать вирусы раньше. Желающим могу поделиться исходником MBR с выводом сообщения перед загрузкой MS-DOS. Про db EA 1D 06 00 00, конечно, понятно, но я не ожидал такого подвоха от TASM (пару часов потратил