Forums before death by AOL, social media and spammers... "We can't have nice things"
|    comp.lang.asm.x86    |    Ahh, the lost art of x86 assembly    |    4,675 messages    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
|    Message 2,759 of 4,675    |
|    wolfgang kern to Kerr Mudd-John    |
|    Re: BASE64 again    |
|    29 Jun 17 16:06:40    |
      From: nowhere@never.at              Kerr Mudd-John wrote:              >>> Yup; a whole heap of mods to the first line to make it a b64 decoder.              >> I may have reached the end of this story (or at least for now),       >> tried on:              > Darn! I was hoping for more inspiration! My attempt at a SMC 1st line       > B64 decoder is wallowing in fixup constant clashes.              I'm still here...even a bit lost in a dead end road.              First thing my variant does is to move the unmodified string to 044.              I need three bytes for one single or paired modify to produce 00..20       and A7..FF by one SUB, but it needs two bytes more to create 7B..A6.              ie:        PUSH 0x7761 ;could have used 0x7a61        POP AX ;(4 byte)        SUB [bp+..],AL ;21->C0 66->FB        SUB [bp+..],AH ;21->AA        SUB [bp+..],AX ;two at once        ... ;(+3 each)       but for 80.. ;(+2 more)        SUB AL,0x7a ;ie: 5B -61-7a = 80        SUB [bp+..],AL ;AX is possible too              >> your short 50 byte:(can't pair 83,86 with one 3byte sub) 50+33+18+4+2=107       >> [string +11 pairs +6 single +push imm16 pop ax +sub AL,7A]              > I'm using direct code for some ; e.g.       >       > ; sub al,'a'-'A'-26 ; a-z ; sub al,6       > sub al,0x5A       > sub al,0x5A       > sub al,0x52 ; whew! -6!              me too replaced a MOV CL,4 with four INC CX (was zero anyway) and       the larger variant used 8 bytes on two word XOR-clear instead of a       four byte 'AND dword [DI],0' (coz this need three bytes to modify).              would six DEC AX alter your AH ?              I had an ADD AL,06 in my code and replaced it with SUB AL,0xFA.       This FA is a 5B in the original but modified by SUB 61.       So only 2+3 bytes instead of 6.              I create FA (-6) with single sub by either "["-"a" or "q"-"w"              > as there's some room for expanding from 50 and 64; I dropped trying to       > keep it to pure B64.              Yeah, SMC with pure B64 seems impossible or at least heavy detouring.       ...       >> So when I look back to the xor-sub-sub 2:1 and your 50 byte variant       >> and compare what's required for direct modify with the 2:1 algo, we       >> may not gain too much :)              wasn't "shorter than this" our previous target ? :)       __       wolfgang              --- SoupGate-Win32 v1.05        * Origin: you cannot sedate... all the things you hate (1:229/2)    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
(c) 1994, bbs@darkrealms.ca