MENU
На главную страницу
Flamer.nm.ru

M$ Windows
FAQ по WinXP
Дыры в форточках
или файерволы

Загрузочная дискета

Исходники
Защита авторства от дурака

Программирование
IDA Pro FAQ-1
IDA Pro FAQ-2

Юмор
10 стадий похмелья программиста

Обратная связь
Пишите


Rambler's Top100


Зачастую можно встретить програмы, кряки, в которых чьи-то труды приписывает себе обычный пользователь. Просто открывает файл и правит информацию об авторе. Лично меня подобный ход событий абсолютно не устраивает. Вот и пришла идея написать защиту от дурака. Юзверь ничего не прочтет, а хакеру - все равно. Я решил создать маленький код, который бы изменял внешний вид com файла до неузнаваемости. Прикинул, что писать ее по принципу вируса (заменять первые три байта программы) - анализаторы антивирусов будут бунтовать - а воевать с ними желания не было. Кроме того, имеется возможность поправить исходную программу, на стадии написания. Для этого вместо директивы org 100h надо писать org 115. Потеря в 15h байт не является катострофой для многих мелких програмулик. Теперь выбор алгоритма... Стандартный - не интересно, сложный - долго. Результат - использование xor mem, mem-byte.


;------- Ниже идет листинг...
.286
.model tiny
.code
endl macro
db 0ah, 0dh, "$"
endm
Print macro string
mov dx, offset string
mov ah, 9h
int 21h
endm
CloseFile macro 
mov ah, 3eh
int 21h
endm

org 100h
mov ax, 3d00h+11000011b
mov cx, 0
mov dx, offset aDataFileName
int 21h
jc @@error
mov bx, ax

mov ah, 3fh
mov cx, 0fffeh-200h
mov dx, offset ReadBuff
int 21h
jc @@erxit
push ax
CloseFile

pop cx
push cx
inc cx
mov DataLen, cx
mov di, offset ReadBuff
dec cx
inc di
XorLoop:

mov al, [di]
xor al, [di-1]
mov [di], al
inc di
loop XorLoop 
mov ah, 3ch
xor cx, cx
mov dx, offset aOutFileName
int 21h
jc @@errCreate

mov bx, ax
pop ax
add ax, 14h ; корректировка длинны результатирующего файла
mov cx, ax
mov ah, 40h
mov dx, offset OUT_COM
int 21h
jc @@errCreate
mov ah, 3eh
int 21h
ret
@@errCreate:
CloseFile 
pop cx
Print aFalture1
ret
@@erxit:
CloseFile 
@@error:
Print aFalture
ret
.data
aDataFileName db "DATA.DAT",0
aOutFileName db "CRACK.COM",0
aFalture db "Can't working... Data file was lost!"
endl
aFalture1 db "Can't create outgoing file!"
endl
.data
OUT_COM db 0b9h
DataLen dw ?
; Ниже идет код распаковщика...
db 0BFh, 15h, 01, 03h, 0f9H
db 8Ah, 5h, 4fh, 8ah , 25h, 32h, 0c4h, 88h
db 45h, 1, 0e2h, 0f4h, 90h
ReadBuff db ?
end start

banners
Designed by flamer aka kstati 2003