Lavr wrote:Нашел я оригинал этого кросс-ассмблера: 
Кросс-ассемблер для БК-0010/11М v1.00
Автор: Александр Осипов 1997год.
...
Жаль исходника нет... хочется в эти ассемблеры кое-что дописать... 

 
В общем, подумал я, что 
15.317 байт этого 
ASM.COM можно прочитать в 
IDA, -
собственно, не так уж и много...
Но сразу насторожило, что в коде не видно ассемблерных мнемоник 
WINHex-ом.
При запуске через отладчик выяснилось, что 
ASM.COM шифрован через 
XOR некоей
неизвестной ни мне, ни 
File Analyzerу утилитой "
XOR v 0.03b by ICO 20-feb-1995 95".
Причем зашифрован он оказался дважды - во второй раз после 
XOR сигнатуру
"
XOR v 0.03b by ICO 20-feb-1995 95" отрезали вручную.  
 
 
Далее оказалось, что и это еще не всё, еще какой-то "манипулятор" приделан.
Я выполнил часть кода этого манипулятора вручную - он жульничал со стеком
и патчил точку входа в код - после чего выяснилось, что:
File Name:   ASM.COM
File Date:   16 Feb 2018
File Size:   16352
File type:   MZ-EXE. Old-style DOS executable file
Processed:   Packed by PKLITE v.1.00 or v.1.03 (type 1) (for .EXE files)
Extension:   DOS executable file
Но ни 
UNP.EXE, ни 
PKUNLITE.EXE не смогли его распаковать...   
 
 
Пришлось через 
UNP.EXE превратить 
ASM.COM в 
ASM.EXE.
И только после этого 
PKUNLITE.EXE с ним справился:
File Name:   ASM.EXE
File Date:   16 Feb 2018
File Size:   
144956    
 
File type:   MZ-EXE. Old-style DOS executable file
Processed:   
Compiled by Turbo C 1988, 1990 or Borland C++ 1991 (type 2) (for .EXE files)
Extension:   DOS executable file
Я, конечно, подставил 
IDA прокрутить эти 
144956 Байт, поскольку внутри обнаружилось порядка
115000 нулевых байт, но результат меня не обнадёжил...  
 
 
Если кому интересен развернутый 
ASM.COM в виде 
ASM.EXE в оригинале, то вот он:
ASMDC.zip
Как 
ZIP нули-то хорошо плющит! С 
144956 до 
14195 Байт!  
 
 
Ну и если кому интересно, что же делал 
XOR v 0.03b by ICO 20-feb-1995 95 - то вот что:
 Код дешифратора XOR v 0.03b
 Код дешифратора XOR v 0.03bCode: Select all
29AF:401D 54            PUSH    SP
29AF:401E 50            PUSH    AX
29AF:401F 53            PUSH    BX
29AF:4020 51            PUSH    CX
29AF:4021 52            PUSH    DX
29AF:4022 1E            PUSH    DS
29AF:4023 06            PUSH    ES
29AF:4024 B91A3F        MOV     CX,3F1A
29AF:4027 0E            PUSH    CS
29AF:4028 07            POP     ES
29AF:4029 BF0301        MOV     DI,0103
29AF:402C BD5562        MOV     BP,6255
29AF:402F BE1936        MOV     SI,3619
29AF:4032 BB0100        MOV     BX,0001
29AF:4035 8BC3          MOV     AX,BX
29AF:4037 F7E5          MUL     BP
29AF:4039 03C1          ADD     AX,CX
29AF:403B 8BD8          MOV     BX,AX
29AF:403D 26            ES:
29AF:403E 3005          XOR     [DI],AL
29AF:4040 47            INC     DI
29AF:4041 E2F2          LOOP    4035
29AF:4043 BE0301        MOV     SI,0103
29AF:4046 BF0001        MOV     DI,0100
29AF:4049 8BEF          MOV     BP,DI
29AF:404B B91A3F        MOV     CX,3F1A
29AF:404E FC            CLD
29AF:404F AC            LODSB
29AF:4050 AA            STOSB
29AF:4051 E2FC          LOOP    404F
29AF:4053 07            POP     ES
29AF:4054 1F            POP     DS
29AF:4055 5A            POP     DX
29AF:4056 59            POP     CX
29AF:4057 5B            POP     BX
29AF:4058 58            POP     AX
29AF:4059 5C            POP     SP
29AF:405A FFE5          JMP     BP
29AF:405C                 DB        ' XOR v 0.03b by ICO 20-feb-1995 95'
29AF:407E 54            PUSH    SP
29AF:407F 50            PUSH    AX
29AF:4080 53            PUSH    BX
29AF:4081 51            PUSH    CX
29AF:4082 52            PUSH    DX
29AF:4083 1E            PUSH    DS
29AF:4084 06            PUSH    ES
29AF:4085 B97B3F        MOV     CX,3F7B
29AF:4088 0E            PUSH    CS
29AF:4089 07            POP     ES
29AF:408A BF0301        MOV     DI,0103; начало
29AF:408D BD5562        MOV     BP,6255
-
29AF:4090 BE1936        MOV     SI,3619
29AF:4093 BB0100        MOV     BX,0001
29AF:4096 8BC3          MOV     AX,BX
29AF:4098 F7E5          MUL     BP
29AF:409A 03C1          ADD     AX,CX
29AF:409C 8BD8          MOV     BX,AX
29AF:409E 26            ES:
29AF:409F 3005          XOR     [DI],AL
29AF:40A1 47            INC     DI
29AF:40A2 E2F2          LOOP    4096
29AF:40A4 BE0301        MOV     SI,0103
29AF:40A7 BF0001        MOV     DI,0100
29AF:40AA 8BEF          MOV     BP,DI
29AF:40AC B97B3F        MOV     CX,3F7;
29AF:40AF FC            CLD
29AF:40B0 AC            LODSB
29AF:40B1 AA            STOSB
29AF:40B2 E2FC          LOOP    40B0
29AF:40B4 07            POP     ES
29AF:40B5 1F            POP     DS
29AF:40B6 5A            POP     DX
29AF:40B7 59            POP     CX
29AF:40B8 5B            POP     BX
29AF:40B9 58            POP     AX
29AF:40BA 5C            POP     SP
29AF:40BB FFE5          JMP     BP; 100
You do not have the required permissions to view the files attached to this post.