Компиляция дальнего перехода не по метке

Тема в разделе "WASM.BEGINNERS", создана пользователем redcat, 20 ноя 2007.

  1. redcat

    redcat New Member

    Публикаций:
    0
    Регистрация:
    20 ноя 2007
    Сообщения:
    62
    Вот такой код из 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 и т.д.)
     
  2. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"
    Код (Text):
    1. ; tasm /m anticaro.asm
    2. ; tlink anticaro.obj
    3. ; exe2bin anticaro.exe anticaro.com
    4.  
    5.  
    6. anticaro        segment byte public
    7.         assume  cs:anticaro,ds:anticaro
    8.         org     0
    Код (Text):
    1. db ..., ..., ...
     
  3. cppasm

    cppasm New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    923
    Такой изврат, а всё из-за незнания особенностей линкера :)
    Код (Text):
    1. ; tasm /m anticaro.asm
    2. ; tlink /t anticaro.obj,anticaro.bin
    3.  
    4. anticaro        segment byte public
    5.         assume  cs:anticaro,ds:anticaro
    6.         org     7C00h
    Переходы такие tasm не кодирует, напиши руками.
     
  4. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"
    Дык давно ничего такого не писал, код был тупо скопипастен с бут-вируса, вот теперь думаю может это был sys-infector ;)
     
  5. redcat

    redcat New Member

    Публикаций:
    0
    Регистрация:
    20 ноя 2007
    Сообщения:
    62
    Всем спасибо. На виртуальной машине все прекрасно заработало. Можно добавлять свой код - уже попробовал:). Как просто оказывается было писать вирусы раньше.

    Желающим могу поделиться исходником MBR с выводом сообщения перед загрузкой MS-DOS.

    Про db EA 1D 06 00 00, конечно, понятно, но я не ожидал такого подвоха от TASM (пару часов потратил :)