SRL Archive - General

crack this


ben600006

2008-07-27 11:20:36

would scar be able to crack an image like the attatched pics and write it as a number ?
(theres 2 examples in zip file to show how it changes each time)

i have tried several times and cant do it lol


EDIT: read post 5 for the screen shots

MylesMadness

2008-07-27 11:39:19

do the dots move? like is the dots in a nine the same place each time?

Laur€ns

2008-07-27 11:51:07

I would say FindBitmapDeformed.. As long as they don't move off course.

mixster

2008-07-27 11:55:51

Can't see very well, but it looks like there is a slight difference in colour, otherwise making deformed bitmaps of all numbers and then looping through all of them and seeing which matches the best and assume it's that number.

ben600006

2008-07-27 15:14:32

all the dots move, the numbers rotate and change size aswel

ive taken another 2 screen shots to show you exactly what i mean

Freddy1990

2008-07-28 16:41:36

To write a captcha solver for one like this it's probably best to render an image of the object or in this case, letter, you need to identify…
I wrote an example to demonstrate what I mean:
Once you have an image like that it's easier to analyze for 2 reasons.
1. You have less or no distortion from random pixels floating around.
2. You have a visible object rather than some pixels to work with.

ben600006

2008-07-29 05:11:40

okay, well, i don't have a clue how to do that ?

are you saying change the pic (in paint for example) then use it to find the first image ?

Waddo

2008-07-29 06:44:10

Freddy i couldn't eithen do that, is that the captcha solver from Scar 4?

Teach us how to make =]

Freddy1990

2008-07-29 19:09:06

SCAR 4 won't have a captcha solver and… That's just a tiny example program I wrote up after I read this post… it determines the number's pixels by finding the highly populated areas in the image, that's what it does from pic 1 to pic 2, then it refines that again, marking the remainder in red. The process from the second to third pic basically connects points that are close to each other along the x or y axis to fill up the area…

ben600006

2008-07-30 04:51:09

okay, wel, could you show me how to create a working script to be able to do this ?

Freddy1990

2008-07-30 07:08:39

From: ben600006
okay, wel, could you show me how to create a working script to be able to do this ?


I could, but that would take more time than I'm willing to spend on it as I need the time to finish my open projects :)
You'll have to fiddle with it yourself or find someone else who can help, srr

ben600006

2008-07-30 07:23:40

ok, can n e 1 else do what freddy1990 has explained? or does n e 1 have any kind of idea what he is talking about ? lol

mixster

2008-07-30 07:31:03

I'm guessing you do it via getting a loosely done FindColorsTolerance then procede by adding all points within x pixels radius of a spot that has 50%+ white pixels into a second TPA and using that to draw the 2nd image and then do the same again to filter it, am I right? The only problem then would be getting it to work efficiently without using plugins as that's a lot of places to check

Freddy1990

2008-07-30 09:49:31

From: mixster
I'm guessing you do it via getting a loosely done FindColorsTolerance then procede by adding all points within x pixels radius of a spot that has 50%+ white pixels into a second TPA and using that to draw the 2nd image and then do the same again to filter it, am I right? The only problem then would be getting it to work efficiently without using plugins as that's a lot of places to check


Not exactly, I didn't use any findcolor functions, this is all scrap image analyzing, but you get the idea, and the 50% isn't exactly right either, but it could work, try it…

ShowerThoughts

2008-07-30 09:58:08

Freddy1990 show us the code?

Waddo

2008-07-30 10:04:11

yer lol just post the code so we can start understanding =p

Freddy1990

2008-07-30 11:29:33

You know I run a closed source policy ;)

I'll be releasing a project under GPL on the 4th of August though ;)

SKy Scripter

2008-07-30 13:15:59

With those letters being that clear.. this project wouldn't be hard at all.
Just take a long time. :)

bullzeye95

2008-07-30 14:01:44

Not too long if you know what you're doing.

Freddy1990

2008-07-30 14:22:48

Simple matter of shape recognition

bullzeye95

2008-07-30 16:07:05

