📄 crypt.s
字号:
/ crypt -- password incoding/ mov $key,r0/ jsr pc,crypt.globl crypt, _crypt.globl savr5_crypt: mov r5,-(sp) mov sp,r5 mov r5,savr5 mov 4(r5),r0 jsr pc,crypt clr savr5 mov (sp)+,r5 rts pccrypt: mov r1,-(sp) mov r2,-(sp) mov r3,-(sp) mov r4,-(sp) mov r5,-(sp) mov r0,r1 mov $key,r0 movb $004,(r0)+ movb $034,(r0)+1: cmp r0,$key+64. bhis 1f movb (r1)+,(r0)+ bne 1b1: dec r0/// fill out key space with clever junk/ mov $key,r11: movb -1(r0),r2 movb (r1)+,r3 xor r3,r2 movb r2,(r0)+ cmp r0,$key+128. blo 1b/// establish wheel codes and cage codes/ mov $wheelcode,r4 mov $cagecode,r5 mov $256.,-(sp)2: clr r2 clr (r4) mov $wheeldiv,r33: clr r0 mov (sp),r1 div (r3)+,r0 add r1,r2 bic $40,r2 bis shift(r2),(r4) cmp r3,$wheeldiv+6. bhis 4f bis shift+4(r2),(r5)4: cmp r3,$wheeldiv+10. blo 3b sub $2,(sp) tst (r4)+ tst (r5)+ cmp r4,$wheelcode+256. blo 2b tst (sp)+/.datashift: 1;2;4;10;20;40;100;200;400;1000;2000;4000;10000;20000;40000;100000 1;2wheeldiv: 32.; 18.; 10.; 6.; 4..bsscagecode: .=.+256.wheelcode: .=.+256..text/// make the internal settings of the machine/ both the lugs on the 128 cage bars and the lugs/ on the 16 wheels are set from the expanded key/ mov $key,r0 mov $cage,r2 mov $wheel,r31: movb (r0)+,r1 bic $!177,r1 asl r1 mov cagecode(r1),(r2)+ mov wheelcode(r1),(r3)+ cmp r0,$key+128. blo 1b/// now spin the cage against the wheel to produce output./ mov $word,r4 mov $wheel+128.,r33: mov -(r3),r2 mov $cage,r0 clr r51: bit r2,(r0)+ beq 2f incb r52: cmp r0,$cage+256. blo 1b// we have a piece of output from current wheel/ it needs to be folded to remove lingering hopes of/ inverting the function/ mov r4,-(sp) clr r4 div $26.+26.+10.,r4 add $'0,r5 cmp r5,$'9 blos 1f add $'A-'9-1,r5 cmp r5,$'Z blos 1f add $'a-'Z-1,r51: mov (sp)+,r4 movb r5,(r4)+ cmp r4,$word+8. blo 3b/ mov (sp)+,r5 mov (sp)+,r4 mov (sp)+,r3 mov (sp)+,r2 mov (sp)+,r1 mov $word,r0 rts pc.bsskey: .=.+128.word: .=.+32.cage: .=.+256.wheel: .=.+256.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -