My weblog about all things that interest me (and hopefully you): viruses, programming in general, death & black metal, certain web sites... Well, it could be anything.

Friday, April 22, 2005

$age++

Oh happy joy! I managed to stay alive another year in good health. Today I turned 33 years old and (as Graham Cluley would say) still not have grown up.

To celebrate this with you, I give you the source code of one of my recent replicators (including virus). Can you figure out in which environment this program is able to run? I will soon elaborate more on the environment this code runs in and hope to interest you in writing some code as well.

Hint for AV'ers: you can't write a disinfector for this!
Published  Name        RTFM   
Published Author Rajaat
Published EMail rajaat.itookmyprozac@gmail.com
Published Country The Netherlands
Published Comment Birthday Release
Published Version 0.5

Published OpenSource yes
Published Language RC300
Published OptionSet Classic

Bank 01 BootUp
BJump 30,1

Bank 02
Bank 03
Bank 04
Bank 05
Bank 06
Bank 07
Bank 08
Bank 09
Bank 10
Bank 11
Bank 12
Bank 13
Bank 14
Bank 15
Bank 16
Bank 17

Bank 18 Virus
Trans 1,1
Trans 1,2
Trans 1,3
Turn 1

Bank 19 UniversalJumper
BJump #Active,1

Bank 20 QuickDisabler
@QuickDisabler.Run
Move
Comp %Active,2
Set %Active,0
Comp %Banks,0
Turn 1
Jump @QuickDisabler.Run

Bank 21 QuickRunner
@QuickRunner.Move
Move
@QuickRunner.Run
Scan #2
Comp #2,1
Jump @QuickRunner.NoNME
@QuickRunner.KillAllBanks
Trans 5,1
Set %Active,0
Set #3,%Banks
@QuickRunner.Empty
Trans 4,#3
Sub #3,1
Comp #3,-1
Jump @QuickRunner.Empty
Set %Active,1
Jump @QuickRunner.Move
@QuickRunner.NoNME
Comp #2,2
Jump @QuickRunner.Move
Set %Active,2
Turn 1
Jump @QuickRunner.Run

Bank 22
Bank 23
Bank 24

Bank 25 SpawnQuickDisabler
Create 2,3,0
Trans 1,1
Set %Active,2
Trans 2,2
Trans 3,3
Turn 0
@SpawnQuickDisabler.Create
Create 0,1,1
Trans 3,1
Set %Active,2
Jump @SpawnQuickDisabler.Create

Bank 26 SpawnQuickRunner
Create 2,5,0
Trans 4,1
Set %Active,2
Trans 2,2
Trans 3,3
Trans 4,4
Trans 5,5
Turn 0
@SpawnQuickRunner.Create
Create 1,5,1
Trans 4,1
Set %Active,2
Trans 3,2
Trans 4,3
Trans 5,5
Jump @SpawnQuickRunner.Create

Bank 27
Bank 28
Bank 29

Bank 30 InitialBoot
Set #Active,2
@InitialBoot.Create

; Create SpawnQuickDisabler
Create 2,3,0
Trans 19,1
Set %Active,2
Trans 25,2
Trans 20,3
Turn 0

; Create SpawnQuickKiller
Create 2,5,0
Trans 19,1
Set %Active,2
Trans 26,2
Trans 21,3
Trans 19,4
Trans 18,5
Turn 0

Add #19,1
Comp #19,4
Jump @InitialBoot.Create

BJump 31,@Phase2Boot.KillNeighbours

Bank 31 Phase2Boot
@Phase2Boot.KillNeighbours
Set %Active,1
Trans 32,2
Trans 32,1
Create 2,12,0
Trans 33,10
Trans 19,1
Set %Active,10
Trans 19,1
Trans 32,11
Trans 19,9
Trans 18,8
Turn 0
Jump @Phase2Boot.KillNeighbours

Bank 32 Die
Die

Bank 33 HugeStar
@HugeStar.Scan
Turn 1
Scan #2
Comp #2,1
Jump @HugeStar.NoNME
@HugeStar.Kill
Trans 8,1
Trans 8,2
Trans 8,3
Set %Active,0
Set #4,%Banks
@HugeStar.EmptyIt
Trans 11,#4
Sub #4,1
Comp #4,-1
Jump @HugeStar.EmptyIt
Set %Active,1
Jump @HugeStar.Scan
@HugeStar.NoNME
Comp #2,0
Jump @HugeStar.Refresh
Create 2,12,0
Trans 10,10
Trans 9,1
Set %Active,10
Trans 9,1
Trans 11,11
Trans 9,9
Trans 8,8
Jump @HugeStar.Scan
@HugeStar.Refresh
Trans 11,1
Trans 11,2
Trans 10,10
Trans 9,9
Trans 8,8
Set %Active,10
Jump @HugeStar.Scan

Bank 34
Bank 35
Bank 36
Bank 37
Bank 38
Bank 39
Bank 40
Bank 41
Bank 42
Bank 43
Bank 44
Bank 45
Bank 46
Bank 47
Bank 48
Bank 49

2 comments:

Anonymous said...

let me guess... robocom? congratulations r!!!

Anonymous said...

hey, congrats! i am sure that people like we are will _never_ grow up ;-)