User Tag List

Результаты опроса: Использование RST

Голосовавшие
5. Вы ещё не участвовали в этом опросе
  • Предлагаемый вариант нужно обсудить…

    1 20.00%
  • Старо, как весь восьмибитный мир!

    2 40.00%
  • Автор сам понял, что написал?

    2 40.00%
Опрос с выбором нескольких вариантов ответа.
Страница 1 из 4 1234 ПоследняяПоследняя
Показано с 1 по 10 из 47

Тема: Обфускация кода / Плюшки команды RST 7

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    05.03.2010
    Адрес
    Ташкент
    Сообщений
    160
    Спасибо Благодарностей отдано 
    25
    Спасибо Благодарностей получено 
    66
    Поблагодарили
    41 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Lightbulb Обфускация кода / Плюшки команды RST 7

    Привeтствую!

    Ужe создавал тему, но стоит подойти к вопросу под другим углом…

    Если брать дамп оригинального «МОНИТОРа» и попытаться найти в нём все коды «FF» для «RST 7», то их насчитывается не так уж и мало:
    Код:
    FA56 FAB7 FAB9 FAC9 FACB FBF6 FC05 FDC3
    .... .... .... .... .... ....-1019 -573
    
    FDE7 FE4D FEB0 FEDD FF0F FF15 FF20 FF26
    -537 -435 -336 -291 -241 -235 -224 -218
    
    FF2F FF35 FF4D FFD5 FFEC FFFC FFFE FFFF
    -209 -203 -179  -43  -20   -4   -2   -1
    Причём, чем короче числовой индекс, тем легче его запомнить.
    Так, в Бейсиках часто использовались функции МОНИТОРа «F803» и «F81B» с обращением к ним через «usr(-2045)» и «usr(-2021)» соответственно…
    И я задумался, а что если пропатчить Бейсик так, чтобы по адресу «0038» располагалась особая процедура, которая будет использовать ближайший адрес возврата за опциональный индекс?

    Или же вот так:
    Код:
            org     00100h
    
    ; Если за RST 7 следует КОИ-7 - просто печатаем текст
            db      0FFh,'ПРИВЕТ!',0
    
    ; Если за RST 7 следует код 80h-91h - переходим на адрес
    ; jmp (0F800h + 3 * (код - 128))
    	db	0FFh,81h	; Вызов 0F803h
    P.S.: Если тема интересна, обсудим всё более подробнее…
    Последний раз редактировалось Радио-86РК; 09.12.2019 в 01:37.

    Этот пользователь поблагодарил Радио-86РК за это полезное сообщение:

    Denn(10.12.2019)

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2
    HardWareMan
    Гость

    По умолчанию

    А что если мы пользовались подобными методами в своих программах еще 30 лет назад? Да и сами не придумали их - подсмотрели в ED^7000 для Специалиста.

  4. #3

    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,829
    Спасибо Благодарностей отдано 
    483
    Спасибо Благодарностей получено 
    663
    Поблагодарили
    513 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    мне еще все время попадается вариация подобного
    в виде

    Код:
    call procedure_1
    defb data4procedure_1
    - - - Добавлено - - -

    А так rst это хорошо...
    но почамуто часто на месте обработчиков рстов лежит чьето унылое пзу...

  5. #4
    HardWareMan
    Гость

    По умолчанию

    NEO SPECTRUMAN, потому, что есть XTHL, про которую мало кто знает и тем более использует. А по сути она просто волшебная палочка.

  6. #5

    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,829
    Спасибо Благодарностей отдано 
    483
    Спасибо Благодарностей получено 
    663
    Поблагодарили
    513 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от HardWareMan Посмотреть сообщение
    что есть XTHL
    при мне просьба не выражаться
    а употреблять понимаемое обычными людьми EX (SP),HL
    которое несет СУТЬ в отличии от vjxhdsbc
    (кстате в мануале на всякие ia64 по моему тонны именно таких команд)

  7. #6

    Регистрация
    14.04.2013
    Адрес
    г. Ростов-на-Дону
    Сообщений
    608
    Спасибо Благодарностей отдано 
    70
    Спасибо Благодарностей получено 
    54
    Поблагодарили
    48 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Так в ia64 команд уже столько, что алфавит закончился, пора на иероглифы переходить.

  8. #7

    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,829
    Спасибо Благодарностей отдано 
    483
    Спасибо Благодарностей получено 
    663
    Поблагодарили
    513 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Bolt Посмотреть сообщение
    Так в ia64 команд уже столько, что алфавит закончился
    если думать головой то алфавит не кончится

    ну а если для каждого
    ld a,nn
    ld a,r
    ld a,(**)
    ld a,(**+nn)
    ld a,(**+r)
    ld a,(**+(**))
    ld (**),r
    ld (**),nn
    выдумывать свою уникальную мнемонику
    типа
    ldai nn
    mov a,r
    ldax
    ldaxdi nn
    ldaxdr r
    ldaxdx **
    strx r
    strxi nn
    то никаких вам иероглифов не хватит...


    конечно в сравнении 6502 со своим "все мнемоники должны быть длиной 3 буквы"
    вообще садомазо
    Последний раз редактировалось NEO SPECTRUMAN; 10.12.2019 в 06:27.

  9. #8
    HardWareMan
    Гость

    По умолчанию

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    при мне просьба не выражаться
    а употреблять понимаемое обычными людьми EX (SP),HL
    которое несет СУТЬ в отличии от vjxhdsbc
    (кстате в мануале на всякие ia64 по моему тонны именно таких команд)
    Что не так с EXchange Top with HL? А, нуда, английский для нас не родной. Тогда всё норм.

    - - - Добавлено - - -

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    выдумывать свою уникальную мнемонику
    ***
    то никаких вам иероглифов не хватит...
    Ты бы хоть ознакомился с базовыми знаниями, например тут. Ну и если такой хейт к английскому то пиши на русском:
    ЗАГР А,ПП
    СОХР ПП,А
    СРАВ А,Р
    ПРЫГ ААА
    И тому подобное, табличный ассемблер же позволяет. Не следует путать ассемблер и ЯВУ, не обязан ассемблер быть похожим на ЯВУ. Тем более что ты по любому используешь С и выше и этот самый ассемблер видишь только в листингах.
    Последний раз редактировалось HardWareMan; 10.12.2019 в 08:04.

    Этот пользователь поблагодарил HardWareMan за это полезное сообщение:

    Denn(10.12.2019)

  10. #9

    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,829
    Спасибо Благодарностей отдано 
    483
    Спасибо Благодарностей получено 
    663
    Поблагодарили
    513 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от HardWareMan Посмотреть сообщение
    Ты бы хоть ознакомился с базовыми знаниями,
    да боже
    те что я не знаю (из мануала)
    сам и так догадался из сокращения...

    а иметь на каждый пчих свою уникальную мнемонику это аутизм


    Цитата Сообщение от HardWareMan Посмотреть сообщение
    Что не так с EXchange Top with HL?
    что за топ?
    есть топ стека

    хорошо а теперь расшифруй где здесь HL а где здесь DE
    XCHG

    теперь представь что нужно придумать мнемоники для команд в новой версии проца
    EX BC,HL
    EX BC,DE
    EX AF,SP
    да хоть
    EX B,E
    EX BD,AH
    EX CD,(AB) (Не пришлось выдумывать ничего нового. Смысл команд прекрасно понятен)

    сделай по аналогии с 8080 ересью варианты этих команд
    не высасывая х****ы из пальца


    конечно в z80 есть тоже редкостный бред
    типа
    EXX
    JP (HL) (который по факту JP HL а jp (HL) должна быть совершенно другой командой)
    итд
    в новомодных ez80 местами берут пример с 8080 и городят херню...
    ...

    - - - Добавлено - - -

    еще мне нравиться вот это
    MOV A,M LD A,(HL)
    LDAX B LD A,(BC)
    LDAX D LD A,(DE)

    тоесть из BC DE мы загружаем
    а из HL которое почему то зовется M мы перемещаем (не надо мне еще рассказывать что такое М тк и так есно)

    про нелогичность самого MOV говорить не буду
    тк по идеи если мы перемещаем из одного места в другое
    то на месте от куда мы переместили по идеи ничего быть уже не должно...
    Последний раз редактировалось NEO SPECTRUMAN; 10.12.2019 в 13:22.

  11. #10

    Регистрация
    07.10.2006
    Сообщений
    1,731
    Спасибо Благодарностей отдано 
    257
    Спасибо Благодарностей получено 
    275
    Поблагодарили
    167 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    На Спектруме это стандартный прием. Несколько RST читают данные в коде после их вызовов. Ну и в играх CALL тоже часто.

Страница 1 из 4 1234 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Недокументированные команды z80
    от tae1980 в разделе Программирование
    Ответов: 18
    Последнее: 09.12.2018, 09:16
  2. Неиспользуемые и редкоиспользуемые команды
    от alone в разделе Программирование
    Ответов: 120
    Последнее: 18.10.2013, 00:07
  3. Недокументированные команды
    от MadCat! в разделе Программирование
    Ответов: 46
    Последнее: 02.02.2011, 13:49
  4. Команды Z80
    от e2e4 в разделе Для начинающих
    Ответов: 11
    Последнее: 02.07.2010, 21:13
  5. Команды Z80
    от Almaz в разделе Программирование
    Ответов: 1
    Последнее: 28.10.2007, 12:50

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •