Page 1 of 2

The Abyss, антимакрос

Posted: 2007-05-02 18:19:03
by korzh
на абисе стоит антимакрос система, хотелось бы услышать совет как её обойти. раотает она так:
как только крафтовый\добывающий скилл>90%, система раз в 20мин-час посылает гамп на котором в рандомных координатах рисуется цифра (не текстовая, а состоящая из нескольских ) и пишет

Code: Select all

    0] Please choose this number:
    1] 8
    2] 2
    3] 9

в случае неверного ответа, скрипт встает, и так же скрипт не работает до тех пор пока не нажмешь правильную цифру. прелагаемые цифры тоже всега разные по цвету. ну и собствено говоря, вопрос: как узнать какую цифру надо нажать?

Re: The Abyss, антимакрос

Posted: 2007-05-02 19:37:41
by Nmy
korzh wrote:на абисе стоит антимакрос система, хотелось бы услышать совет как её обойти. раотает она так:
как только крафтовый\добывающий скилл>90%, система раз в 20мин-час посылает гамп на котором в рандомных координатах рисуется цифра (не текстовая, а состоящая из нескольских ) и пишет

Code: Select all

    0] Please choose this number:
    1] 8
    2] 2
    3] 9

в случае неверного ответа, скрипт встает, и так же скрипт не работает до тех пор пока не нажмешь правильную цифру. прелагаемые цифры тоже всега разные по цвету. ну и собствено говоря, вопрос: как узнать какую цифру надо нажать?

где скрины и полный инфогамп? думаю что тут уже некак, но...

Posted: 2007-05-02 21:21:35
by korzh
скрины http://slil.ru/24322123
инфогамп вот:

Code: Select all

_____infogump_______
serial   0x017f7b55
gumpid   0x3b25f8da
X   30
Y   0
587   packet size
23   reply packet size
Buttons: ________
Checks&Radios: __
Entryes: ________
All commands: ____
    1] esizepic 100 100 83 320 20
    2] esizepic 108 110 3000 306 18
    3] umppic 120 120 502
    4] umppic 352 129 236
    5] umppic 362 123 236
    6] umppic 372 120 236
    7] umppic 358 139 236
    8] umppic 362 148 236
    9] umppic 371 141 236
   10] umppic 380 138 236
   11] umppic 385 146 236
   12] umppic 374 167 236
   13] umppic 382 162 236
   14] umppic 393 156 236
   15] ext 170 135 0
   16] utton 120 185 2152 2153 1 0
   17] ext 160 190 98
   18] utton 120 220 2152 2153 1 0
   19] ext 160 225 89
   20] utton 120 255 2152 2153 1 0
   21] ext 160 260 95
Text: ____________
    0] Please choose this number:
    1] 9
    2] 8
    3] 5
Reply: ___________
 [0003] primary reply
 Checks&Radios (0)
 Entryes (0)

Posted: 2007-05-02 21:49:35
by I'm
Fallout и xD занимались решением этой проблемы не знаю правд чем закончилось.
Попробуй стукнуть им.

Posted: 2007-05-02 22:10:12
by korzh
ммм.. а найти их как?

Posted: 2007-05-02 23:04:42
by Nmy
можно мне пм кинуть
логин
акк
пароль
скрипт

смогу- посмотрю...

Posted: 2007-05-02 23:16:35
by Destruction
Ну впринципе, решается обычным способом..

Из самого простого могу посоветовать нажимать разные кнопы до тех пор, пока не угадаешь нужную.

Из того, что посложнее - анализировать данные инфогампа, чтобы определить цифру.

Вообще - описание проблемы маловато. Подробнее давай, подробнее, скрипнов побольше 8)

Вообще - стукни в ICQ: 119060, тока не флуди, а сразу по-делу пиши. Посмотрим, что можно сделать.

Posted: 2007-05-03 01:25:00
by Destruction
Собственно зашёл, посмотрел - симпатичная капча :)

Итак, что я могу сказать:
1. Изображение состоит из 11 кругляшков, каждое.
2. Цифры рисуются вроде одинаково, но с поворотом не более 45 градусов, замерять не стал.
3. Легко можно надёргать этих цифер, сервер даже не обидется, скрипт прилагается.

Инструкция к скрипту:
1. Выдать чару кирку на лапу (на правую)..
2. Injection > Main > Destroy server menus > On

Code: Select all

sub ebis.captcha()
     var j, i, cnt = 500 ; количество
     var f = "ebis.captcha.dat" ; файл
     f = file( f )
     f.open()
     for i=0 to cnt-1
          uo.print( "Записываю данные: " + str( i+1 ) + "/" + str( cnt ) )
          uo.useobject( uo.objatlayer( "Rhand" ) )
          checklag()
          for j=4 to 14
               f.writeln( uo.lastgump( "command", j -1 ) )
          next
          f.writeln( "" )
     next
     f.close()
End Sub


Результат работы такого скрипта прилагается: http://webfile.ru/1393942

За несколько минут он мне собрал более 100 КБ инфы, которую я буду использовать для проверки написанного кода, если конечно же напишу.

Я особо не присматривался, но мне показалось, что циферки там всегда одинаковые, за исключением поворота на N градусов. Так, что, если написать верную функцию поворота - то, решение будет достаточно коротким.

Добавлено:
Меня поправляют в асе - говорят чётко видели конкретно разные циферки, тут может быть два варианта:
1. Вручную были нарисованы разные варианты циферок, это легче обойти полным перебором.
2. Есть одно / несколько базовых изображений, но при отображении к координатам добавляется рендомное количество. Обойти впринципе тоже несложно.

В любом случае, залогом решения данной задачи является верное установление точки, вокруг которой происходит вращение и непосредственно поворот изображения.

Posted: 2007-05-03 07:29:49
by I'm
Желаю удачи :)

Posted: 2007-05-03 08:28:46
by Destruction
I'm wrote:Желаю удачи :)

Приятно видеть тебя на этом форуме.

Удача конечно же пригодится, у других не получилось лишь потому, что у них не было опыта..

Я же рисую капчи и читаю не впервые :roll:

Абисовский - один из самых примитивных вариантов, однако поворот изображения на N градусов создаёт проблемы..

У меня нету инфы о том, как поворачивать объект.. Я знаю до какой степени нужно поворачивать, но незнаю как.. обидно )

Posted: 2007-05-03 11:19:21
by Grin
нарисуй цифры пронумеровав точки в порядке их появления. Порядок всегда один и тотже. Вспоминаем геометрию и выделяем в каждой цифре 2-3 уникальных угла образованных точками. Проверяем на соответствие на условие "Угол".
Чапра не примитивная (другую просто не нарисуешь), а вот способ ее подачи примитивен...

Posted: 2007-05-03 11:19:54
by Ururu
А если вбить все варианты, со всеми углами поворота?

Posted: 2007-05-03 11:22:37
by Grin
Ururu wrote:А если вбить все варианты, со всеми углами поворота?

удачи...

Posted: 2007-05-03 13:04:14
by I'm
Ururu wrote:А если вбить все варианты, со всеми углами поворота?

только представь сколько их :)

Posted: 2007-05-04 05:40:12
by Destruction
То, что я предложил - займёт относительно мало.

Смотрите - поворачиваем цифру до тех пор, пока не будет 2-3 точки равных по x, поворачиваем соотственно +-N градусов, т.е. до того состояния, када фигура стоит прямо.

Т.к. кто-то говорил про некоторые различия - начинаем тупо сверять все точки +-M пунктов.

Я знаю как всё это реализовать, но нужно много тестить и много времени..

PS: Реализую и продавать буду :roll:

Posted: 2007-05-04 06:43:14
by Destruction
Вынужден признать - я незнаю, как повернуть точку..

Поворачивать нужно относительно другой точки, что логично, с другой точкой можно определиться несколько позже.

Вот что я делаю:

Code: Select all

N = 1 ; число на которое поврачиваем
x = 375 ; x точки
y = 121 ; y точки
x0 = 350 ; x точки поворота
y0 = 120 ; y точки поворота
; переводим в сферическую систему координат
r = sqrt( ( x - x0 ) * ( y - y0 ) )
aplha = arctan( ( x - x0 ) / ( y - y0 ) )
aplha = aplha + N ; делаем своё темное дело
; переводим обратно в декатовую систему координат
x = x0 + r * cos( aplha )
y = y0 + r * sin( aplha )


