lukmus
13.03.2010, 04:40
Уважаемые модераторы, я так посчитал, что эта тема больше относиться к кодингу, чем к соцсетям.
Короче, заказывали у меня скрипт способный приглашать друзей в группу, а так же вступать самим аккам в группу для VК, я скрипт написал, а заказчик забил на эту тему.
#made by lukmus 06.03.2010
#!/usr/bin/ruby
require 'lib_fs.rb'
#CONFIG=========================================== ==
$togrp=15 #count of friends for one invite attemp
$wait_time=25 #time between invalid attemp
$log_f='log.log' #log file
#================================================= ==
help=<<EOF
<acc_file> <group_id> [-iaf]
acc_file file with accounts, format: login:pass
group_id group number, integer
iaf invite all friends
made by lukmus 06.03.2010
EOF
if ARGV.size<2 or ARGV.size>3
puts help
exit
end
$acc_f=ARGV[0]
gr=ARGV[1].to_i
invite_a_f=false
if ARGV.size==3 and ARGV[2]=='-iaf' then invite_a_f=true end
$all_f_count=0
$all_if_count=0
def log(str)
fl=File.new($log_f,'a')
fl.puts str
fl.close
end
def iaf(account,gr_id)
friends=account.get_all_friends_ids
suc_count=0
good=0
if friends==-1 then puts " get friends FAILED" else
print " \ninviting"
$all_f_count+=friends.size
STDOUT.flush
end_p=$togrp
start_p=0
while start_p<friends.size do
end_p=start_p+$togrp
if end_p>friends.size-1 then end_p=friends.size-1 end
if account.invite_f_in_group(gr_id,friends[start_p..end_p])==0 then
print '.'
$all_if_count+=end_p-start_p
suc_count+=end_p-start_p
good=1
else print '?' end
STDOUT.flush
start_p+=$togrp
end
$all_if_count+=good
print " [suc_count=#{suc_count+good}/f_count=#{friends.size}]"
STDOUT.flush
end
end
fil=File.new($acc_f,"r")
while !fil.eof
str=fil.gets
str.chop!
mail,pass=str.split(':')
print "\n #{mail} "
acc=Account.new(mail,pass)
if acc.logon==0
if acc.enter_in_group(gr)==0 then print " OK " else print " WARNING: Can't enter in group " end
if invite_a_f==true then iaf(acc,gr) end
else
puts " ERROR: Invalid login or password "
log("Invalid #{mail.gsub('%40','@')}:#{pass}")
wait($wait_time,1)
end
end
fil.close
puts "\n[all_f_count=#{$all_f_count}/all_invite_f_count=#{$all_if_count}]"
Как установить Ruby и как запустить скрипт (http://habrahabr.ru/blogs/ruby/30786/)
библиотека необходимая для скрипта (http://www.sendspace.com/file/r9ngax)
все файлы в одном архиве (http://www.sendspace.com/file/pt61s9)
О работе скрипта
Скрипт считывает из файла пару логин:пароль, каждая пара на новой строке. Далее логиниться и выполняет следующие действия:
-вступает в группу с номером <group_id>
-если указан параметр -iaf, то приглашает в группу всех своих друзей
Последняя функция работает не всегда, принцип по которому VК отсеивает выяснить не удалось т.к. зачастую эта функция не работает и через браузер.
Пару слов о библиотеке
В файле так называемой библиотеки содержиться class Account, который собственно и содержит методы, которые реализуют функции скрипта.
Для рубистов
Насколько я знаю, на этом форуме их очень не много.
Как я уже писал все самое интересное в библиотеке, в кратце опишу методы класса Account:
-enter_in_group(gr_id)
вступает в группу gr_id
-invite_f_in_group(gr_id,user_ids)
приглашает в группу gr_id, юзеров массива user_ids
-count_of_users_in_grp(gr_id)
возвращает количество акков в группе gr_id, данные берет с главной страницы группы, поэтому в случае быстрого инвайта запаздывает
-get_all_friends_ids()
возвращает массив с id друзей
-logon()
самая интересная функция, может пригодиться для брута, но только через прокси. логиниться.
-get_my_id()
возвращает id акка
-get_friends_count()
возвращает кол-во друзей акка
-get_hash_4_invite_2_group(prehash)
разгадывает загадку, по которой VК шифрует хэш для инвайта по prehash (якобы хэш выводящийся в явном виде)
-get_hash(path,id,n)
возвращает остальные бесхитростные хэши
К чему все это
Все методы библиотеки понятны далеко не только рубистам, основная фишка это конечно формирование нужного запроса. Так вот давайте развивать эту Open Source библиотеку на языке котором знаешь.
Короче, заказывали у меня скрипт способный приглашать друзей в группу, а так же вступать самим аккам в группу для VК, я скрипт написал, а заказчик забил на эту тему.
#made by lukmus 06.03.2010
#!/usr/bin/ruby
require 'lib_fs.rb'
#CONFIG=========================================== ==
$togrp=15 #count of friends for one invite attemp
$wait_time=25 #time between invalid attemp
$log_f='log.log' #log file
#================================================= ==
help=<<EOF
<acc_file> <group_id> [-iaf]
acc_file file with accounts, format: login:pass
group_id group number, integer
iaf invite all friends
made by lukmus 06.03.2010
EOF
if ARGV.size<2 or ARGV.size>3
puts help
exit
end
$acc_f=ARGV[0]
gr=ARGV[1].to_i
invite_a_f=false
if ARGV.size==3 and ARGV[2]=='-iaf' then invite_a_f=true end
$all_f_count=0
$all_if_count=0
def log(str)
fl=File.new($log_f,'a')
fl.puts str
fl.close
end
def iaf(account,gr_id)
friends=account.get_all_friends_ids
suc_count=0
good=0
if friends==-1 then puts " get friends FAILED" else
print " \ninviting"
$all_f_count+=friends.size
STDOUT.flush
end_p=$togrp
start_p=0
while start_p<friends.size do
end_p=start_p+$togrp
if end_p>friends.size-1 then end_p=friends.size-1 end
if account.invite_f_in_group(gr_id,friends[start_p..end_p])==0 then
print '.'
$all_if_count+=end_p-start_p
suc_count+=end_p-start_p
good=1
else print '?' end
STDOUT.flush
start_p+=$togrp
end
$all_if_count+=good
print " [suc_count=#{suc_count+good}/f_count=#{friends.size}]"
STDOUT.flush
end
end
fil=File.new($acc_f,"r")
while !fil.eof
str=fil.gets
str.chop!
mail,pass=str.split(':')
print "\n #{mail} "
acc=Account.new(mail,pass)
if acc.logon==0
if acc.enter_in_group(gr)==0 then print " OK " else print " WARNING: Can't enter in group " end
if invite_a_f==true then iaf(acc,gr) end
else
puts " ERROR: Invalid login or password "
log("Invalid #{mail.gsub('%40','@')}:#{pass}")
wait($wait_time,1)
end
end
fil.close
puts "\n[all_f_count=#{$all_f_count}/all_invite_f_count=#{$all_if_count}]"
Как установить Ruby и как запустить скрипт (http://habrahabr.ru/blogs/ruby/30786/)
библиотека необходимая для скрипта (http://www.sendspace.com/file/r9ngax)
все файлы в одном архиве (http://www.sendspace.com/file/pt61s9)
О работе скрипта
Скрипт считывает из файла пару логин:пароль, каждая пара на новой строке. Далее логиниться и выполняет следующие действия:
-вступает в группу с номером <group_id>
-если указан параметр -iaf, то приглашает в группу всех своих друзей
Последняя функция работает не всегда, принцип по которому VК отсеивает выяснить не удалось т.к. зачастую эта функция не работает и через браузер.
Пару слов о библиотеке
В файле так называемой библиотеки содержиться class Account, который собственно и содержит методы, которые реализуют функции скрипта.
Для рубистов
Насколько я знаю, на этом форуме их очень не много.
Как я уже писал все самое интересное в библиотеке, в кратце опишу методы класса Account:
-enter_in_group(gr_id)
вступает в группу gr_id
-invite_f_in_group(gr_id,user_ids)
приглашает в группу gr_id, юзеров массива user_ids
-count_of_users_in_grp(gr_id)
возвращает количество акков в группе gr_id, данные берет с главной страницы группы, поэтому в случае быстрого инвайта запаздывает
-get_all_friends_ids()
возвращает массив с id друзей
-logon()
самая интересная функция, может пригодиться для брута, но только через прокси. логиниться.
-get_my_id()
возвращает id акка
-get_friends_count()
возвращает кол-во друзей акка
-get_hash_4_invite_2_group(prehash)
разгадывает загадку, по которой VК шифрует хэш для инвайта по prehash (якобы хэш выводящийся в явном виде)
-get_hash(path,id,n)
возвращает остальные бесхитростные хэши
К чему все это
Все методы библиотеки понятны далеко не только рубистам, основная фишка это конечно формирование нужного запроса. Так вот давайте развивать эту Open Source библиотеку на языке котором знаешь.