Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Небольшая головоломка на Perl (https://forum.antichat.xyz/showthread.php?t=43777)

KSURi 05.07.2007 13:17

Небольшая головоломка на Perl
 
Некое подобие keygenme на Perl
Мой первый опыт так сказать)
В пм присылайте или просто подходящие ключи, или детально описанный алгоритм
Если пришлете одно из двух хек-слов, подходящих туда - ставлю репу ггг

Код:

#!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

ЗЫ: тока не надо мне ебать мозги по поводу "да проще сорец подправить" плз

Digimortal 05.07.2007 13:25

>> Если пришлете одно из двух хек-слов, подходящих туда - ставлю репу ггг

а почему тока двух ? их там многа можна придумать.. )

KSURi 05.07.2007 13:29

Цитата:

Сообщение от Digimortal
>> Если пришлете одно из двух хек-слов, подходящих туда - ставлю репу ггг

а почему тока двух ? их там многа можна придумать.. )

Ну два которых мне больше всего нравятся)

slider 05.07.2007 16:50

мля... ниасилил...
вечером ещё раз попробую..

Helios 05.07.2007 20:46

Мда, без perlvar'а сразу и не допер, а вообще прикольно=)

[53x]Shadow 06.07.2007 00:29

В принципе работает вот так без правки исходов
D:\>perl script.pl 111
DONE!
Вместо 111 любой набор в кач. параметров =)

KSURi 06.07.2007 01:20

Цитата:

Сообщение от [53x]Shadow
В принципе работает вот так без правки исходов
D:\>perl script.pl 111
DONE!
Вместо 111 любой набор в кач. параметров =)

Хитрюга) Поправил

KSURi 07.07.2007 14:02

Что-то не густо народу взялось=\

Digimortal 10.07.2007 21:43

>> Что-то не густо народу взялось=\

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

genom-- 11.07.2007 00:34

ксурь - ты опять за старое? =)

KSURi 11.07.2007 01:15

то была ***ня, а это
Цитата:

Некое подобие keygenme на Perl
, стало быть это
Цитата:

Мой первый опыт так сказать)

genom-- 11.07.2007 02:37

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

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

KSURi 11.07.2007 09:05

$- и $+ заполняется только при определенных условиях, мучай perlvar
Про "длину страницы" промолчу)

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

genom-- 11.07.2007 16:31

ну ночь фигли с нее взять -- ну вот как то так

C:\>try.pl
xernia F
DONE!


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

KSURi 11.07.2007 23:36

Цитата:

Сообщение от genom--
ну ночь фигли с нее взять -- ну вот как то так

C:\>try.pl
xernia F
DONE!


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

имхо ты не понял как сделал это, а просто случайно подобрал фразу) могу ошибаться, поэтому просто отправь мне в пм подробное объяснение)

genom-- 12.07.2007 20:33

#!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 нелюблю пм =)


Время: 18:11