This commit is contained in:
Frater 2017-09-24 01:45:36 +02:00
commit 43352ff262
1291 changed files with 220976 additions and 0 deletions

69
MAIN/PROT/ASMYT.ASM Normal file
View file

@ -0,0 +1,69 @@
IDEAL
MODEL large
P386
CODESEG
PUBLIC C randtau
LABEL randtau WORD
db 1024 dup(0)
rptr dw 0
eino dd 22a53341h
PUBLIC C arand
PROC C arand
ARG buu:word
mov bx, [cs:rptr]
mov eax, [cs:eino]
add eax, 0a753cd3dh
add bx, 2*4
and bx, 3ffh
add eax, [dword cs:bx+randtau]
add bx, 23*4
and bx, 3ffh
add eax, [dword cs:bx+randtau]
sub bx, 24*4
and bx, 3ffh
mov [dword cs:bx+randtau], eax
mov [cs:eino], eax
mov [cs:rptr],bx
ret
ENDP
PUBLIC C arsetkey
PROC C arsetkey
ARG ckey:dword
push ds si di
mov ax, cs
mov ds, ax
mov es, ax
mov si, OFFSET randtau
mov di, si
cld
lfs bx, [ckey]
mov cx, 100h
mov dl, [fs:bx]
@@l1:
lodsb
xor al, dl
stosb
inc bx
cmp [BYTE PTR fs:bx], 0d
jnz @@l2
lfs bx, [ckey]
@@l2:
rol dl, 1d
add dl, [fs:bx]
loop @@l1
pop di si ds
ret
ENDP
END

2
MAIN/PROT/CLEAN.BAT Normal file
View file

@ -0,0 +1,2 @@
del *.obj *.bak *.map *.lst *.bin *.dat *.inc

83
MAIN/PROT/CRYPT.C Normal file
View file

@ -0,0 +1,83 @@
#include <io.h>
#include <fcntl.h>
#include <dos.h>
#include <stdio.h>
#include <string.h>
extern int far arand();
extern char far randtau[1024];
char far buf[64000];
main() {
int p1, p2, p3, p4;
long l,sl,w;
int a,b,r;
int f1;
if(_argc!=2) return(1);
f1=open(_argv[1],O_RDWR|O_BINARY);
if(f1==-1) return(1);
l=read(f1,buf,64000);
lseek(f1,0,SEEK_SET);
p1=0;
do do do while(buf[p1++]!=0x12); while(buf[p1++]!=0x34); while(buf[p1++]!=0x56); while(buf[p1++]!=0x78);
p2=p1; // p2=cstart
do do do while(buf[p1++]!=0x12); while(buf[p1++]!=0x34); while(buf[p1++]!=0x56); while(buf[p1++]!=0x78);
for(a=p1-4;a<p2+768;a++) buf[a]=rand();
p3=p1-4; // p3=randtau
p1=p2+768;
do do do while(buf[p1++]!=0x12); while(buf[p1++]!=0x34); while(buf[p1++]!=0x56); while(buf[p1++]!=0x78);
p4=p1-4; // randtau code end
for(a=p4;a<p3+1024;a++) buf[a]=rand();
do do do while(buf[p1++]!=0x12); while(buf[p1++]!=0x34); while(buf[p1++]!=0x56); while(buf[p1++]!=0x78);
sl=p1-4; // p1=crypt_start
asm {
mov ax, p1
add ax, 29787d
mov cx, 15553d
mul cx
and ax, 511d
mov a, ax
}
for(;p1<l;p1++,a=(a+15553U)&511)
buf[a+p2+256]=buf[p1]^0x77;
memcpy(&randtau[0],&buf[p3],1024);
for(a=0;a<p2-4;a++) buf[a]=buf[a]^arand();
//---------------------------------------------------------------------------
for(a=0,r=0;a<256*3;a++)
{
if(a<256) { r+=0x7a33; r*=0x2345; }
else if(a<256*2) { r+=0x455c; r*=0x825d; }
else { r+=0xaa4b; } // r*=0xde88; }
buf[p2+(a&255)]^=r;
}
for(a=0,r=0;a<256*2;a++)
{
if(a<256) { r+=0x455c; r*=0x825d; }
else { r+=0xaa4b; } // r*=0xde88; }
buf[p2+(a&255)]^=r;
}
for(a=0,r=0;a<256;a++)
{
r+=0xaa4b; // r*=0xde88;
buf[p2+(a&255)]^=r;
}
//------------------------------------------------------------------------
write(f1,buf,sl);
chsize(f1,sl);
close(f1);
return(0);
}

