Selaa lähdekoodia

* linuxfr.org captchas

git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/pwntcha/trunk@419 92316355-f0b4-4df1-b90c-862c8a59935f
master
sam 20 vuotta sitten
vanhempi
commit
10a438c117
11 muutettua tiedostoa jossa 286 lisäystä ja 4 poistoa
  1. +2
    -1
      Makefile.am
  2. +2
    -1
      extras/Makefile.am
  3. +5
    -0
      extras/NOTES
  4. +11
    -0
      extras/font_linuxfr.php
  5. BIN
      share/font_linuxfr.png
  6. +1
    -0
      src/Makefile.am
  7. +1
    -0
      src/common.h
  8. +155
    -0
      src/linuxfr.c
  9. +8
    -1
      src/main.c
  10. +1
    -1
      testsuite/Makefile.am
  11. +100
    -0
      testsuite/linuxfr/control.txt

+ 2
- 1
Makefile.am Näytä tiedosto

@@ -6,8 +6,9 @@ DIST_SUBDIRS = $(SUBDIRS) extras testsuite
EXTRA_DIST = \
bootstrap \
ChangeLog \
share/font_slashdot.png \
share/font_linuxfr.png \
share/font_phpbb.png \
share/font_slashdot.png \
share/font_vbulletin.png \
$(NULL)



+ 2
- 1
extras/Makefile.am Näytä tiedosto

@@ -2,7 +2,8 @@ NULL =

EXTRA_DIST = \
NOTES \
usercp_confirm.php \
font_linuxfr.php \
getphpbbcaptcha.py \
usercp_confirm.php \
$(NULL)


+ 5
- 0
extras/NOTES Näytä tiedosto

@@ -17,3 +17,8 @@ getphpbbcaptcha.py

Usage: getphpbbcaptcha.py > captcha.png

font_linuxfr.php
----------------
This file is used to create the linuxfr font.

Usage: php4 font_linuxfr.php > font_linuxfr.png

+ 11
- 0
extras/font_linuxfr.php Näytä tiedosto

@@ -0,0 +1,11 @@
<?php
dl("gd.so");
header("Content-type: image/png");
$s = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
$im = imagecreate(strlen($s) * 9, 12);
$bg = imagecolorallocate($im, 255, 255, 255);
$fg = imagecolorallocate($im, 0, 0, 0);
imagestring($im, 5, 0, -3, $s, $fg);
imagepng($im);
imagedestroy($im);
?>

BIN
share/font_linuxfr.png Näytä tiedosto

Before After
Leveys: 558  |  Korkeus: 12  |  Koko: 626 B

+ 1
- 0
src/Makefile.am Näytä tiedosto

@@ -8,6 +8,7 @@ pwntcha_SOURCES = \
image.c \
filters.c \
common.h \
linuxfr.c \
phpbb.c \
scode.c \
slashdot.c \


+ 1
- 0
src/common.h Näytä tiedosto

@@ -21,6 +21,7 @@ struct image
void dprintf(const char *fmt, ...);

/* available CAPTCHA decoders */
char *decode_linuxfr(struct image *img);
char *decode_phpbb(struct image *img);
char *decode_scode(struct image *img);
char *decode_slashdot(struct image *img);


+ 155
- 0
src/linuxfr.c Näytä tiedosto

@@ -0,0 +1,155 @@
/*
* linuxfr.c: decode linuxfr.org captchas
* $Id$
*
* Copyright: (c) 2005 Sam Hocevar <sam@zoy.org>
* This program is free software; you can redistribute it and/or
* modify it under the terms of the Do What The Fuck You Want To
* Public License as published by Banlu Kemiyatorn. See
* http://sam.zoy.org/projects/COPYING.WTFPL for more details.
*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <limits.h>

#include "config.h"
#include "common.h"

#define FONTNAME "share/font_linuxfr.png"

/* Main function */
char *decode_linuxfr(struct image *img)
{
char all[] = "abcdefghijklmnopqrstuvwxyz"
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
"0123456789";
char *result;
struct image *tmp, *font;
int x, y, r, g, b, i, j, c;
int stats[40];

font = image_load(FONTNAME);
if(!font)
{
fprintf(stderr, "cannot load font %s\n", FONTNAME);
exit(-1);
}

/* linuxfr captchas have 7 characters */
result = malloc(8 * sizeof(char));
memset(result, '\0', 8);

tmp = filter_equalize(img, 150);

for(y = 0; y < img->height; y++)
{
int count = 0;
for(x = 0; x < img->width; x++)
{
getpixel(tmp, x, y, &r, &g, &b);
if(r == 0)
count++;
}
stats[y] = count;
}

/* Find 7 consecutive lines that have at least 14 pixels; they're
* baseline candidates */
for(y = 0; y < img->height - 11; y++)
{
int ycan = 1;
for(j = 3; j < 10; j++)
{
if(stats[y + j] < 14)
{
ycan = 0;
y = y + j - 3;
break;
}
}
if(!ycan)
continue;

/* Find 7 consecutive cells that have at least 2 pixels on
* each line; they're base column candidates */
for(x = 0; x < img->width - 9 * 7 + 1; x++)
{
int xcan = 1;
for(c = 0; c < 7; c++, xcan)
{
for(j = 3; j < 10; j++)
{
int count = 0;
for(i = 0; i < 8; i++)
{
getpixel(tmp, x + c * 9 + i, y + j, &r, &g, &b);
if(r == 0)
{
count++;
if(count == 2)
break;
}
}
if(count < 2)
{
xcan = 0;
break;
}
}
}
if(!xcan)
continue;

/* Now we have an (x,y) candidate - try to fit 7 characters */
for(c = 0; c < 7; c++, xcan)
{
int r2, g2, b2, test, tcan;
for(test = 0; test < 62; test++)
{
tcan = 1;
for(j = 0; j < 12; j++, tcan)
for(i = 0; i < 8; i++)
{
getpixel(tmp, x + c * 9 + i, y + j, &r, &g, &b);
getpixel(font, test * 9 + i, j, &r2, &g2, &b2);
/* Only die if font is black and image is white */
if(r > r2)
{
tcan = 0;
break;
}
}
if(tcan)
{
result[c] = all[test];
result[c+1] = '\0';
break;
}
}
if(!tcan)
{
xcan = 0;
break;
}
}
if(xcan)
{
break;
}
}
}

image_free(tmp);
image_free(font);

if(strlen(result) != 7)
{
free(result);
return NULL;
}

return result;
}


+ 8
- 1
src/main.c Näytä tiedosto

@@ -124,6 +124,8 @@ int main(int argc, char *argv[])