I wrote a simple example in SCAR to show you how I would do it. It's slow and sloppy and has a bit of trouble singling out the second bitmap, but it will give you an idea of how to start.
program New;
const
WhichBMP = 1; //which bitmap to test: 1 or 2
var
P: TPointArray;
ATPA: T2DPointArray;
I, T, Time, C, BMP, w, h, x, y: Integer;
B: Array of Array of Boolean;
begin
case WhichBMP of
1: BMP := BitmapFromString(363, 223, 'beNrtnemNXDkMhDuTDsWhOBSH4' +
'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' +
'Rpl7CV0zIIJ63G2v4D5fzDcQ==');
2: BMP := BitmapFromString(365, 223, 'beNrtneuNHLkOhSeTCcWhOBSH4' +
'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');
end;
SetTargetBitmap(BMP);
GetBitmapSize(BMP, w, h);
DisplayDebugImgWindow(w, h);
SafeDrawBitmap(BMP, GetDebugCanvas, 0, 0);
Time:= GetSystemTime;
for T:= 1 to 7 do
begin
SetLength(B, 0);
FindColorsTolerance(P, clWhite, 0, 0, w, h, 0);
SetLength(B, w);
for I:= 0 to w - 1 do
SetLength(B[I], h);
for I:= 0 to High(P) do
B[P[I].x][P[I].y]:= True;
for I:= 0 to High(P) do
begin
C:= 0;
for x:= -4 to 4 do
for y:= -4 to 4 do
if(B[min(max(P[I].x + x, 0), w - 1)][min(max(P[I].y + y, 0), h - 1)])then
inc(C);
if(C < 5)then
begin
FastSetPixel(BMP, P[I].x, P[I].y, 0);
Swap(P[I], P[High(P)]);
SetLength(P, High(P));
end;
end;
// wait(2000);
SafeDrawBitmap(BMP, GetDebugCanvas, 0, 0);
end;
for x:= 0 to w - 1 do
for y:= h - 4 to h - 1 do
FastSetPixel(BMP, x, y, 0);
for T:= 1 to 2 do
begin
FindColorsTolerance(P, clWhite, 0, 0, w, h, 0);
SetLength(B, 0);
SetLength(B, w);
for I:= 0 to w - 1 do
SetLength(B[I], h);
for I:= 0 to High(P) do
B[P[I].x][P[I].y]:= True;
for I:= 0 to High(P) do
for x:= -5 to 5 do
for y:= -5 to 5 do
if(B[P[I].x + x][P[I].y + y])then
FastSetPixel(BMP, P[I].x + (x div 2), P[I].y + (y div 2), clWhite);
SafeDrawBitmap(BMP, GetDebugCanvas, 0, 0);
end;
FindColorsTolerance(P, clWhite, 0, 0, w, h, 0);
ATPA:= SplitTPAEx(P, 1, 1);
for I:= 0 to High(ATPA) do
if(Length(ATPA[I]) < 150)then
for x:= 0 to High(ATPA[I]) do
FastSetPixel(BMP, ATPA[I][X].x, ATPA[I][X].y, 0);
SafeDrawBitmap(BMP, GetDebugCanvas, 0, 0);
writeln(inttostr(GetSystemTime - Time));
ResetDC;
FreeBitmap(BMP);
end.

Freddy1990

2008-07-30 16:36:34

Nice work Bullzeye, that's a lot better than mine :)

Waddo

2008-07-30 19:37:55

Freddy I didnt relise you would be closed source on that kind of thing
atleast we know your a man of your words (i dare you to release a hello world program source =p)

bullzeye95

2008-07-30 19:40:13

From: Waddo
Freddy I didnt relise you would be closed source on that kind of thing
atleast we know your a man of your words (i dare you to release a hello world program source =p)


He is not totally closed source. He's released the source of a few things.

Waddo

2008-07-30 19:57:04

bullzeye that is amazing like really amazing =p
now all he need to do is make dtms and use find dtmrotated

R0b0t1

2008-07-31 01:22:32

No, its more like he's released 'snippets' of a few things.