BIN
MAIN/PROT/CRYPT.DSK Normal file

Binary file not shown.

BIN
MAIN/PROT/CRYPT.EXE Normal file

Binary file not shown.

BIN
MAIN/PROT/CRYPT.PRJ Normal file

Binary file not shown.

BIN
MAIN/PROT/EXEBODY.DAT Normal file

Binary file not shown.

1351
MAIN/PROT/EXEBODY.INC Normal file

File diff suppressed because it is too large Load diff

BIN
MAIN/PROT/EXEHEAD.DAT Normal file

Binary file not shown.

3
MAIN/PROT/EXEHEAD.INC Normal file
View file

@ -0,0 +1,3 @@
db 77,90,113,0,43,0,0,0,2,0,209,5,209,5,252
db 4,116,0,0,0,6,0,252,4,28,0,0,0

BIN
MAIN/PROT/INCBIN.EXE Normal file

Binary file not shown.

36
MAIN/PROT/MAKEFILE Normal file
View file

@ -0,0 +1,36 @@
prot.exe: run3.obj
tlink run3.obj,prot.exe
run3.obj: run3.asm run2.inc
tasm run3.asm
run2.inc: run2.obj crypt.exe
tlink /t run2.obj,run2.bin
-crypt run2.bin
-incbin run2.bin run2.inc
run2.obj: run2.asm run1.inc
tasm /m9 /l run2.asm
run1.inc: run1.obj
tlink /t run1.obj,run1.bin
-incbin run1.bin run1.inc
run1.obj: run1.asm exebody.inc exehead.inc
tasm /m9 run1.asm
exebody.inc exehead.inc: test.exe split.exe
-split test.exe
-incbin exebody.dat exebody.inc
-incbin exehead.dat exehead.inc
test.exe: test.asm
tasm test
tlink test
crypt.exe: crypt.c asmyt.asm
bcc crypt.c asmyt.asm
split.exe: split.c
bcc split.c

BIN
MAIN/PROT/PROT.EXE Normal file

Binary file not shown.

7
MAIN/PROT/PROT.MAP Normal file
View file

@ -0,0 +1,7 @@
Start Stop Length Name Class
00000H 069ECH 069EDH KOODI STACK
Program entry point at 0000:59E2

29
MAIN/PROT/RUN1.ASM Normal file
View file

@ -0,0 +1,29 @@
IDEAL
P386
SEGMENT lerssicode
ASSUME cs:lerssicode,ds:nothing,es:nothing
LABEL body BYTE
INCLUDE 'exebody.inc'
LABEL header BYTE
INCLUDE 'exehead.inc'
PROC start NEAR
mov ax, cs
add [word cs:header+0eh], ax
add [word cs:header+16h], ax
sub ax, 10h
mov es, ax
mov ds, ax
mov ss, [word cs:header+0eh]
mov sp, [word cs:header+10h]
jmp [dword cs:header+14h]
ENDP
jmp start
ENDS
END body

BIN
MAIN/PROT/RUN1.BIN Normal file

Binary file not shown.

1355
MAIN/PROT/RUN1.INC Normal file

File diff suppressed because it is too large Load diff

6
MAIN/PROT/RUN1.MAP Normal file
View file

@ -0,0 +1,6 @@
Start Stop Length Name Class
00000H 05491H 05492H LERSSICODE

BIN
MAIN/PROT/RUN1.OBJ Normal file

Binary file not shown.

366
MAIN/PROT/RUN2.ASM Normal file
View file