if(!strcmp(mode, "test"))
result = decode_test(img);
else if(!strcmp(mode, "linuxfr"))
result = decode_linuxfr(img);
else if(!strcmp(mode, "phpbb"))
result = decode_phpbb(img);
else if(!strcmp(mode, "scode"))
@@ -134,7 +136,12 @@ int main(int argc, char *argv[])
result = decode_vbulletin(img);
else
{
if(img->width == 320 && img->height == 50)
if(img->width == 100 && img->height == 40)
{
dprintf("autodetected linuxfr captcha\n");
result = decode_linuxfr(img);
}
else if(img->width == 320 && img->height == 50)
{
dprintf("autodetected phpBB captcha\n");
result = decode_phpbb(img);


+ 1
- 1
testsuite/Makefile.am Näytä tiedosto

@@ -4,7 +4,7 @@ EXTRA_DIST = \
README \
auditor/auditor00.png auditor/auditor01.png auditor/auditor02.png auditor/auditor03.png auditor/auditor04.png auditor/auditor05.png auditor/auditor06.png auditor/auditor07.png auditor/auditor08.png auditor/auditor09.png auditor/auditor10.png auditor/auditor11.png auditor/auditor12.png auditor/auditor13.png auditor/auditor14.png auditor/auditor15.png auditor/auditor16.png auditor/auditor17.png auditor/auditor18.png auditor/auditor19.png auditor/auditor20.png auditor/auditor21.png auditor/auditor22.png auditor/auditor23.png auditor/auditor24.png auditor/auditor25.png auditor/auditor26.png auditor/auditor27.png auditor/auditor28.png auditor/auditor29.png auditor/auditor30.png auditor/auditor31.png auditor/auditor32.png auditor/auditor33.png auditor/auditor34.png auditor/auditor35.png auditor/auditor36.png auditor/auditor37.png auditor/auditor38.png auditor/auditor39.png auditor/auditor40.png auditor/auditor41.png auditor/auditor42.png auditor/auditor43.png auditor/auditor44.png auditor/auditor45.png auditor/auditor46.png auditor/auditor47.png auditor/auditor48.png auditor/auditor49.png auditor/auditor50.png auditor/auditor51.png auditor/auditor52.png auditor/auditor53.png auditor/auditor54.png auditor/auditor55.png auditor/auditor56.png auditor/auditor57.png auditor/auditor58.png auditor/auditor59.png auditor/auditor60.png auditor/auditor61.png auditor/auditor62.png auditor/auditor63.png auditor/auditor64.png auditor/auditor65.png auditor/auditor66.png auditor/auditor67.png auditor/auditor68.png auditor/auditor69.png auditor/auditor70.png auditor/auditor71.png auditor/auditor72.png auditor/auditor73.png auditor/auditor74.png auditor/auditor75.png auditor/auditor76.png auditor/auditor77.png auditor/auditor78.png auditor/auditor79.png auditor/auditor80.png auditor/auditor81.png auditor/auditor82.png auditor/auditor83.png auditor/auditor84.png auditor/auditor85.png auditor/auditor86.png auditor/auditor87.png auditor/auditor88.png auditor/auditor89.png auditor/auditor90.png auditor/auditor91.png auditor/auditor92.png auditor/auditor93.png auditor/auditor94.png auditor/auditor95.png auditor/auditor96.png auditor/auditor97.png auditor/auditor98.png auditor/auditor99.png auditor/control.txt \
cfxcaptcha/cvxcaptcha00.jpeg cfxcaptcha/cvxcaptcha01.jpeg cfxcaptcha/cvxcaptcha02.jpeg cfxcaptcha/cvxcaptcha03.jpeg cfxcaptcha/cvxcaptcha04.jpeg cfxcaptcha/cvxcaptcha05.jpeg cfxcaptcha/cvxcaptcha06.jpeg cfxcaptcha/cvxcaptcha07.jpeg cfxcaptcha/cvxcaptcha08.jpeg cfxcaptcha/cvxcaptcha09.jpeg cfxcaptcha/cvxcaptcha10.jpeg cfxcaptcha/cvxcaptcha11.jpeg cfxcaptcha/cvxcaptcha12.jpeg cfxcaptcha/cvxcaptcha13.jpeg cfxcaptcha/cvxcaptcha14.jpeg cfxcaptcha/cvxcaptcha15.jpeg cfxcaptcha/cvxcaptcha16.jpeg cfxcaptcha/cvxcaptcha17.jpeg cfxcaptcha/cvxcaptcha18.jpeg cfxcaptcha/cvxcaptcha19.jpeg cfxcaptcha/cvxcaptcha20.jpeg cfxcaptcha/cvxcaptcha21.jpeg cfxcaptcha/cvxcaptcha22.jpeg cfxcaptcha/cvxcaptcha23.jpeg cfxcaptcha/cvxcaptcha24.jpeg cfxcaptcha/cvxcaptcha25.jpeg cfxcaptcha/cvxcaptcha26.jpeg cfxcaptcha/cvxcaptcha27.jpeg cfxcaptcha/cvxcaptcha28.jpeg cfxcaptcha/cvxcaptcha29.jpeg cfxcaptcha/cvxcaptcha30.jpeg cfxcaptcha/cvxcaptcha31.jpeg cfxcaptcha/cvxcaptcha32.jpeg cfxcaptcha/cvxcaptcha33.jpeg cfxcaptcha/cvxcaptcha34.jpeg cfxcaptcha/cvxcaptcha35.jpeg cfxcaptcha/cvxcaptcha36.jpeg cfxcaptcha/cvxcaptcha37.jpeg cfxcaptcha/cvxcaptcha38.jpeg cfxcaptcha/cvxcaptcha39.jpeg cfxcaptcha/cvxcaptcha40.jpeg cfxcaptcha/cvxcaptcha41.jpeg cfxcaptcha/cvxcaptcha42.jpeg cfxcaptcha/cvxcaptcha43.jpeg cfxcaptcha/cvxcaptcha44.jpeg cfxcaptcha/cvxcaptcha45.jpeg cfxcaptcha/cvxcaptcha46.jpeg cfxcaptcha/cvxcaptcha47.jpeg cfxcaptcha/cvxcaptcha48.jpeg cfxcaptcha/cvxcaptcha49.jpeg cfxcaptcha/cvxcaptcha50.jpeg cfxcaptcha/cvxcaptcha51.jpeg cfxcaptcha/cvxcaptcha52.jpeg cfxcaptcha/cvxcaptcha53.jpeg cfxcaptcha/cvxcaptcha54.jpeg cfxcaptcha/cvxcaptcha55.jpeg cfxcaptcha/cvxcaptcha56.jpeg cfxcaptcha/cvxcaptcha57.jpeg cfxcaptcha/cvxcaptcha58.jpeg cfxcaptcha/cvxcaptcha59.jpeg cfxcaptcha/cvxcaptcha60.jpeg cfxcaptcha/cvxcaptcha61.jpeg cfxcaptcha/cvxcaptcha62.jpeg cfxcaptcha/cvxcaptcha63.jpeg cfxcaptcha/cvxcaptcha64.jpeg cfxcaptcha/cvxcaptcha65.jpeg cfxcaptcha/cvxcaptcha66.jpeg cfxcaptcha/cvxcaptcha67.jpeg cfxcaptcha/cvxcaptcha68.jpeg cfxcaptcha/cvxcaptcha69.jpeg cfxcaptcha/cvxcaptcha70.jpeg cfxcaptcha/cvxcaptcha71.jpeg cfxcaptcha/cvxcaptcha72.jpeg cfxcaptcha/cvxcaptcha73.jpeg cfxcaptcha/cvxcaptcha74.jpeg cfxcaptcha/cvxcaptcha75.jpeg cfxcaptcha/cvxcaptcha76.jpeg cfxcaptcha/cvxcaptcha77.jpeg cfxcaptcha/cvxcaptcha78.jpeg cfxcaptcha/cvxcaptcha79.jpeg cfxcaptcha/cvxcaptcha80.jpeg cfxcaptcha/cvxcaptcha81.jpeg cfxcaptcha/cvxcaptcha82.jpeg cfxcaptcha/cvxcaptcha83.jpeg cfxcaptcha/cvxcaptcha84.jpeg cfxcaptcha/cvxcaptcha85.jpeg cfxcaptcha/cvxcaptcha86.jpeg cfxcaptcha/cvxcaptcha87.jpeg cfxcaptcha/cvxcaptcha88.jpeg cfxcaptcha/cvxcaptcha89.jpeg cfxcaptcha/cvxcaptcha90.jpeg cfxcaptcha/cvxcaptcha91.jpeg cfxcaptcha/cvxcaptcha92.jpeg cfxcaptcha/cvxcaptcha93.jpeg cfxcaptcha/cvxcaptcha94.jpeg cfxcaptcha/cvxcaptcha95.jpeg cfxcaptcha/cvxcaptcha96.jpeg cfxcaptcha/cvxcaptcha97.jpeg cfxcaptcha/cvxcaptcha98.jpeg cfxcaptcha/cvxcaptcha99.jpeg \
linuxfr/linuxfr00.png linuxfr/linuxfr01.png linuxfr/linuxfr02.png linuxfr/linuxfr03.png linuxfr/linuxfr04.png linuxfr/linuxfr05.png linuxfr/linuxfr06.png linuxfr/linuxfr07.png linuxfr/linuxfr08.png linuxfr/linuxfr09.png linuxfr/linuxfr10.png linuxfr/linuxfr11.png linuxfr/linuxfr12.png linuxfr/linuxfr13.png linuxfr/linuxfr14.png linuxfr/linuxfr15.png linuxfr/linuxfr16.png linuxfr/linuxfr17.png linuxfr/linuxfr18.png linuxfr/linuxfr19.png linuxfr/linuxfr20.png linuxfr/linuxfr21.png linuxfr/linuxfr22.png linuxfr/linuxfr23.png linuxfr/linuxfr24.png linuxfr/linuxfr25.png linuxfr/linuxfr26.png linuxfr/linuxfr27.png linuxfr/linuxfr28.png linuxfr/linuxfr29.png linuxfr/linuxfr30.png linuxfr/linuxfr31.png linuxfr/linuxfr32.png linuxfr/linuxfr33.png linuxfr/linuxfr34.png linuxfr/linuxfr35.png linuxfr/linuxfr36.png linuxfr/linuxfr37.png linuxfr/linuxfr38.png linuxfr/linuxfr39.png linuxfr/linuxfr40.png linuxfr/linuxfr41.png linuxfr/linuxfr42.png linuxfr/linuxfr43.png linuxfr/linuxfr44.png linuxfr/linuxfr45.png linuxfr/linuxfr46.png linuxfr/linuxfr47.png linuxfr/linuxfr48.png linuxfr/linuxfr49.png linuxfr/linuxfr50.png linuxfr/linuxfr51.png linuxfr/linuxfr52.png linuxfr/linuxfr53.png linuxfr/linuxfr54.png linuxfr/linuxfr55.png linuxfr/linuxfr56.png linuxfr/linuxfr57.png linuxfr/linuxfr58.png linuxfr/linuxfr59.png linuxfr/linuxfr60.png linuxfr/linuxfr61.png linuxfr/linuxfr62.png linuxfr/linuxfr63.png linuxfr/linuxfr64.png linuxfr/linuxfr65.png linuxfr/linuxfr66.png linuxfr/linuxfr67.png linuxfr/linuxfr68.png linuxfr/linuxfr69.png linuxfr/linuxfr70.png linuxfr/linuxfr71.png linuxfr/linuxfr72.png linuxfr/linuxfr73.png linuxfr/linuxfr74.png linuxfr/linuxfr75.png linuxfr/linuxfr76.png linuxfr/linuxfr77.png linuxfr/linuxfr78.png linuxfr/linuxfr79.png linuxfr/linuxfr80.png linuxfr/linuxfr81.png linuxfr/linuxfr82.png linuxfr/linuxfr83.png linuxfr/linuxfr84.png linuxfr/linuxfr85.png linuxfr/linuxfr86.png linuxfr/linuxfr87.png linuxfr/linuxfr88.png linuxfr/linuxfr89.png linuxfr/linuxfr90.png linuxfr/linuxfr91.png linuxfr/linuxfr92.png linuxfr/linuxfr93.png linuxfr/linuxfr94.png linuxfr/linuxfr95.png linuxfr/linuxfr96.png linuxfr/linuxfr97.png linuxfr/linuxfr98.png linuxfr/linuxfr99.png \
linuxfr/linuxfr00.png linuxfr/linuxfr01.png linuxfr/linuxfr02.png linuxfr/linuxfr03.png linuxfr/linuxfr04.png linuxfr/linuxfr05.png linuxfr/linuxfr06.png linuxfr/linuxfr07.png linuxfr/linuxfr08.png linuxfr/linuxfr09.png linuxfr/linuxfr10.png linuxfr/linuxfr11.png linuxfr/linuxfr12.png linuxfr/linuxfr13.png linuxfr/linuxfr14.png linuxfr/linuxfr15.png linuxfr/linuxfr16.png linuxfr/linuxfr17.png linuxfr/linuxfr18.png linuxfr/linuxfr19.png linuxfr/linuxfr20.png linuxfr/linuxfr21.png linuxfr/linuxfr22.png linuxfr/linuxfr23.png linuxfr/linuxfr24.png linuxfr/linuxfr25.png linuxfr/linuxfr26.png linuxfr/linuxfr27.png linuxfr/linuxfr28.png linuxfr/linuxfr29.png linuxfr/linuxfr30.png linuxfr/linuxfr31.png linuxfr/linuxfr32.png linuxfr/linuxfr33.png linuxfr/linuxfr34.png linuxfr/linuxfr35.png linuxfr/linuxfr36.png linuxfr/linuxfr37.png linuxfr/linuxfr38.png linuxfr/linuxfr39.png linuxfr/linuxfr40.png linuxfr/linuxfr41.png linuxfr/linuxfr42.png linuxfr/linuxfr43.png linuxfr/linuxfr44.png linuxfr/linuxfr45.png linuxfr/linuxfr46.png linuxfr/linuxfr47.png linuxfr/linuxfr48.png linuxfr/linuxfr49.png linuxfr/linuxfr50.png linuxfr/linuxfr51.png linuxfr/linuxfr52.png linuxfr/linuxfr53.png linuxfr/linuxfr54.png linuxfr/linuxfr55.png linuxfr/linuxfr56.png linuxfr/linuxfr57.png linuxfr/linuxfr58.png linuxfr/linuxfr59.png linuxfr/linuxfr60.png linuxfr/linuxfr61.png linuxfr/linuxfr62.png linuxfr/linuxfr63.png linuxfr/linuxfr64.png linuxfr/linuxfr65.png linuxfr/linuxfr66.png linuxfr/linuxfr67.png linuxfr/linuxfr68.png linuxfr/linuxfr69.png linuxfr/linuxfr70.png linuxfr/linuxfr71.png linuxfr/linuxfr72.png linuxfr/linuxfr73.png linuxfr/linuxfr74.png linuxfr/linuxfr75.png linuxfr/linuxfr76.png linuxfr/linuxfr77.png linuxfr/linuxfr78.png linuxfr/linuxfr79.png linuxfr/linuxfr80.png linuxfr/linuxfr81.png linuxfr/linuxfr82.png linuxfr/linuxfr83.png linuxfr/linuxfr84.png linuxfr/linuxfr85.png linuxfr/linuxfr86.png linuxfr/linuxfr87.png linuxfr/linuxfr88.png linuxfr/linuxfr89.png linuxfr/linuxfr90.png linuxfr/linuxfr91.png linuxfr/linuxfr92.png linuxfr/linuxfr93.png linuxfr/linuxfr94.png linuxfr/linuxfr95.png linuxfr/linuxfr96.png linuxfr/linuxfr97.png linuxfr/linuxfr98.png linuxfr/linuxfr99.png linuxfr/control.txt \
livejournal/livejournal00.png livejournal/livejournal01.png livejournal/livejournal02.png livejournal/livejournal03.png livejournal/livejournal04.png livejournal/livejournal05.png livejournal/livejournal06.png livejournal/livejournal07.png livejournal/livejournal08.png livejournal/livejournal09.png livejournal/livejournal10.png livejournal/livejournal11.png livejournal/livejournal12.png livejournal/livejournal13.png livejournal/livejournal14.png livejournal/livejournal15.png livejournal/livejournal16.png livejournal/livejournal17.png livejournal/livejournal18.png livejournal/livejournal19.png livejournal/livejournal20.png livejournal/livejournal21.png livejournal/livejournal22.png livejournal/livejournal23.png livejournal/livejournal24.png livejournal/livejournal25.png livejournal/livejournal26.png livejournal/livejournal27.png livejournal/livejournal28.png livejournal/livejournal29.png livejournal/livejournal30.png livejournal/livejournal31.png livejournal/livejournal32.png livejournal/livejournal33.png livejournal/livejournal34.png livejournal/livejournal35.png livejournal/livejournal36.png livejournal/livejournal37.png livejournal/livejournal38.png livejournal/livejournal39.png livejournal/livejournal40.png livejournal/livejournal41.png livejournal/livejournal42.png livejournal/livejournal43.png livejournal/livejournal44.png livejournal/livejournal45.png livejournal/livejournal46.png livejournal/livejournal47.png livejournal/livejournal48.png livejournal/livejournal49.png livejournal/livejournal50.png livejournal/livejournal51.png livejournal/livejournal52.png livejournal/livejournal53.png livejournal/livejournal54.png livejournal/livejournal55.png livejournal/livejournal56.png livejournal/livejournal57.png livejournal/livejournal58.png livejournal/livejournal59.png livejournal/livejournal60.png livejournal/livejournal61.png livejournal/livejournal62.png livejournal/livejournal63.png livejournal/livejournal64.png livejournal/livejournal65.png livejournal/livejournal66.png livejournal/livejournal67.png livejournal/livejournal68.png livejournal/livejournal69.png livejournal/livejournal70.png livejournal/livejournal71.png livejournal/livejournal72.png livejournal/livejournal73.png livejournal/livejournal74.png livejournal/livejournal75.png livejournal/livejournal76.png livejournal/livejournal77.png livejournal/livejournal78.png livejournal/livejournal79.png livejournal/livejournal80.png livejournal/livejournal81.png livejournal/livejournal82.png livejournal/livejournal83.png livejournal/livejournal84.png livejournal/livejournal85.png livejournal/livejournal86.png livejournal/livejournal87.png livejournal/livejournal88.png livejournal/livejournal89.png livejournal/livejournal90.png livejournal/livejournal91.png livejournal/livejournal92.png livejournal/livejournal93.png livejournal/livejournal94.png livejournal/livejournal95.png livejournal/livejournal96.png livejournal/livejournal97.png livejournal/livejournal98.png livejournal/livejournal99.png \
passport/passport00.jpeg passport/passport01.jpeg passport/passport02.jpeg passport/passport03.jpeg passport/passport04.jpeg passport/passport05.jpeg passport/passport06.jpeg passport/passport07.jpeg passport/passport08.jpeg passport/passport09.jpeg passport/passport10.jpeg passport/passport11.jpeg passport/passport12.jpeg passport/passport13.jpeg passport/passport14.jpeg passport/passport15.jpeg passport/passport16.jpeg passport/passport17.jpeg passport/passport18.jpeg passport/passport19.jpeg passport/passport20.jpeg passport/passport21.jpeg passport/passport22.jpeg passport/passport23.jpeg passport/passport24.jpeg passport/passport25.jpeg passport/passport26.jpeg passport/passport27.jpeg passport/passport28.jpeg passport/passport29.jpeg passport/passport30.jpeg passport/passport31.jpeg passport/passport32.jpeg passport/passport33.jpeg passport/passport34.jpeg passport/passport35.jpeg passport/passport36.jpeg passport/passport37.jpeg passport/passport38.jpeg passport/passport39.jpeg passport/passport40.jpeg passport/passport41.jpeg passport/passport42.jpeg passport/passport43.jpeg passport/passport44.jpeg passport/passport45.jpeg passport/passport46.jpeg passport/passport47.jpeg passport/passport48.jpeg passport/passport49.jpeg passport/passport50.jpeg passport/passport51.jpeg passport/passport52.jpeg passport/passport53.jpeg passport/passport54.jpeg passport/passport55.jpeg passport/passport56.jpeg passport/passport57.jpeg passport/passport58.jpeg passport/passport59.jpeg passport/passport60.jpeg passport/passport61.jpeg passport/passport62.jpeg passport/passport63.jpeg passport/passport64.jpeg passport/passport65.jpeg passport/passport66.jpeg passport/passport67.jpeg passport/passport68.jpeg passport/passport69.jpeg passport/passport70.jpeg passport/passport71.jpeg passport/passport72.jpeg passport/passport73.jpeg passport/passport74.jpeg passport/passport75.jpeg passport/passport76.jpeg passport/passport77.jpeg passport/passport78.jpeg passport/passport79.jpeg passport/passport80.jpeg passport/passport81.jpeg passport/passport82.jpeg passport/passport83.jpeg passport/passport84.jpeg passport/passport85.jpeg passport/passport86.jpeg passport/passport87.jpeg passport/passport88.jpeg passport/passport89.jpeg passport/passport90.jpeg passport/passport91.jpeg passport/passport92.jpeg passport/passport93.jpeg passport/passport94.jpeg passport/passport95.jpeg passport/passport96.jpeg passport/passport97.jpeg passport/passport98.jpeg passport/passport99.jpeg \
phpbb/phpbb00.png phpbb/phpbb01.png phpbb/phpbb02.png phpbb/phpbb03.png phpbb/phpbb04.png phpbb/phpbb05.png phpbb/phpbb06.png phpbb/phpbb07.png phpbb/phpbb08.png phpbb/phpbb09.png phpbb/phpbb10.png phpbb/phpbb11.png phpbb/phpbb12.png phpbb/phpbb13.png phpbb/phpbb14.png phpbb/phpbb15.png phpbb/phpbb16.png phpbb/phpbb17.png phpbb/phpbb18.png phpbb/phpbb19.png phpbb/phpbb20.png phpbb/phpbb21.png phpbb/phpbb22.png phpbb/phpbb23.png phpbb/phpbb24.png phpbb/phpbb25.png phpbb/phpbb26.png phpbb/phpbb27.png phpbb/phpbb28.png phpbb/phpbb29.png phpbb/phpbb30.png phpbb/phpbb31.png phpbb/phpbb32.png phpbb/phpbb33.png phpbb/phpbb34.png phpbb/phpbb35.png phpbb/phpbb36.png phpbb/phpbb37.png phpbb/phpbb38.png phpbb/phpbb39.png phpbb/phpbb40.png phpbb/phpbb41.png phpbb/phpbb42.png phpbb/phpbb43.png phpbb/phpbb44.png phpbb/phpbb45.png phpbb/phpbb46.png phpbb/phpbb47.png phpbb/phpbb48.png phpbb/phpbb49.png phpbb/phpbb50.png phpbb/phpbb51.png phpbb/phpbb52.png phpbb/phpbb53.png phpbb/phpbb54.png phpbb/phpbb55.png phpbb/phpbb56.png phpbb/phpbb57.png phpbb/phpbb58.png phpbb/phpbb59.png phpbb/phpbb60.png phpbb/phpbb61.png phpbb/phpbb62.png phpbb/phpbb63.png phpbb/phpbb64.png phpbb/phpbb65.png phpbb/phpbb66.png phpbb/phpbb67.png phpbb/phpbb68.png phpbb/phpbb69.png phpbb/phpbb70.png phpbb/phpbb71.png phpbb/phpbb72.png phpbb/phpbb73.png phpbb/phpbb74.png phpbb/phpbb75.png phpbb/phpbb76.png phpbb/phpbb77.png phpbb/phpbb78.png phpbb/phpbb79.png phpbb/phpbb80.png phpbb/phpbb81.png phpbb/phpbb82.png phpbb/phpbb83.png phpbb/phpbb84.png phpbb/phpbb85.png phpbb/phpbb86.png phpbb/phpbb87.png phpbb/phpbb88.png phpbb/phpbb89.png phpbb/phpbb90.png phpbb/phpbb91.png phpbb/phpbb92.png phpbb/phpbb93.png phpbb/phpbb94.png phpbb/phpbb95.png phpbb/phpbb96.png phpbb/phpbb97.png phpbb/phpbb98.png phpbb/phpbb99.png phpbb/control.txt \


+ 100
- 0
testsuite/linuxfr/control.txt Näytä tiedosto

@@ -0,0 +1,100 @@
tEHhOvK
egcXvmd
PjFvqau
KUhuaDs
DmwLiUH
DuLcaHf
CSaNFLl
vGwzWNE
zoCucuh
WjikOBC
BbEOaSs
wSeAkuu
hjbHvin
xOmBzlq
McCUroO
TFdmmiK
gkHaGEK
XzfqbuS
BFlOzwq
NFDBmfm
qzzDilT
ZdusZnh
PmhzZPL
AOeCsPD
btZGKnl
wpfVpai
rtDPugJ
PvspMJO
PKFrJTX
EVbKlUM
TOXOzuY
pFbSBTD
ZkFVWhk
CBlSCkh
MpjaaDq
vouZvvk
GOucaYn
phPtpdq
VmGnfZC
JSEVPZH
BtqpOUC
ZlLWZWu
DXYndfL
fqqhGYL
GEnJVJH
xfHJsBV
XuOuFjt
HLqjlza
MhwutaO
JugmBlc
FcmLZFu
JuaocqJ
VvFfSdT
muAASFU
jmvPflE
lnusBSe
uVTTaOl
BiNlSNW
lcqzuPc
dnZNenC
EXWwPES
izCHLXu
eOrxuva
OWXHAmm
pYlDnDf
FPqWdcf
EAaVzLD
sOvdOEL
WExmjHL
xODiwFF
ANSnOpb
kcBgrjc
HHmCNFx
tUFqNlc
LdCzCOw
FjEElxG
FCAhWZp
ZSEokTi
qqZZGdH
almMBzB
DdMhhwK
uobBZWp
YCxsUHr
oraVSFP
xuzzhvh
Yifbkzq
ebttbkj
EzJjsHE
dEOnsXL
wcjSPea
jMGDfYO
CgGkduT
JBJMMpY
oPvDKkz
uAuKTOS
XjPrioj
unuJumu
NiVdvTh
avhDElE
ZoNuvOO

Ladataan…
Peruuta
Tallenna