home bbs files messages ]

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,781 of 4,675   
   wolfgang kern to Kerr Mudd-John   
   Re: B64 fixup version   
   03 Jul 17 01:23:24   
   
   From: nowhere@never.at   
      
   Kerr Mudd-John wrote:   
      
   a new thread is welcome anyway :)   
      
   >> 14c sub al,21      ;c5-21=a4   
   >> 14d inc ax  dup2   ;a6 xor 65 = c3   
   >> 14f xor [bx+7e],al ;create a RET in   
      
   > I see the sub as being 2 bytes, the counts look off by 1 after this   
   > for me.   
      
   Yes thanks. I just typed it in and moved things around lateron. So the   
   last unused byte at 0160 is gone yet and the branches were altered.   
   There was one more error in my post: push 56 for CX read now 38 and   
   I still wonder how a decimal could enter my Hex-world.   
      
   hope it's correct typed in yet:   
      
   100 pop cx   
   101 push cx   
   102 push cx        ;ax=0   
   103 push byte 038  ;cx=0038 (56 byte)   
   105 push 4130      ;dx=4130 to find my first byte with DH   
   108 pop ax   
   109 push ax   
   10a xor ax,4030   
   10d push ax        ;bx=0100   
   10e push cx  dup2  ;sp,bp=0   
   110 sub al,7e      ;   
   112 push ax        ;si=0182   
   113 push byte 044  ;di=0044   
   115 popa           ;   
   116 push BX        ;for ret   
   117 push DI        ;for ret   
   118 sub ax,5873    ;-> a78d xor 6666 = EB C1   
   11b xor [bx+5D],ax ;make a back-branch to 0120   
   11e jnc 0142       ;=jmp always after xor (73 22)   
      
   120 cmp [si],dh    ;search my first byte (41)   
   122 jnz 015a       ;skip   
   124 3636 REP MOVSB ;   
   126 sub [bp+7a],ax ;ax= 7761 [07a] was 404c   
   129 sub [bp+74],al ;         [074] was 22   
   12c sub [bp+71],ax ; and so on...   
   13f sub [bb+6e],ax   
   132 sub [bp+6b],ax   
   135 sub [bp+69],ax   
   138 sub [bp+66],ax   
   13b sub [bp+60],ax   
   13e jnz 0161       ;=jmp always 75 21   
   140 0d 0a   
      
   142 36 36   
   144 push bp   
   145 pop ax   
   146 sub ax,6d3b    ;92c5 xor 3636 = A4F3   
   149 xor [bx+24],ax ;create REP MOVS   
   14c sub al,21      ;c5-21=a4   
   14e inc ax  dup2   ;a6 xor 65 = c3   
   150 xor [bx+7e],al ;create a RET in a field of 65 nops   
   153 push bx   
   154 pop di   
   155 push 7761   
   158 pop ax   
   159 dec si   
   15a 36 36          ;slide nops   
   15c inc si   
   15d 6666 JMP 120   ;become eb c1   
   15f 6666   
      
   161 sub [bp+5e],al   
   164 sub [bp+5c],al   
   167 sub [bp+5a],ax   
   16a sub [bp+55],ax   
   16d sub [bp+51],al   
   170 sub [bb+4d],ah   
   173 363636         ;free for two more   
   176 363636         ;   
   179 sub al,7a      ;   
   17b sub [bp+4b],ax ;   
   17e 6565           ;the return goes here   
   180 6565           ;or there   
   182 0d0a   
   184 3636           ;two are enough with scan start at 0182   
   186 41414141 ...   ;raw string starts here immediate followed by B64   
   __   
   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