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.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.