@ -0,0 +1,366 @@
P386
IDEAL
no_debug = 1
SEGMENT koodi para public
ASSUME cs:koodi, ds:nothing
INCLUDE 'run1.inc'
run1start=$-2
db 12h,34h,56h,78h
PROC cstart
mov bx, 0d
xor si,si
mov cx, OFFSET cstart
mov eax, 22a53341h
@@l1:
add eax, 0a753cd3dh
add bx, 2*4
and bx, 3ffh
add eax, [dword cs:bx+randtau]
add bx, 23*4
and bx, 3ffh
add eax, [dword cs:bx+randtau]
sub bx, 24*4
and bx, 3ffh
xor [cs:si],al
mov [dword cs:bx+randtau], eax
inc si
loop @@l1
jmp run1start
ENDP
rptr dw 0
LABEL randtau WORD
db 12h,34h,56h,78h
;---------------------------------------------------------------------------
ORG OFFSET cstart+768d
mdd dw 55a2h
start:
cli
xor ax, ax
mov ds, ax
mov [word ds:4], OFFSET int01
mov [word ds:4+2], cs
mov [word ds:4*3], OFFSET int03
mov [word ds:4*3+2], cs
mov ax, cs
mov ss, ax
mov sp, OFFSET apino
PROC int01
pop [r_ip] ; remove ip
add sp, 2d ; remove cs
pusha ; = 8*2 bytes
push ds es ; + 2*2 bytes = total 20 bytes
ASSUME ds:koodi
mov ax, cs
mov ds, ax
mov bx, [pptr]
mov [sptau+bx], sp ; save SP
mov ax, [r_ip]
sub ax, OFFSET runrun
add [iptau+bx], ax ; save IP
add bx, 2d
cmp bx, 8d
jbe @@l1
mov bx, 0d
@@l1: mov [pptr], bx
mov sp, [sptau+bx] ; get SP
mov ax, [iptau+bx] ; get IP
add ax, 29787d
mov bp, 15553d
mul bp
lea si, [runrun]
mov cx, 8d
@@l2:
mov bx, ax
and bx, 511d
mov dl, [BYTE bx+cstart+256]
xor dl, 77h
mov [si], dl
inc bx
inc si
add ax, bp
loop @@l2
ASSUME ds:NOTHING
pop es ds
popa
push cs
push OFFSET runrun
int03:
iret
ENDP
db 12h,34h,56h,78h ; end of randtau
;----------------------------------------------------------------------------
IF randtau+1024 LT $
ERR
ENDIF
ORG OFFSET randtau+1024
r_cnt dw 1
r_ip dw ?
pptr dw 7*2
;------------------------------------------------------------------------------
sptau dw OFFSET pino1, OFFSET pino2, OFFSET pino5, OFFSET pino3, OFFSET pino4
ORG sptau+8*2
iptau dw OFFSET rout1, OFFSET rout2, OFFSET rout5, OFFSET rout3, OFFSET rout4
ORG iptau+8*2
; dw 10 dup(?) ; free space
pino1: dw 2 dup(?) ; es, ds
dw 8 dup(?) ; di si bp sp bx dx cx ax
dw 0100h
; dw 10 dup(?) ; free space
pino2: dw 2 dup(?) ; es, ds
dw 8 dup(?) ; di si bp sp bx dx cx ax
dw 0100h
; dw 10 dup(?) ; free space
pino3: dw 2 dup(?) ; es, ds
dw 8 dup(?) ; di si bp sp bx dx cx ax
dw 0100h
; dw 10 dup(?) ; free space
pino4: dw 2 dup(?) ; es, ds
dw 8 dup(?) ; di si bp sp bx dx cx ax
dw 0100h
; dw 10 dup(?) ; free space
pino5: dw 2 dup(?) ; es, ds
dw 8 dup(?) ; di si bp sp bx dx cx ax
dw 0100h
dw 10h dup(?) ; reserved
apino: dw OFFSET runrun
dw 0
dw 0
PROC runrun
REPT 4
nop
ENDM
mov ds, ax
mov es, ax
mov ax, 13h
int 10h
mov si, OFFSET runrun
mov di, 0d
rep movsb
mov si, bx
and si, 8191
mov eax, [cs:bx]
xor eax, [cs:si]
mov [cs:(dword runrun)], eax
mov eax, [cs:bx+4]
xor eax, [cs:si+4]
mov [cs:(dword runrun+4)], eax
int 1
loop runrun
ENDP
;---------------
cmp_dt db 12 dup(?)
doexit dw 4
nnull dd 0
;------------------------------------------------------------------------------
jmp start
;------------------------------------------------------------------------------
MACRO scall l1
LOCAL l2
push OFFSET l2
jmp l1
l2:
ENDM
MACRO sret
LOCAL l2
pop bx
sub bx, OFFSET l2 - OFFSET runrun
l2: jmp bx
ENDM
; This code is crypted at randtau of crypter.
; maximum length 1024 bytes.
;
db 12h,34h,56h,78h
crypt_start:
PROC rout1
mov bx, OFFSET cstart
mov cx, 256d
@@l1: add ax, 7a33h
imul ax, 2345h
xor [cs:bx], al
inc bx
IFDEF no_debug
int 1
ENDIF
loop @@l1
ENDP
PROC rout2
mov bx, OFFSET cstart
mov cx, 256d
@@l1: add ax, 455ch
imul ax, 825dh
xor [cs:bx], al
inc bx
IFDEF no_debug
int 1
ENDIF
loop @@l1
ENDP
PROC kill_sice
REPT 8
xor si, si
ENDM
sgdt [pword cs:cmp_dt]
REPT 8
xor si, si
ENDM
add eax, 23f50000h
lea ebp, [ebx+esi+0001fffah]
REPT 7
nop
ENDM
sidt [pword cs:cmp_dt+6]
mov cl, [cs:cmp_dt+6]
sub [cs:cmp_dt], cl
mov cl, [cs:cmp_dt+6+1]
sbb [cs:cmp_dt+1], cl
REPT 8
xor si, si
ENDM
mov cl, [cs:cmp_dt+6+2]
sbb [cs:cmp_dt+2], cl
mov cl, [cs:cmp_dt+6+3]
sbb [cs:cmp_dt+3], cl
mov cl, [cs:cmp_dt+6+4]
sbb [cs:cmp_dt+4], cl
mov cl, [cs:cmp_dt+6+5]
sbb [cs:cmp_dt+5], cl
cmp [word cs:cmp_dt+4], 0000h
jne rout3
mov edx, 0805f8c9h
cmp [dword cs:cmp_dt], edx
je @@dumpsice
mov edx, 0805f899h ; 99f80508 0000
cmp [dword cs:cmp_dt], edx
jne @@skip
REPT 8
xor si, si
ENDM
@@dumpsice:
IFDEF no_debug
add [cs:mdd],0a54dh
add ax, [cs:mdd]
ENDIF
@@skip:
ENDP
PROC rout3
mov bx, OFFSET cstart
mov cx, 256d
@@l1: add ax, 0aa4bh
; imul ax, 0de88h
xor [cs:bx], al
inc bx
IFDEF no_debug
int 1
ENDIF
loop @@l1
ENDP
PROC rout4
dec [doexit]
jz @@l2
@@l3:
xor ax, ax
dw 10 dup(0)
@@l4: dw 10 dup(0)
mov si, 'FG'
mov di, 'JM'
dw 5 dup(0)
mov ax, 0911h
IFDEF no_debug
int 3h
ENDIF
jmp @@l3
@@l2:
REPT 20
xor si, si
ENDM
mov [word ds:3*4+0], OFFSET cstart
mov [word ds:3*4+2], cs
IFNDEF no_debug
int 3
ENDIF
jmp rout5
mov ax, 4c00h
int 21h
ENDP
PROC rout5
IFDEF no_debug
int 01
ENDIF
dw 5 dup(0)
add [byte es:bx], 0d
inc bx
dw 50 dup(0)
jmp rout5
ENDP
IF ($-crypt_start) GT 1000d
ERR
ENDIF
ENDS
END