Вот так всё просто, но не работает, других вариантов повернуть я незнаю..

Кроме того смущает ситуация, когда y == y0, тогда выходит деление на нуль..

Непосредственно JavaScript'ик, которым я это всё дело тестил на вшивость:

Code: Select all

<script type="text/javascript">
var x0 = 350, y0 = 120;
function gen(){
    var i, el, data = [
        [ 375, 121 ],
        [ 383, 125 ],
        [ 392, 133 ],
        [ 387, 143 ],
        [ 364, 138 ],
        [ 371, 144 ],
        [ 381, 151 ],
        [ 356, 146 ],
        [ 351, 154 ],
        [ 360, 161 ],
        [ 368, 167 ]
    ];
    for( i = 0; i < 11; i++ ){
        el = document.createElement( "DIV" );
        document.body.appendChild( el );
        el.id = "point_" + i;
        el.style.position = "absolute";
        el.style.left = data[ i ][ 0 ];
        el.style.top  = data[ i ][ 1 ];
        el.innerHTML  = "&deg;";
        el = document.createElement( "DIV" );
        document.getElementById( "dat" ).appendChild( el );
        el.innerHTML = "Point " + ( i + 1 ) + ": " + data[ i ][ 0 ] + ", " + data[ i ][ 1 ];
        el.id = "info_" + i;
    }
}
   
function getX( obj ){
    var ret = obj.style.left;
    return Number( ret.substring( 0, ret.length -2 ) );
}

function getY( obj ){
    var ret = obj.style.top;
    return Number( ret.substring( 0, ret.length -2 ) );
}


function rotate( aplhaN ){
    var i, r, el, x, y, aplha;
    for( i = 0; i < 11; i++ ){
        el = document.getElementById( "point_" + i );
        x = getX( el );
        y = getY( el );
        r = Math.sqrt( ( x - x0 ) * ( y - y0 ) );
        aplha = Math.atan( ( x - x0 ) / ( y - y0 ) );
        aplha += aplhaN ; // do rotate
        x = Math.round( x0 + r * Math.cos( aplha ) );
        y = Math.round( y0 + r * Math.sin( aplha ) );
        el.style.left = x;
        el.style.top  = y;
        document.getElementById( "info_" + i ).innerHTML = "Point " + ( i + 1 ) + ": " + x + ", " + y;
    }
}

</script>
<button onclick="rotate( +1 )"><<< Rotate Left --</button>
<button onclick="rotate( -1 )">-- Rotate Right >>></button>
<br />
<div id="dat">
   
</div>
<script type="text/javascript">
    gen();
</script>


Простое втыкание в .html-файл даёт быстренько понять - что-то тут не так.

Есть идеи?)

Posted: 2007-05-04 09:24:18
by Sanch
Есть идеи?)


Используя uo.seteasyuo(), задавать переменные используемые в скрипте, при появлении гампа делать логаут и реконектится, если не поможет - полностью перезапускать инж+уо и скрипт.

Posted: 2007-05-04 09:40:00
by Destruction
Sanch wrote:
Есть идеи?)


Используя uo.seteasyuo(), задавать переменные используемые в скрипте, при появлении гампа делать логаут и реконектится, если не поможет - полностью перезапускать инж+уо и скрипт.

Не поможет.

Там не настолько глупые ребята :roll:

Posted: 2007-05-04 09:46:01
by Grin
Как всегда ничего тут не изменилось;)
вот вечно через заднее место идут...
Дест тебе же уже предложили вариант который в несколько порядков будет быстрей работать и с 100% результатом. Я понимаю что ты ухватился за свое, но поверь - это глупо. Тем более есть есть проблемы с афинами преобразованиями. Найди одну формулу скалярного произведения векторов...

Posted: 2007-05-04 09:47:39
by Sanch
Попробовать стоит, возможно гениальность решения кроется в простоте.