User Tag List

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

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

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

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

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

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

  1. #1
    Member Аватар для Радио-86РК
    Регистрация
    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.

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

    Denn (10.12.2019)

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

  4. #2
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    г. Павлодар, Казахстан
    Сообщений
    4,430
    Спасибо Благодарностей отдано 
    329
    Спасибо Благодарностей получено 
    609
    Поблагодарили
    452 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

    По умолчанию

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

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

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

  6. #4
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    г. Павлодар, Казахстан
    Сообщений
    4,430
    Спасибо Благодарностей отдано 
    329
    Спасибо Благодарностей получено 
    609
    Поблагодарили
    452 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  7. #5
    Veteran
    Регистрация
    07.10.2006
    Сообщений
    1,645
    Спасибо Благодарностей отдано 
    243
    Спасибо Благодарностей получено 
    249
    Поблагодарили
    155 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

    По умолчанию

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

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

    По умолчанию

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

  10. #8
    Banned
    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,841
    Спасибо Благодарностей отдано 
    483
    Спасибо Благодарностей получено 
    658
    Поблагодарили
    512 сообщений
    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.

  11. #9
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    г. Павлодар, Казахстан
    Сообщений
    4,430
    Спасибо Благодарностей отдано 
    329
    Спасибо Благодарностей получено 
    609
    Поблагодарили
    452 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

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

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

    Denn (10.12.2019)

  13. #10
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    7,880
    Спасибо Благодарностей отдано 
    667
    Спасибо Благодарностей получено 
    1,886
    Поблагодарили
    1,072 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В многочисленных версиях микрософтовского бейсика 3.2 (оригинал 1975), в т.ч. для микро-80 и в микроне одна из самых используемых процедур - RST 1. Она проверяет, совпадает ли следующий символ в программе с символом после RST 1.

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

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

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

Эту тему просматривают: 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

Ваши права

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