Небольшая головоломка на Perl

Discussion in 'PHP' started by KSURi, 5 Jul 2007.

  1. KSURi

    KSURi tnega AOLPS

    Joined:
    6 Jun 2006
    Messages:
    458
    Likes Received:
    219
    Reputations:
    357
    Некое подобие keygenme на Perl
    Мой первый опыт так сказать)
    В пм присылайте или просто подходящие ключи, или детально описанный алгоритм
    Если пришлете одно из двух хек-слов, подходящих туда - ставлю репу ггг

    Code:
    #!perl -X
    BEGIN { $SIG{INT} = sub { exit print '=(' } }
    while(chomp($_=<STDIN>)){s/e/e/e;exit print'=('until!($+[0]+$-[0]!=3);/$_/ and $=+=ord$& foreach(split$,);goto SUCCESS unless $=!=(int oct'0x329')*(int(rand0xffffff)**int(rand1));exit print '=(';}
    SUCCESS: exit print"\x44\x4f\x4e\x45\x21"
    
    или тут: http://itdefence.ru/hauditor/keygenme.txt

    ЗЫ: тока не надо мне ебать мозги по поводу "да проще сорец подправить" плз
     
    #1 KSURi, 5 Jul 2007
    Last edited: 6 Jul 2007
    3 people like this.
  2. Digimortal

    Digimortal Banned

    Joined:
    22 Aug 2006
    Messages:
    471
    Likes Received:
    248
    Reputations:
    189
    >> Если пришлете одно из двух хек-слов, подходящих туда - ставлю репу ггг

    а почему тока двух ? их там многа можна придумать.. )
     
    1 person likes this.
  3. KSURi

    KSURi tnega AOLPS

    Joined:
    6 Jun 2006
    Messages:
    458
    Likes Received:
    219
    Reputations:
    357
    Ну два которых мне больше всего нравятся)
     
  4. slider

    slider Reservists Of Antichat

    Joined:
    4 Sep 2005
    Messages:
    501
    Likes Received:
    711
    Reputations:
    748
    мля... ниасилил...
    вечером ещё раз попробую..
     
  5. Helios

    Helios Elder - Старейшина

    Joined:
    14 Jan 2007
    Messages:
    414
    Likes Received:
    180
    Reputations:
    103
    Мда, без perlvar'а сразу и не допер, а вообще прикольно=)
     
    2 people like this.
  6. [53x]Shadow

    [53x]Shadow Leaders of Antichat

    Joined:
    25 Jan 2007
    Messages:
    284
    Likes Received:
    597
    Reputations:
    514
    В принципе работает вот так без правки исходов
    D:\>perl script.pl 111
    DONE!
    Вместо 111 любой набор в кач. параметров =)
     
  7. KSURi

    KSURi tnega AOLPS

    Joined:
    6 Jun 2006
    Messages:
    458
    Likes Received:
    219
    Reputations:
    357
    Хитрюга) Поправил
     
    1 person likes this.
  8. KSURi

    KSURi tnega AOLPS

    Joined:
    6 Jun 2006
    Messages:
    458
    Likes Received:
    219
    Reputations:
    357
    Что-то не густо народу взялось=\
     
  9. Digimortal

    Digimortal Banned

    Joined:
    22 Aug 2006
    Messages:
    471
    Likes Received:
    248
    Reputations:
    189
    >> Что-то не густо народу взялось=\

    мне кажется, надо было это в раздел "PHP, PERL, MySQL, JavaScript" выложить, ато в этот раздел перл-кодеры и не заглядуют особо..
     
  10. genom--

    genom-- Elder - Старейшина

    Joined:
    9 Jul 2006
    Messages:
    668
    Likes Received:
    416
    Reputations:
    288
    ксурь - ты опять за старое? =)
     
  11. KSURi

    KSURi tnega AOLPS

    Joined:
    6 Jun 2006
    Messages:
    458
    Likes Received:
    219
    Reputations:
    357
    то была ***ня, а это
    , стало быть это
     
    1 person likes this.
  12. genom--

    genom-- Elder - Старейшина

    Joined:
    9 Jul 2006
    Messages:
    668
    Likes Received:
    416
    Reputations:
    288
    вообщем фиг знает на чем ты его тестил ---- ща вот в 2 часа ночи сижу ковыряюсь дошел до exit print'=('until!($+[0]+$-[0]!=3); -- вообщем лично у моего вывода количество оставшихся строк всегда равно нулю какую бы пежню я не печатал не то что одно слово -- так что немогу догнать до троечки

    вообщем мне запарилось его ща мучать или оно бажное тк $- у меня выше нуля не идет -- тк оно и понятно сколько строк может остаться у стандартного вывода с автоочисткой????? вообщем хз завтра еще поковыряюсь -- ток тут загвоздка -- ну а длину страницы с 809 чтобы влезть в goto я думаю какнить заделаемс
     
  13. KSURi

    KSURi tnega AOLPS

    Joined:
    6 Jun 2006
    Messages:
    458
    Likes Received:
    219
    Reputations:
    357
    $- и $+ заполняется только при определенных условиях, мучай perlvar
    Про "длину страницы" промолчу)

    Там все нормально, два человека уже решили. Был один небольшой багес, но и тот я поправил (тнкс 2 53xShadow)
     
  14. genom--

    genom-- Elder - Старейшина

    Joined:
    9 Jul 2006
    Messages:
    668
    Likes Received:
    416
    Reputations:
    288
    ну ночь фигли с нее взять -- ну вот как то так

    C:\>try.pl
    xernia F
    DONE!


    ps а вообще прикольно иногда так мозг трохан поковырять свой -- чтоб паутиной не зарос
     
  15. KSURi

    KSURi tnega AOLPS

    Joined:
    6 Jun 2006
    Messages:
    458
    Likes Received:
    219
    Reputations:
    357
    имхо ты не понял как сделал это, а просто случайно подобрал фразу) могу ошибаться, поэтому просто отправь мне в пм подробное объяснение)
     
  16. genom--

    genom-- Elder - Старейшина

    Joined:
    9 Jul 2006
    Messages:
    668
    Likes Received:
    416
    Reputations:
    288
    #!perl -X
    BEGIN { $SIG{INT} = sub { exit print '=(' } }
    while(chomp($_=<STDIN>)){s/e/e/e;exit print'=('until!($+[0]+$-[0]!=3);/$_/ and $=+=ord$& foreach(split$,);goto SUCCESS unless $=!=(int oct'0x329')*(int(rand0xffffff)**int(rand1));exit print '=(';}
    SUCCESS: exit print"\x44\x4f\x4e\x45\x21"

    ксуренг ты или прикалываешься так что уже не смишно или думаешь что я боб марли а вы все гавно -- одно из двух имхо


    ну давай разбираться -- чтобы прокатили все проверки нужена строка в которой будет формат чтобы $- начала принимать значения и чтобы содержала букву e чтобы $+=1

    итого они должны дать в сумме 3 чтобы прокатило exit print'=('until!($+[0]+$-[0]!=3);

    у меня это выполняется буквами xe

    далее сделав print (int oct'0x329')*(int(rand0xffffff)**int(rand1); мы получаем число 809 при сравнении с которым идет переброс на метку с выводом DONE!

    немного взглянув на строчку $=+=ord$& foreach(split$,) мы понимаем что в она принимает значение за счет суммирования с нее кодов сиволов из введенной строки ну там еще кое что но оно не существенно -- и их суммма должна равняться 809

    тут нам нужен любой char декодер
    вообщем вставляем перед самым goto -- print "$=\n"; и печатаем чтонить например начинающеееся на xe --- и смотрим какая сумма у нас получилась и сколько нам нехватает то 809 ------ с комбинацией xernia у меня незватало 102 до 809 ну и поэтому пришлось вставить пробел(32) и F(70)

    и вуаля получилось то что надо

    знаю что ты ща скажешь что ты тупо подобрал или еще ченить в этом духе -- так что могу тебя заверить не волнуйся я полностью разобрался в этом коде

    ps нелюблю пм =)