BIN
MAIN/PROT/RUN2.BIN Normal file

Binary file not shown.

1440
MAIN/PROT/RUN2.INC Normal file

File diff suppressed because it is too large Load diff

4938
MAIN/PROT/RUN2.LST Normal file

File diff suppressed because it is too large Load diff

6
MAIN/PROT/RUN2.MAP Normal file
View file

@ -0,0 +1,6 @@
Start Stop Length Name Class
00000H 05BE8H 05BE9H KOODI

BIN
MAIN/PROT/RUN2.OBJ Normal file

Binary file not shown.

16
MAIN/PROT/RUN3.ASM Normal file
View file

@ -0,0 +1,16 @@
IDEAL
P386
SEGMENT koodi stack 'STACK'
INCLUDE 'run2.inc'
run2end:
dw 0
dw 0
dw 0
dw 0
db 4096 dup(0)
ENDS
END run2end-3

BIN
MAIN/PROT/RUN3.OBJ Normal file

Binary file not shown.

36
MAIN/PROT/SPLIT.C Normal file
View file

@ -0,0 +1,36 @@
#include <stdio.h>
#include <conio.h>
#include <dos.h>
char buf[16384];
main() {
int a,b;
FILE *f1,*f2,*f3;
if(_argc!=2)
{
printf("usage: %s <file.exe>\n");
exit(1);
}
f1=fopen(_argv[1],"rb");
if(f1==0) exit(1);
f2=fopen("exebody.dat","wb");
if(f2==0) exit(1);
f3=fopen("exehead.dat","wb");
if(f3==0) exit(1);
fread(buf,1,0x1c,f1);
fwrite(buf,1,0x1c,f3);
fseek(f1,0x08,SEEK_SET);
fseek(f1,a=getw(f1)*16,SEEK_SET);
while(!feof(f1))
{
a=fread(buf,1,16384,f1);
if(a==0) break;
fwrite(buf,1,a,f2);
}
}

