А вот еще часть кода- технический дизассемблер ПЗУ ATM TURBO1. В нем, как и в ATM 2 с версией прошивки 6.4 часть информации (та что относится к cpm) заксорена. И алгоритмы похоже что одинаковые. Так вот я как раз и хочу расшифровать этот код и собрать нормальное ПЗУ. Кроме меня я так понимаю это мало кому интересно, а мои познания в ассемблере на двоечку :-)
Автор комментариев к этой части кода не я.
Если за ключ принять неизвестное число в HL (пусть будет KEY), обозначить искомый байт- XX, предыдущий расшифрованный-ZZ, а байт для дешифровки УУ получается следующая картина:Код:;- Блок процедур расксорки - l1fba ld bc,#1b0f l1fbd push bc ;Вызов последующих 2-х процедур в итоге приводит к возникновению ;неизвестного числа в HL call l1fff ;вызов процедуры, формирующей неизвестное число в #5F74 call l2035 ;вызов процедуры, формирующей неизвестное число в HL defb #2E,#03,#01,#01,#82,#00 ld c,#00 exx pop bc ld de,#d400 ;расксорка блока по адресу #22B3 ld hl,l22b3 ;для того, чтобы его расксорить нужно всего-лишь l1fd4 ld a,(hl) ;знать код расксорки в HL, а это 65536 вариантов exx xor c xor l ld c,a add hl,hl jr nc,l1fdd inc hl l1fdd exx ld (de),a inc de cpi jp pe,l1fd4 ret
XX=((УУ)XOR(ZZ))XOR(n*KEY) где n увеличивается с каждым циклом на 1.
Ничего я не упустил?
Если я прав, то в комментариях к коду упоминание о 65 тыс вариантов не верно тк из HL используется только L?




Ответить с цитированием
Размещение рекламы на форуме способствует его дальнейшему развитию 
