Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.


Channels ▼
RSS

Design

They Made One Small Mistake


The Darrington Coal Truck virus

It seemed like just another ordinary Thursday morning in Accounts, until Jayne Thornton, equipped with a large pile of quite plausible receipts and claim forms, connected to the server and opened up the Travel Expenses 99.xls spreadsheet. Then she knew at once that something was wrong. For instead of the normal rows of flights to Edinburgh and car hire at Charles de Gaulle, there was a large dialog:

Deadly Excel Macro Virus.

Today is the 23½th anniversary of the Darrington Coal Truck Near Miss

So wave bye-bye to your hard disk, Jayne.

Press Ok to continue.

Jayne gave out a little scream and Rod, who had been watching, picked up the phone and dialled. Seconds later* Verity Stob burst through the door. 'This is Tech support! What's the problem?'

The accountress tearfully indicated her screen.

'Hmmm. It looks rather like a macro virus. Can you show me your hands please?'

Jayne looked up in surprise. 'What?'

'Some computer viruses are passed by manual contact. I'm going to need to run Dr Solly for People V3 on you. Can you hold out your hands please?'

The Accounts department gasped in amazement. Had Verity finally lost her grip? Jayne reluctantly put out her hands out... and with a deft movement, Verity snapped on a pair of handcuffs.

'Okay Thornton, the game is up. That's no virus, that's a rather tiresome joke program devised by your VBA-knowledgeable and alliterative boyfriend Ian from Invoicing. You are under arrest for deliberately wasting tech support's time.'

How did Verity Stob know it wasn't a virus?

The dialog called her 'Jayne', whereas everybody in the office always called her 'Planky', for reasons that we had better not discuss here. Everybody, that is, except Ian from Invoicing — and even he is only going out with her so he can use her car, or that's what I heard anyway.

And for another thing, it's only the 16®th anniversary of the Darrington Coal Truck Near Miss. A real virus writer wouldn't make a silly mistake like that.

*About 1800 seconds later, since you ask.

Clipper justice

'Come over here a minute, Verity. Meet Kenny — he's our new Clipper programmer, and he's from Morpeth.'

'Hi Kenny, good to see the old DOS skills are still being kept alive. On the job already I see. What are you up to there?'

'Well I'm just tuning your old address database program. It's difficult to read under Windows so I've put in this line

SET COLOR TO User_Col

and then aaaaaaargh! You're breaking my arm!'

Verity Stob had darted forward, and now held Kenny in a deadly quadruple-nelson grip. Her manager intervened. 'Verity! What on earth are you doing?'

'I don't know why, but this man is telling us lies about his identity. Aren't you?'

'It's true! It's true! Get off!' sobbed the wretched culprit. 'I'm actually a Fox Plus hacker from Birmingham, Alabama. I learned to imitate the North Eastern accent by watching taped interviews with Kevin Keegan. I came here with a mission to infiltrate your fine Clipper code with inferior, poorly-scoped early xBase-style programming.'

'Phew, that was a close shave!' said the manager. 'Take him away, boys, and give him a taste of British Clipper justice.'

How did Verity detect the impostor?

Unlike inferior xBase dialects such as FoxPro 2.6 and 3 and also dBase III, Clipper allows you to write SET COLOUR TO instead of SET COLOR TO. (This is really true, by the way.) A real programmer from Morpeth would never contemplate using the American English spelling when he didn't have to.

Ping

'Blimey Tim O'Reilly!' said Royston Boss-Figure as he perused the invoice for the ISDN line. 'It's over £500 — and just for this quarter!'

'Hmmm,' said Verity Stob, looking over his shoulder. 'And a lot of the calls seem to happen around 8am. We could have a look at the router's log.' She sat down at a terminal, telnetted into the router, and in a few seconds was poring over a list of call-triggering TCP packets.

'There's your problem! Protocol 1 — that's a Ping packet - on the dot at 8 o'clock! That must come from the server — nothing else can do pings because of the way the firewall and the proxies are set up. I wonder if someone has accidentally left some sort of test program scheduled that brings up the line every day — and so causes our ISDN bill to be inflated?'

How was Verity able to reach this correct diagnosis so quickly?

She had secretly planted the ping program herself. She was in the habit of coming in early and doing a bit of leisure surfing at ISDN speed, as tiresomely prohibited by company rules. Reasoning that sooner or later the management would tumble to the out-of-hours usage, she had devised and implemented an alternative explanation before the crunch came.

Less tea, vicar?

'More tea, vicar?' enquired Verity Stob.

'I don't know, Verity,' said the vicar, proffering her porcelain cup. 'Not even your delicious Wild Strawberry and Nettle Tea, naturally caffeine-free though it is, can cheer me up.'

'I'm sorry to hear that. What's on your mind?'

'As you know, I gave my best ever sermon to the Microsoft Visual Programmers Group on Good Friday. Everybody seemed really keen, lots of enthusiasm. I thought I had made the big breakthrough and brought the Message to that notoriously Godless section of society. "On the Third Day, Christ rose again," I said, and they all lapped it up. So I thought they'd all be back for my special Easter Sunday service, but in the event...'

'In the event, only half the Visual Basic programmers turned up, and none of the Visual C++ or Visual J++ programmers.'

'Gosh Verity, that's right. How did you know that?'

Yes, how did Verity know that?

In Java and C++, arrays are zero-based. So users of those languages would expect Christ to rise on day[3], ie Bank Holiday Monday. In Visual Basic, arrays can be zero- or one-based, so half of them turned up on the correct date.

'That's a relief Verity. I was afraid everybody stayed at home on Sunday to scoff chocolate and to watch Manchester United versus Everybody Else In The World on Sky.'

'Oh no, vicar. I feel sure my explanation is the correct one.'


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.