BIN
MAIN/PROT/SPLIT.EXE Normal file

Binary file not shown.

45
MAIN/PROT/TEST.ASM Normal file
View file

@ -0,0 +1,45 @@
IDEAL
SEGMENT lerssicode para private
string db 'Aja t„m„ eri booteilla!',10,13,'$'
dw 10000 dup(?)
start:
mov dx, 3c8h
xor al, al
out dx, al
inc dx
dec al
out dx, al
out dx, al
out dx, al
mov ah, 2
mov dl, 7
int 21h
mov dx, 3c8h
xor al, al
out dx, al
inc dx
out dx, al
out dx, al
out dx, al
mov ah, 9h
mov dx, OFFSET string
push cs
pop ds
int 21h
mov ax, 1
int 16h
mov ax, 4c00h
int 21h
dw 1
ENDS
END start

BIN
MAIN/PROT/TEST.EXE Normal file

Binary file not shown.

8
MAIN/PROT/TEST.MAP Normal file
View file

@ -0,0 +1,8 @@
Start Stop Length Name Class
00000H 04E6AH 04E6BH LERSSICODE
Program entry point at 0000:4E3A
Warning: No stack

BIN
MAIN/PROT/TEST.OBJ Normal file

Binary file not shown.

BIN
MAIN/PROT/TEST.OLD Normal file

Binary file not shown.

34
MAIN/PROT/TGIDT.ASM Normal file
View file

@ -0,0 +1,34 @@
IDEAL
P386
SEGMENT koodi
ASSUME cs:koodi
ORG 100h
start:
sgdt [pword cs:erkki]
sidt [pword cs:erkki+6]
mov al, [cs:erkki+6]
sub [cs:erkki], al
mov al, [cs:erkki+6+1]
sbb [cs:erkki+1], al
mov al, [cs:erkki+6+2]
sbb [cs:erkki+2], al
mov al, [cs:erkki+6+3]
sbb [cs:erkki+3], al
mov al, [cs:erkki+6+4]
sbb [cs:erkki+4], al
mov al, [cs:erkki+6+5]
sbb [cs:erkki+5], al
int 3
ret
erkki db 16 dup (0)
ENDS
END start

BIN
MAIN/PROT/TGIDT.COM Normal file

Binary file not shown.