Its just to inflate his ego by giving us a tantalizing glimpse of whatever the problems solution is, and then everyone begs him for the source of whatever his code does. He would have obviously helped whoever posted this thread (and all of us, if we wanted to know) if he had just posted his projected in a .zip. Even if it had anything he didn't want us to see, he could have removed that part (most probably large blocks of code just to highlight and delete) or just told us it used stuff he didn't want us to see.

Freddy1990

2008-07-31 05:10:25

From: R0b0t1
No, its more like he's released 'snippets' of a few things.


Its just to inflate his ego by giving us a tantalizing glimpse of whatever the problems solution is, and then everyone begs him for the source of whatever his code does. He would have obviously helped whoever posted this thread (and all of us, if we wanted to know) if he had just posted his projected in a .zip. Even if it had anything he didn't want us to see, he could have removed that part (most probably large blocks of code just to highlight and delete) or just told us it used stuff he didn't want us to see.


I've released functions, and whole projects…

You want to know why I don't post it? I closed without saving it, that's why my explanation of how it works isn't quite accurate. It looped trough all the pixels, then searching in a radius of like 5 pixels around each pixel for another one, if another was found it would copy the pixel it was searching from and so on… I don't remember the exact 6 steps that were involved in the process…

Now, it seems to me that you try to inflate your ego by trying to make me look bad. And unlike you I came up with an idea here that helps.

And finally, I've spent the last week coding hours and hours to start and finish a new project, licensed under GPL, so don't bs me about me being anti-os.

ben600006

2008-07-31 11:44:51

ok, wel…i dont get a word of n e of that, freddy1990 if u get time can u please explain to me in full detail how it can be done, if not then im sure theres gotta be sum1 else that can do it.

Freddy1990

2008-08-03 10:43:22

From: ben600006
ok, wel…i dont get a word of n e of that, freddy1990 if u get time can u please explain to me in full detail how it can be done, if not then im sure theres gotta be sum1 else that can do it.


First you lkoop trough the image's pixels, on every white pixel you check if there's other white pixels in a box of lets say x+-4 and y+-4, if there are for example more than 2 other white pixels in that area, then you draw the original pixel to a new empty image, this loop just continues until it's done with every pixel.

This will have formed an image without a lot of pixels that area far appart from eachother…

you can repeat this process 1 or 2 times afterwards to remove even more unwanted pixels.

Once that's done you have a new image wit a sfew small clusters of pixels and the the number, here you repeat the same process again, but you slightly increase the search radius around the pixels and the number of pixels that have to be found.

After that you should have a fairly clean image, then you just connect pixels over the x-axis and over the y-axis that are close to eachother to form a fuller image, you can also repeat that a couple of times…

That should theoretically give you a fairly clean image to start with…


Now, this is probably different from how I did it in my example, but I forgot how exactly I did that, but it's very similar…

bullzeye95

2008-08-03 15:04:11

If you give me the link to this captcha, I can really try to crack it.

ben600006

2008-08-11 18:01:26

http://www.kingsofchaos.com/ads/recruit.img?19eaf4&uniqid=3kv23646

every time u refresh the page, the image changes

tell me if u want the link for a different number :)

Freddy1990

2008-08-11 18:23:39

From: ben600006
http://www.kingsofchaos.com/ads/recruit.img?19eaf4&uniqid=3kv23646

every time u refresh the page, the image changes

tell me if u want the link for a different number :)


I can hardly make it out myself…

Hugolord

2008-08-11 18:37:42

It's SEGSIO.

mixster

2008-08-11 18:48:46

Actually, it's SESSID - try refreshing it a few times and you'll find a clear one

R0b0t1

2008-08-12 03:49:50

No, Freddy, I wanted you to post how you did it. And it worked :D

ben600006

2008-08-14 09:37:28

so, can n e 1 post a working example for me to try so i can develop it into a fully working script ?

Freddy1990

2008-08-14 15:20:50

From: R0b0t1
No, Freddy, I wanted you to post how you did it. And it worked :D


Ever considered just asking?

R0b0t1

2008-08-14 16:33:41

Asking is not my style… :cool:

Freddy1990

2008-08-15 04:23:11

From: R0b0t1
Asking is not my style… :cool:


I'll keep that in mind.