;
httpQuery(byref Result, lpszUrl, POSTDATA="", HEADERS="")
{
global httpQueryOps, httpAgent, httpProxy, httpProxyByPass, httpQueryReferer, httpQueryAcceptType
, httpQueryDwFlags
defaultOps =
(LTrim Join|
httpAgent=AutoHotkeyScript|httpProxy=0|httpProxyBy Pass=0|INTERNET_FLAG_SECURE=0x00800000
SECURITY_FLAG_IGNORE_UNKNOWN_CA=0x00000100|SECURIT Y_FLAG_IGNORE_CERT_CN_INVALID=0x00001000
SECURITY_FLAG_IGNORE_CERT_DATE_INVALID=0x00002000| SECURITY_FLAG_IGNORE_CERT_WRONG_USAGE=0x00000200
INTERNET_OPEN_TYPE_PROXY=3|INTERNET_OPEN_TYPE_DIRE CT=1|INTERNET_SERVICE_HTTP=3
)
Loop,Parse,defaultOps,|
{
RegExMatch(A_LoopField,"(?P[^=]+)=(?P.*)",http)
if StrLen(%httpOption%)=0
%httpOption% := httpDefault
}
hModule := DllCall("LoadLibrary", "Str", "WinINet.Dll")
offset_name_length:= "4-lpszScheme-255|16-lpszHostName-1024|28-lpszUserName-1024|"
. "36-lpszPassword-1024|44-lpszUrlPath-1024|52-lpszExtrainfo-1024"
VarSetCapacity(URL_COMPONENTS,60,0)
NumPut(60,URL_COMPONENTS,0), NumPut(255,URL_COMPONENTS,12), NumPut(0xffff,URL_COMPONENTS,24)
Loop,Parse,offset_name_length,|
{
RegExMatch(A_LoopField,"(?P\d+)-(?P[a-zA-Z]+)-(?P\d+)",iCU_)
VarSetCapacity(%iCU_Name%,iCU_Size,0)
NumPut(&%iCU_Name%,URL_COMPONENTS,iCU_Offset)
NumPut(iCU_Size,URL_COMPONENTS,iCU_Offset+4)
}
DllCall("WinINet\InternetCrackUrlA","Str",lpszUrl,"uInt",StrLen(lpszUrl),"uInt",0,"uInt",&URL_COMPONENTS)
Loop,Parse,offset_name_length,|
{
RegExMatch(A_LoopField,"-(?P[a-zA-Z]+)-",iCU_)
VarSetCapacity(%iCU_Name%,-1)
}
nPort:=NumGet(URL_COMPONENTS,24,"uInt")
dwFlags := httpQueryDwFlags
if (lpszScheme = "https")
dwFlags |= (INTERNET_FLAG_SECURE|SECURITY_FLAG_IGNORE_CERT_CN _INVALID
|SECURITY_FLAG_IGNORE_CERT_WRONG_USAGE)
if (lpszScheme="unknown") {
Result := "ERR: No Valid URL supplied."
Return StrLen(Result)
}
hInternet := DllCall("WinINet\InternetOpenA"
,"Str",httpAgent,"UInt"
,(httpProxy != 0 ? INTERNET_OPEN_TYPE_PROXY : INTERNET_OPEN_TYPE_DIRECT )
,"Str",httpProxy,"Str",httpProxyBypass,"Uint",0)
hConnect := DllCall("WinINet\InternetConnectA"
,"uInt",hInternet,"Str",lpszHostname, "Int",nPort
,"Str",lpszUserName, "Str",lpszPassword,"uInt",INTERNET_SERVICE_HTTP
,"uInt",0,"uInt*",0)
if (Strlen(POSTDATA)>0) {
HTTPVerb:="POST"
if StrLen(Headers)=0
Headers:="Content-Type: application/x-www-form-urlencoded"
} else
HTTPVerb:="GET"
hRequest := DllCall("WinINet\HttpOpenRequestA"
,"uInt",hConnect,"Str",HTTPVerb,"Str",lpszUrlPath . lpszExtrainfo
,"Str",ProVer := "HTTP/1.1", "Str",httpQueryReferer,"Str",httpQueryAcceptTypes
,"uInt",dwFlags,"uInt",Context:=0 )
sRequest := DllCall("WinINet\HttpSendRequestA"
, "uInt",hRequest,"Str",Headers, "uInt",Strlen(Headers)
, "Str",POSTData,"uInt",Strlen(POSTData))
VarSetCapacity(header, 2048, 0)
VarSetCapacity(header_len, 4, 0)
Loop, 5
if ((headerRequest:=DllCall("WinINet\HttpQueryInfoA","uint",hRequest
,"uint",21,"uint",&header,"uint",&header_len,"uint",0))=1)
break
If (headerRequest=1) {
VarSetCapacity(res,headerLength:=NumGet(header_len ),32)
DllCall("RtlMoveMemory","uInt",&res,"uInt",&header,"uInt",headerLength)
Loop,% headerLength
if (*(&res-1+a_index)=0)
NumPut(Asc("`n"),res,a_index-1,"uChar")
VarSetCapacity(res,-1)
} else
res := "timeout"
Loop,Parse,res,`n,`r
{
RetValue := A_LoopField
break
}
If (RetValue="timeout") {
html := "Error: timeout"
return -1
}
RetValue := RegExReplace(RetValue,"HTTP/1\.[01]\s+")
HttpRetCodes := "100=Continue|101=Switching Protocols|102=Processing (WebDAV) (RFC 2518)|"
. "200=OK|201=Created|202=Accepted|203=Non-Authoritative Information|204=No"
. " Content|205=Reset Content|206=Partial Content|207=Multi-Status (WebDAV)"
. "|300=Multiple Choices|301=Moved Permanently|302=Found|303=See Other|304="
. "Not Modified|305=Use Proxy|306=Switch Proxy|307=Temporary Redirect|400=B"
. "ad Request|401=Unauthorized|402=Payment Required|403=Forbidden|404=Not F"
. "ound|405=Method Not Allowed|406=Not Acceptable|407=Proxy Authentication "
. "Required|408=Request Timeout|409=Conflict|410=Gone|411=Length Required|4"
. "12=Precondition Failed|413=Request Entity Too Large|414=Request-URI Too "
. "Long|415=Unsupported Media Type|416=Requested Range Not Satisfiable|417="
. "Expectation Failed|418=I'm a teapot (RFC 2324)|422=Unprocessable Entity "
. "(WebDAV) (RFC 4918)|423=Locked (WebDAV) (RFC 4918)|424=Failed Dependency"
. " (WebDAV) (RFC 4918)|425=Unordered Collection (RFC 3648)|426=Upgrade Req"
. "uired (RFC 2817)|449=Retry With|500=Internal Server Error|501=Not Implem"
. "ented|502=Bad Gateway|503=Service Unavailable|504=Gateway Timeout|505=HT"
. "TP Version Not Supported|506=Variant Also Negotiates (RFC 2295)|507=Insu"
. "fficient Storage (WebDAV) (RFC 4918)|509=Bandwidth Limit Exceeded|510=No"
. "t Extended (RFC 2774)"
RetValue := SubStr(RetValue,1,3)
Loop,Parse,HttpRetCodes,|
{
HttpReturnCode := SubStr(A_LoopField,1,3)
HttpReturnMsg := SubStr(A_LoopField,5)
if (RetValue=HttpReturnCode) {
RetMsg := HttpReturnMsg
break
}
}
if strlen(HTTPQueryOps)>0 {
if (instr(HTTPQueryOps,"showHeader"))
MsgBox % res
if (instr(HTTPQueryOps,"storeHeader"))
global HttpQueryHeader := res
if (instr(HTTPQueryOps,"updateSize")) {
Loop,Parse,res,`n
If RegExMatch(A_LoopField,"Content-Length:\s+?(?P\d+)",full) {
global HttpQueryFullSize := fullSize
break
}
if (fullSize+0=0)
HttpQueryFullSize := "size unavailable"
}
}
if !(InStr("100 200 201 202 302",RetValue)) {
Result := RetValue " " RetMsg
return StrLen(Result)
}
VarSetCapacity(BytesRead,4,0)
fsize := 0
Loop
{
bc := A_Index
VarSetCapacity(buffer%bc%,1024,0)
ReadFile := DllCall("wininet\InternetReadFile"
,"uInt",hRequest,"uInt",&buffer%bc%,"uInt",1024,"uInt",&BytesRead)
ReadBytes := NumGet(BytesRead)
If ((ReadFile!=0)&&(!ReadBytes))
break
Else {
fsize += ReadBytes
sizeArray .= ReadBytes "|"
}
if (instr(HTTPQueryOps,"updateSize"))
Global HttpQueryCurrentSize := fsize
}
sizeArray := SubStr(sizeArray,1,-1)
VarSetCapacity(result,fSize+1,0)
Dest := &result
Loop,Parse,SizeArray,|
DllCall("RtlMoveMemory","uInt",Dest,"uInt",&buffer%A_Index%,"uInt",A_LoopField)
, Dest += A_LoopField
DllCall("WinINet\InternetCloseHandle", "uInt", hRequest)
DllCall("WinINet\InternetCloseHandle", "uInt", hInternet)
DllCall("WinINet\InternetCloseHandle", "uInt", hConnect)
DllCall("FreeLibrary", "UInt", hModule)
return fSize
}
http_win(byref Result, lpszUrl, POSTDATA="", HEADERS="",fix_HttpQuery="")
{
global httpQueryOps, httpAgent, httpProxy, httpProxyByPass, httpQueryReferer, httpQueryAcceptType
, httpQueryDwFlags
quote="
trash_quote='
scr_url:=lpszUrl
scr_post:=POSTDATA
scr_head:=HEADERS
scr_fix:=fix_HttpQuery
defaultOps:="httpProxy=0|httpProxyByPass=1|INTERNET_FLAG_SECURE =0x00800000|SECURITY_FLAG_IGNORE_UNKNOWN_CA=0x0000 0100|SECURITY_FLAG_IGNORE_CERT_CN_INVALID=0x000010 00|SECURITY_FLAG_IGNORE_CERT_DATE_INVALID=0x000020 00|SECURITY_FLAG_IGNORE_CERT_WRONG_USAGE=0x0000020 0|INTERNET_OPEN_TYPE_PROXY=3|INTERNET _OPEN_TYPE_DIRECT=1|INTERNET_SERVICE_HTTP=3"
Loop,Parse,defaultOps,|
{
RegExMatch(A_LoopField,"(?P[^=]+)=(?P.*)",http)
if StrLen(%httpOption%)=0
%httpOption% := httpDefault
}
hModule := DllCall("LoadLibrary", "Str", "WinINet.Dll")
offset_name_length:= "4-lpszScheme-255|16-lpszHostName-1024|28-lpszUserName-1024|"
. "36-lpszPassword-1024|44-lpszUrlPath-1024|52-lpszExtrainfo-1024"
VarSetCapacity(URL_COMPONENTS,60,0)
NumPut(60,URL_COMPONENTS,0), NumPut(255,URL_COMPONENTS,12), NumPut(0xffff,URL_COMPONENTS,24)
Loop,Parse,offset_name_length,|
{
RegExMatch(A_LoopField,"(?P\d+)-(?P[a-zA-Z]+)-(?P\d+)",iCU_)
VarSetCapacity(%iCU_Name%,iCU_Size,0)
NumPut(&%iCU_Name%,URL_COMPONENTS,iCU_Offset)
NumPut(iCU_Size,URL_COMPONENTS,iCU_Offset+4)
}
DllCall("WinINet\InternetCrackUrlA","Str",lpszUrl,"uInt",StrLen(lpszUrl),"uInt",0,"uInt",&URL_COMPONENTS)
Loop,Parse,offset_name_length,|
{
RegExMatch(A_LoopField,"-(?P[a-zA-Z]+)-",iCU_)
VarSetCapacity(%iCU_Name%,-1)
}
nPort:=NumGet(URL_COMPONENTS,24,"uInt")
dwFlags := httpQueryDwFlags
if (lpszScheme = "https")
dwFlags |= (INTERNET_FLAG_SECURE|SECURITY_FLAG_IGNORE_CERT_CN _INVALID
|SECURITY_FLAG_IGNORE_CERT_WRONG_USAGE)
if (lpszScheme="unknown") {
Result := "ERR: No Valid URL supplied."
Return StrLen(Result)
}
hInternet := DllCall("WinINet\InternetOpenA"
,"Str",httpAgent,"UInt"
,(httpProxy != 0 ? INTERNET_OPEN_TYPE_PROXY : INTERNET_OPEN_TYPE_DIRECT )
,"Str",httpProxy,"Str",httpProxyBypass,"Uint",0)
hConnect := DllCall("WinINet\InternetConnectA"
,"uInt",hInternet,"Str",lpszHostname, "Int",nPort
,"Str",lpszUserName, "Str",lpszPassword,"uInt",INTERNET_SERVICE_HTTP
,"uInt",0,"uInt*",0)
if (Strlen(POSTDATA)>0) {
HTTPVerb:="POST"
if StrLen(Headers)=0
Headers:="Content-Type: application/x-www-form-urlencoded"
} else
HTTPVerb:="GET"
hRequest := DllCall("WinINet\HttpOpenRequestA"
,"uInt",hConnect,"Str",HTTPVerb,"Str",lpszUrlPath . lpszExtrainfo
,"Str",ProVer := "HTTP/1.1", "Str",httpQueryReferer,"Str",httpQueryAcceptTypes
,"uInt",dwFlags,"uInt",Context:=0 )
sRequest := DllCall("WinINet\HttpSendRequestA"
, "uInt",hRequest,"Str",Headers, "uInt",Strlen(Headers)
, "Str",POSTData,"uInt",Strlen(POSTData))
VarSetCapacity(header, 2048, 0)
VarSetCapacity(header_len, 4, 0)
Loop, 5
if ((headerRequest:=DllCall("WinINet\HttpQueryInfoA","uint",hRequest
,"uint",21,"uint",&header,"uint",&header_len,"uint",0))=1)
break
If (headerRequest=1) {
VarSetCapacity(res,headerLength:=NumGet(header_len ),32)
DllCall("RtlMoveMemory","uInt",&res,"uInt",&header,"uInt",headerLength)
Loop,% headerLength
if (*(&res-1+a_index)=0)
NumPut(Asc("`n"),res,a_index-1,"uChar")
VarSetCapacity(res,-1)
} else
res := "timeout"
Loop,Parse,res,`n,`r
{
RetValue := A_LoopField
break
}
If (RetValue="timeout") {
html := "Error: timeout"
return -1
}
RetValue := RegExReplace(RetValue,"HTTP/1\.[01]\s+")
HttpRetCodes := "100=Continue|101=Switching Protocols|102=Processing (WebDAV) (RFC 2518)|"
. "200=OK|201=Created|202=Accepted|203=Non-Authoritative Information|204=No"
. " Content|205=Reset Content|206=Partial Content|207=Multi-Status (WebDAV)"
. "|300=Multiple Choices|301=Moved Permanently|302=Found|303=See Other|304="
. "Not Modified|305=Use Proxy|306=Switch Proxy|307=Temporary Redirect|400=B"
. "ad Request|401=Unauthorized|402=Payment Required|403=Forbidden|404=Not F"
. "ound|405=Method Not Allowed|406=Not Acceptable|407=Proxy Authentication "
. "Required|408=Request Timeout|409=Conflict|410=Gone|411=Length Required|4"
. "12=Precondition Failed|413=Request Entity Too Large|414=Request-URI Too "
. "Long|415=Unsupported Media Type|416=Requested Range Not Satisfiable|417="
. "Expectation Failed|418=I'm a teapot (RFC 2324)|422=Unprocessable Entity "
. "(WebDAV) (RFC 4918)|423=Locked (WebDAV) (RFC 4918)|424=Failed Dependency"
. " (WebDAV) (RFC 4918)|425=Unordered Collection (RFC 3648)|426=Upgrade Req"
. "uired (RFC 2817)|449=Retry With|500=Internal Server Error|501=Not Implem"
. "ented|502=Bad Gateway|503=Service Unavailable|504=Gateway Timeout|505=HT"
. "TP Version Not Supported|506=Variant Also Negotiates (RFC 2295)|507=Insu"
. "fficient Storage (WebDAV) (RFC 4918)|509=Bandwidth Limit Exceeded|510=No"
. "t Extended (RFC 2774)"
RetValue := SubStr(RetValue,1,3)
Loop,Parse,HttpRetCodes,|
{
HttpReturnCode := SubStr(A_LoopField,1,3)
HttpReturnMsg := SubStr(A_LoopField,5)
if (RetValue=HttpReturnCode) {
RetMsg := HttpReturnMsg
break
}
}
if strlen(HTTPQueryOps)>0 {
if (instr(HTTPQueryOps,"showHeader"))
MsgBox % res
if (instr(HTTPQueryOps,"storeHeader"))
global HttpQueryHeader := res
if (instr(HTTPQueryOps,"updateSize")) {
Loop,Parse,res,`n
If RegExMatch(A_LoopField,"Content-Length:\s+?(?P\d+)",full) {
global HttpQueryFullSize := fullSize
break
}
if (fullSize+0=0)
HttpQueryFullSize := "size unavailable"
}
}
if !(InStr("100 200 201 202 302 400 500",RetValue)) {
Result := RetValue " " RetMsg
return StrLen(Result)
}
VarSetCapacity(BytesRead,4,0)
fsize := 0
Loop
{
bc := A_Index
VarSetCapacity(buffer%bc%,1024,0)
ReadFile := DllCall("wininet\InternetReadFile"
,"uInt",hRequest,"uInt",&buffer%bc%,"uInt",1024,"uInt",&BytesRead)
ReadBytes := NumGet(BytesRead)
If ((ReadFile!=0)&&(!ReadBytes))
break
Else {
fsize += ReadBytes
sizeArray .= ReadBytes "|"
}
if (instr(HTTPQueryOps,"updateSize"))
Global HttpQueryCurrentSize := fsize
}
sizeArray := SubStr(sizeArray,1,-1)
VarSetCapacity(result,fSize+1,0)
Dest := &result
Loop,Parse,SizeArray,|
DllCall("RtlMoveMemory","uInt",Dest,"uInt",&buffer%A_Index%,"uInt",A_LoopField)
, Dest += A_LoopField
if(fix_HttpQuery="")
{
varSetCapacity(result,-1)
result:= RegexReplace(result, quote, trash_quote)
StringReplace,result,result,`r,,All
}
DllCall("WinINet\InternetCloseHandle", "uInt", hRequest)
DllCall("WinINet\InternetCloseHandle", "uInt", hInternet)
DllCall("WinINet\InternetCloseHandle", "uInt", hConnect)
DllCall("FreeLibrary", "UInt", hModule)
return qwe:=fSize . "|--|--|" res
}
; #include httpQuery.ahk
#NoTrayIcon
#SingleInstance Off
httpAgent:="VkObmen/2.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.13) Gecko/20101203 VkObmen/2.0"
Menu, Tray,NoMainWindow
URLDownloadToFile, http://vkobmen2.ru/reklama.png (https://hpc.name/redirector.html#http://vkobmen2.ru/reklama.png), reklama.png
friends:="0"
fan:="0"
vkl:="1"
odo:="0"
club:="0"
video:="0"
opros:="0"
like:="0"
ver:="2.2"
name:="VkObmen v" ver
otvet := connect("http://vkobmen2.ru/ver.txt","","")
reklama := connect("http://vkobmen2.ru/reklama.txt","","")
If !otvet
{
msgbox, 0,%name%,Программа не смогла получить ответ от сервера!
run http://vkobmen.ru (https://hpc.name/redirector.html#http://vkobmen.ru)
exitapp
}
If (otvet !=ver)
{
}
kolvo := count(connect("http://vkobmen2.ru/index.php?tip=friends","",""))
IniRead, mail, cfg.ini,cfg,mail
IniRead, pass, cfg.ini,cfg,pass
If (mail="ERROR")
{
mail :=""
}
If ((pass="ERROR") or (pass=""))
{
pass :=""
}else{
checked := "Checked"
}
httpQueryDwFlags := (INTERNET_FLAG_NO_COOKIES:= 0x00080000|INTERNET_FLAG_DONT_CACHE:=0x04000000|IN TERNET_FLAG_NO_CACHE_WRITE:=0x04000000|INTERNET_FL AG_RELOAD:=0x80000000|INTERNET_FLAG_NO_AUTO_REDIRE CT:= 0x00200000)
count(Var, Char = "`n")
{
Loop, parse, Var, % Char
{
Count ++
}
return Count
}
EncodeURL( p_data, p_reserved=true, p_encode=true )
{
old_FormatInteger := A_FormatInteger
SetFormat, Integer, hex
unsafe =
( Join LTrim
25000102030405060708090A0B0C0D0E0F1011121314151617 18191A1B1C1D1E1F20
22233C3E5B5C5D5E607B7C7D7F808182838485868788898A8B 8C8D8E8F9091929394
95969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACAD AEAFB0B1B2B3B4B5B6
B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECF D0D1D2D3D4D5D6D7D8
D9DADBDCDDDEDF7EE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0 F1F2F3F4F5F6F7F8F9
FAFBFCFDFEFF
)
if ( p_reserved )
unsafe = %unsafe%24262B2C2F3A3B3D3F40
if ( p_encode )
loop, % StrLen( unsafe )//2
{
StringMid, token, unsafe, A_Index*2-1, 2
StringReplace, p_data, p_data, % Chr( "0x" token ), `%%token%, all
}
else
loop, % StrLen( unsafe )//2
{
StringMid, token, unsafe, A_Index*2-1, 2
StringReplace, p_data, p_data, `%%token%, % Chr( "0x" token ), all
}
SetFormat, Integer, %old_FormatInteger%
return, p_data
}
DecodeURL( p_data )
{
return, EncodeURL( p_data, true, false )
}
Ansi2Oem(sString)
{
Ansi2Unicode(sString, wString, 0)
Unicode2Ansi(wString, zString, 1)
Return zString
}
Oem2Ansi(zString)
{
Ansi2Unicode(zString, wString, 1)
Unicode2Ansi(wString, sString, 0)
Return sString
}
Ansi2UTF8(sString)
{
Ansi2Unicode(sString, wString, 0)
Unicode2Ansi(wString, zString, 65001)
Return zString
}
UTF82Ansi(zString)
{
Ansi2Unicode(zString, wString, 65001)
Unicode2Ansi(wString, sString, 0)
Return sString
}
Ansi2Unicode(ByRef sString, ByRef wString, CP = 0)
{
nSize := DllCall("MultiByteToWideChar"
, "Uint", CP
, "Uint", 0
, "Uint", &sString
, "int", -1
, "Uint", 0
, "int", 0)
VarSetCapacity(wString, nSize * 2)
DllCall("MultiByteToWideChar"
, "Uint", CP
, "Uint", 0
, "Uint", &sString
, "int", -1
, "Uint", &wString
, "int", nSize)
}
Unicode2Ansi(ByRef wString, ByRef sString, CP = 0)
{
nSize := DllCall("WideCharToMultiByte"
, "Uint", CP
, "Uint", 0
, "Uint", &wString
, "int", -1
, "Uint", 0
, "int", 0
, "Uint", 0
, "Uint", 0)
VarSetCapacity(sString, nSize)
DllCall("WideCharToMultiByte"
, "Uint", CP
, "Uint", 0
, "Uint", &wString
, "int", -1
, "str", sString
, "int", nSize
, "Uint", 0
, "Uint", 0)
}
prov(id){
if(!id){
return 1
}
Loop, read, ignore.txt
{
Loop, parse, A_LoopReadLine, %A_Tab%
{
If (A_LoopField=id){
return 1
}
}
}
}
line(Var, Line) {
Loop, parse, Var, `n
{
Count ++
Current:=A_loopField
if Count=%Line%
return Current
}
return
}
gui(x){
global
If (x=3){
Gui,3estroy
Gui, 3:Add, GroupBox, x12 y2 w160 h160 , Обмен
Gui, 3:Add, CheckBox,gfriends x22 y22 w140 h20 Checked%friends%, Друзьями
Gui, 3:Add, CheckBox,gfan x22 y42 w140 h20 Checked%fan%, Подписчиками
Gui, 3:Add, CheckBox,gclub x22 y62 w140 h30 Checked%club%, Вступившими в группу/public страницу
Gui, 3:Add, CheckBox,glike x22 y92 w140 h20 Checked%like%, Мне нравится
Gui, 3:Add, CheckBox,gopros x22 y112 w140 h20 Checked%opros%, Голосами в опросе
Gui, 3:Add, CheckBox,gvideo x22 y132 w140 h20 Checked%video%, Просмотрами видео
Gui, 3:Add, GroupBox, x192 y2 w180 h160 , �нфо
Gui, 3:Add, Text, x202 y22 w120 h20 , Всего пользователе №:
Gui, 3:Add, Text, x322 y22 w40 h20 , %kolvo%
Gui, 3:Add, Text, x202 y42 w40 h20 , Ваш ID:
Gui, 3:Add, Text, x242 y42 w120 h20 , %myid1%
Gui, 3:Add, Text, x202 y62 w60 h20 , VIP статус:
Gui, 3:Add, Text, x262 y62 w70 h20 , %vip%
Gui, 3:Add, Text, x202 y80 w80 h20 , Premium статус:
Gui, 3:Add, Text, x282 y80 w80 h20 , %pro%
Gui, 3:Add, CheckBox, x202 y100 w150 h20 gvkl Checked%vkl%, Уведомлять о событиях
Gui, 3:Add, CheckBox, x202 y120 w160 h20 godo Checked%odo%, Одобрять заявки в друзья
Gui, 3:Add, Button, x32 y172 w100 h20 gvopros, Задать вопрос
Gui, 3:Add, Button, x142 y172 w100 h20 gvip, Купить VIP
Gui, 3:Add, Button, x252 y172 w100 h20 gvkobmen.ru, На сайт
Gui, 3:Font, S6 CDefault, Verdana
If (pro="Нет"){
Gui, 3:Add, Picture, x2 y200 w390 h70 greklama,reklama.png
Gui, 3:Add, Text,x352 y273 w40 h10 gfilya, (с)ФиЛя
}else{
Gui, 3:Add, Text, x352 y190 w40 h10 gfilya, (с)ФиЛя
}
Gui, 3:Show,, VkObmen
Return
3GuiClose:
Gui,3estroy
return
}
If (x=4){
Gui,4estroy
myclub :=""
Gui, 4:Add, Text, x2 y12 w220 h20 , ID группы или public-страницы:
Gui, 4:Add, Edit,vmyclub x12 y32 w310 h20 Number,
Gui, 4:Add, Button, x132 y52 w90 h20 , РћРљ
Gui, 4:Font, S10 CDefault Bold, Verdana
Gui, 4:Show,h77 w343, VkObmen|Обмен вступившими в группу/public
Return
4GuiClose:
club :="0"
myclub :="0"
gui(3)
Gui,4estroy
return
4ButtonРћРљ:
Gui,Submit
Gui,4estroy
return
}
If (x=5){
Gui,5estroy
mylike :=""
Gui, 5:Add, Text, x2 y12 w220 h20 , Ссылка на страницу с "Мне нравится":
Gui, 5:Add, Edit,vmylike x12 y32 w310 h20 ,
Gui, 5:Add, Button, x132 y52 w90 h20 , РћРљ
Gui, 5:Font, S10 CDefault Bold, Verdana
Gui, 5:Add, Text,gobo x302 y12 w10 h20 , ?
Gui, 5:Show,h77 w343, VkObmen|Мне нравится
Return
5GuiClose:
like :="0"
mylike :="0"
gui(3)
Gui,5estroy
return
5ButtonРћРљ:
Gui,Submit
StringReplace,mylike,mylike,vkontakte, ,all
StringReplace,mylike,mylike,/, ,all
StringReplace,mylike,mylike,\, ,all
StringReplace,mylike,mylike,ru, ,all
StringReplace,mylike,mylike,., ,all
StringReplace,mylike,mylike,vk, ,all
StringReplace,mylike,mylike,com, ,all
StringReplace,mylike,mylike,http:, ,all
Gui,5estroy
return
}
If (x=6){
Gui,6estroy
myopros :=""
Gui, 6:Add, Text, x2 y12 w220 h20 , Ссылка на страницу с опросом:
Gui, 6:Add, Edit,vmyopros x12 y32 w310 h20 ,
Gui, 6:Add, Button, x132 y52 w90 h20 , РћРљ
Gui, 6:Add, DropDownList, x322 y30 w40 h20 choose1 vvariant, 1|2|3|4|5|6|7|8|9|10|11|12|13|14|15
Gui, 6:Font, S10 CDefault Bold, Verdana
Gui, 6:Show,h81 w386, VkObmen|РћРїСЂРѕСЃС‹
Return
6GuiClose:
opros :="0"
myopros :="0"
gui(3)
Gui,6estroy
return
6ButtonРћРљ:
Gui,Submit
StringReplace,myopros,myopros,vkontakte, ,all
StringReplace,myopros,myopros,/, ,all
StringReplace,myopros,myopros,\, ,all
StringReplace,myopros,myopros,ru, ,all
StringReplace,myopros,myopros,., ,all
StringReplace,myopros,myopros,vk, ,all
StringReplace,myopros,myopros,com, ,all
StringReplace,myopros,myopros,http:, ,all
myopros=%myopros%|%variant%
Gui,6estroy
return
}
If (x=7){
Gui,7estroy
myvideo :=""
Gui, 7:Add, Text, x2 y12 w220 h20 , Ссылка на видео:
Gui, 7:Add, Edit,vmyvideo x12 y32 w310 h20 ,
Gui, 7:Add, Button, x132 y52 w90 h20 , РћРљ
Gui, 7:Font, S10 CDefault Bold, Verdana
Gui, 7:Show,h77 w343, VkObmen|Видео
Return
7GuiClose:
video :="0"
myvideo :="0"
gui(3)
Gui,7estroy
return
7ButtonРћРљ:
Gui,Submit
StringReplace,myvideo,myvideo,vkontakte, ,all
StringReplace,myvideo,myvideo,/, ,all
StringReplace,myvideo,myvideo,\, ,all
StringReplace,myvideo,myvideo,ru, ,all
StringReplace,myvideo,myvideo,., ,all
StringReplace,myvideo,myvideo,vk, ,all
StringReplace,myvideo,myvideo,com, ,all
StringReplace,myvideo,myvideo,http:, ,all
StringReplace,myvideo,myvideo,video, ,all
Gui,7estroy
return
}
return
}
connect(link,header,post){
URL = %link%
POSTdata = %post%
HEADER = %header%
length := httpQuery(html:="",URL,POSTdata,HEADER)
varSetCapacity(html,-1)
return %html%
}
decodehash(hash)
{
hash:=substr(hash,-4) . substr(hash,5,-8)
return strrev(hash)
}
strrev(Str) {
DllCall("msvcrt\_" ( A_IsUnicode ? "wcs" : "str" ) "rev", "UInt",&Str, "CDecl")
return Str
}
MD5( ByRef V, L=0 ) {
VarSetCapacity( MD5_CTX,104,0 ), DllCall( "advapi32\MD5Init", Str,MD5_CTX )
DllCall( "advapi32\MD5Update", Str,MD5_CTX, Str,V, UInt,L ? L : VarSetCapacity(V) )
DllCall( "advapi32\MD5Final", Str,MD5_CTX )
Loop % StrLen( Hex:="123456789abcdef0" )
N := NumGet( MD5_CTX,87+A_Index,"Char"), MD5 .= SubStr(Hex,N>>4,1) . SubStr(Hex,N&15,1)
Return MD5
}
captcha(){
global
Gui, 2:Add, Picture, x2 y2 w157 h60 ,captcha.jpg
Gui, 2:Add, Edit,vcaptcha x2 y62 w120 h20,
Gui, 2:Add, Button, x122 y62 w34 h20 +default, РћРљ
Gui, 2:Show,h82 w157,Каптча
Return
2GuiClose:
Gui,2estroy
return
2ButtonРћРљ:
Gui,2:Submit,NoHide
If captcha{
Gui,2estroy
}
return %captcha%
}
Gui, Add, Text, x85 y2 w70 h20 , Авторизация
Gui, Add, Text, x2 y32 w40 h20 , E'mail:
Gui, Add, Edit, x52 y32 w190 h20 vmail,%mail%
Gui, Add, Text, x2 y62 w50 h20 , Пароль:
Gui, Add, Edit, x52 y62 w190 h20 vpass password,%pass%
Gui, Add, Button, x82 y122 w80 h20 +default, Р’С…РѕРґ
Gui, Add, CheckBox, x54 y92 w120 h20 vif %checked%, Сохранить пароль
Gui, Show,,CapsObmen|Авториза †РёСЏ
Return
GuiClose:
ExitApp
return
ButtonР’С…РѕРґ:
Gui,Submit,NoHide
IniWrite,%mail%, cfg.ini,cfg,mail
passw := pass
If (!if)
{
passw:=""
}
IniWrite,%passw%, cfg.ini,cfg,pass
mail := EncodeURL(mail)
pass := EncodeURL(pass)
otvet := connect("http://vkontakte.ru/login.php","Content-Type: application/x-www-form-urlencoded`nX-Requested-With: XMLHttpRequest`nContent-Transfer-Encoding: binary`nCookie:remixsid=nonenone","op=a_login_attempt")
reg=captcha_sid":"(.*?)"
loop{
If RegExMatch(otvet,reg,sid_catpcha){
URLDownloadToFile,http://vkontakte.ru/captcha.php?s=1&...1%,captcha.jpg (https://hpc.name/redirector.html#http://vkontakte.ru/captcha.php?s=1&sid=%sid_catpcha1%,captcha.jpg)
captcha := ""
captcha()
loop{
If captcha{
break
}
}
otvet := connect("http://vkontakte.ru/login.php","Content-Type: application/x-www-form-urlencoded`nX-Requested-With: XMLHttpRequest`nContent-Transfer-Encoding: binary`nCookie:remixsid=nonenone","op=a_login_attempt&captcha_sid=" sid_catpcha1 "&captcha_key=" EncodeURL(captcha))
}else{
break
}
}
httpQueryDwFlags := (INTERNET_FLAG_NO_COOKIES:= 0x00080000|INTERNET_FLAG_DONT_CACHE:=0x04000000|IN TERNET_FLAG_NO_CACHE_WRITE:=0x04000000|INTERNET_FL AG_RELOAD:=0x80000000)
reconn_post:="act=login&q=1&al_frame=1&expire=&captcha_sid=&captcha_key=&from_host=vkontakte.ru&email=" mail "&pass=" pass
reconn_data:=http_win(fake_reconn_data:="","http://login.vk.com/?act=login",reconn_post)
RegExMatch(reconn_data, "remixsid=(.*?);",sid)
httpQueryDwFlags := (INTERNET_FLAG_NO_COOKIES:= 0x00080000|INTERNET_FLAG_DONT_CACHE:=0x04000000|IN TERNET_FLAG_NO_CACHE_WRITE:=0x04000000|INTERNET_FL AG_RELOAD:=0x80000000|INTERNET_FLAG_NO_AUTO_REDIRE CT:= 0x00200000)
if sid1=
{
msgbox 0,%name%,Ошибка авторизации.
return
}else{
Gui,Destroy
cookie :="Content-Type: application/x-www-form-urlencoded`nX-Requested-With: XMLHttpRequest`nContent-Transfer-Encoding: binary`nCookie:remixchk=5; remixsid=" sid1
sleep 2000
otvet:= connect("http://vkontakte.ru/feed.php",cookie,"")
RegExMatch(otvet, "id=(.*?),", myid)
If (myid1==""){
}
oso := connect("http://vkobmen2.ru/vip.php","","")
If RegExMatch(oso, myid1)
{
vip:="Есть"
}else{
vip:="Нет"
}
pro := connect("http://vkobmen2.ru/premium.php","","")
If RegExMatch(pro, myid1)
{
pro:="Есть"
}else{
pro:="Нет"
}
If (pro="Нет"){
Loop, parse, oso, `n
{
If (A_Index >= 10)
{
break
}
load := "`n`n Загрузка " A_Index " из 10. `n`n "
ToolTip %load%
id:=A_LoopField
otvet:= connect("http://vkontakte.ru/al_friends.php",cookie,"act=add_box&al=1&mid=" id)
RegExMatch(otvet, "hash: '(.*?)'", hash)
ToolTip %load%
sleep 3000
otvet:= connect("http://vkontakte.ru/al_friends.php",cookie,"act=add&al=1&hash=" hash1 "&mid=" id)
ToolTip %load%
reg = this, event\)">(.*?) получил
If RegExMatch(otvet, reg, iddata){
If (vkl=1){
TrayTip,VkObmen,%iddata1% получил(а) заявку ^_^ , 10,1
}
}
sleep 3000
}
}
ToolTip
Menu, Tray, NoStandard
menu, tray, Tip,%name%
Menu, tray, add, VkObmen,gl
menu, tray, ToggleCheck,VkObmen
menu, tray, Default, VkObmen
Menu, Tray, Icon
Menu, tray, add,Выход,exit
gui(3)
loop
{
base := connect("http://vkobmen2.ru/index.php?tip=friends","","")
kolvo := count(base)
If (friends = 1){
If (vkl=1){
TrayTip,VkObmen,Обмен друзьями..., 10,1
}
If (pro="Нет"){
loop 15
{
random,rand,1,kolvo
id := line(base,rand)
If (!prov(id)){
otvet:= connect("http://vkontakte.ru/al_friends.php",cookie,"act=add_box&al=1&mid=" id)
RegExMatch(otvet, "hash: '(.*?)'", hash)
sleep 3000
otvet:= connect("http://vkontakte.ru/al_friends.php",cookie,"act=add&al=1&hash=" hash1 "&mid=" id)
reg = this, event\)">(.*?) получил
FileAppend %id%`n, ignore.txt
If RegExMatch(otvet, reg, iddata){
If (vkl=1){
TrayTip,VkObmen,%iddata1% получил(а) заявку ^_^ , 10,1
}
}
If RegExMatch(otvet, "друзей за сутки", iddata){
If (vkl=1){
TrayTip,VkObmen,Вы не можете добавлять так много друзей за сутки., 10,1
break
}
}
sleep 3000
}
}
}
text:= "456qwe" myid1 "456qwe"
md5:=MD5(text,StrLen(text))
otvet := connect("http://vkobmen2.ru/index.php?tip=friends&id=" myid1 "&md5=" md5,"","")
}else{
sleep, 10000
}
If (fan = 1){
fanbase := connect("http://vkobmen2.ru/index.php?tip=fan","","")
fankolvo := count(fanbase)
If (vkl=1){
TrayTip,VkObmen,Обмен подписчиками. .., 10,1
}
If (pro="Нет"){
loop 15{
random,rand,1,fankolvo
id := line(fanbase,rand)
If (!prov(id)){
otvet:= connect("http://vkontakte.ru/id" id,cookie,"")
RegExMatch(otvet, "Profile.toggleFan\(this, '(.*?)'", hash)
sleep, 3000
otvet:= connect("http://vkontakte.ru/al_fans.php",cookie,"act=be_fan&al=1&hash=" hash1 "&mid=" id)
If RegExMatch(otvet,"Отписаться"){
If (vkl=1){
TrayTip,VkObmen,Добавили подписчика id%id% ^_^, 10,1
}
}
FileAppend %id%`n, ignore.txt
sleep, 5000
}
}
}
text:= "456qwe" myid1 "456qwe"
md5:=MD5(text,StrLen(text))
otvet := connect("http://vkobmen2.ru/index.php?tip=fan&id=" myid1 "&md5=" md5,"","")
}else{
sleep, 10000
}
If (club = 1){
clubbase := connect("http://vkobmen2.ru/index.php?tip=club","","")
clubkolvo := count(clubbase)
If (vkl=1){
TrayTip,VkObmen,Обмен вступившими в группу/public..., 10,1
}
If (pro="Нет"){
loop 15{
random,rand,1,clubkolvo
id := line(clubbase,rand)
If (!prov(id)){
otvet:= connect("http://m.vkontakte.ru/club" id,cookie,"")
reg = /groupenter\?pda=1&gid=%id%&hash=(.*?)"
RegExMatch(otvet, reg, hash)
sleep, 3000
otvet:= connect("http://m.vkontakte.ru/groupenter?pda=1&gid=" id "&hash=" hash1,cookie,"")
If (vkl=1){
TrayTip,VkObmen,Вступили в club/public%id%, 10,1
}
FileAppend %id%`n, ignore.txt
}
sleep, 5000
}
}
text:= "456qwe" myclub "456qwe"
md5:=MD5(text,StrLen(text))
otvet := connect("http://vkobmen2.ru/index.php?tip=club&id=" myclub "&md5=" md5,"","")
}else{
sleep, 10000
}
If (like = 1){
likebase := connect("http://vkobmen2.ru/index.php?tip=liked","","")
likekolvo := count(likebase)
If (vkl=1){
TrayTip,VkObmen,Обмен "Мне нравится"..., 10,1
}
If (pro="Нет"){
loop 15{
random,rand,1,likekolvo
id := line(likebase,rand)
If (!prov(id)){
If RegExMatch(id, "wall"){
otvet:= connect("http://vkontakte.ru/" id,cookie,"")
RegExMatch(otvet, "wall.like\('(.*?)', '(.*?)'", hash)
otvet:= connect("http://vkontakte.ru/like.php",cookie,"act=a_do_like&al=1&hash=" hash2 "&object=" id "&wall=1")
}else{
If RegExMatch(id, "photo"){
RegExMatch(id, "photo(.*?)\Z", photo)
otvet:= connect("http://vkontakte.ru/" id,cookie,"")
reg = \{"id":"%photo1%"(.*?)hash":"(.*?)"\}
RegExMatch(otvet, reg, hash)
otvet:= connect("http://vkontakte.ru/like.php",cookie,"act=a_do_like&al=1&hash=" hash2 "&object=" id "&wall=1")
}else{
If RegExMatch(id, "video"){
otvet:= connect("http://vkontakte.ru/" id,cookie,"")
reg = likeHash":"(.*?)"
RegExMatch(otvet, reg, hash)
otvet:= connect("http://vkontakte.ru/like.php",cookie,"act=a_do_like&al=1&hash=" hash1 "&object=" id "&short_view=1")
}else{
If RegExMatch(id, "note"){
otvet:= connect("http://vkontakte.ru/" id,cookie,"")
RegExMatch(otvet, "notes.like\('(.*?)', '(.*?)'", hash)
otvet:= connect("http://vkontakte.ru/like.php",cookie,"act=a_do_like&al=1&hash=" hash2 "&object=" id "")
}
}
}
}
If (vkl=1){
TrayTip,VkObmen,Вам понравилось %id% ^_^, 10,1
}
FileAppend %id%`n, ignore.txt
}
sleep, 5000
}
}
text:= "456qwe" mylike "456qwe"
md5:=MD5(text,StrLen(text))
otvet := connect("http://vkobmen2.ru/like.php?&id=" mylike "&md5=" md5,"","")
}else{
sleep, 10000
}
If (opros = 1){
oprosbase := connect("http://vkobmen2.ru/index.php?tip=opros","","")
oproskolvo := count(oprosbase)
If (vkl=1){
TrayTip,VkObmen,Обмен Голосами в опросе..., 10,1
}
If (pro="Нет"){
loop 15{
random,rand,1,oproskolvo
id := line(oprosbase,rand)
RegExMatch(id, "(.*?)\|(.*?)\Z", var)
id := var1
If (!prov(id)){
If RegExMatch(id, "wall(.*?)\Z"){
RegExMatch(id, "wall(.*?)\Z",id)
otvet:= connect("http://vkontakte.ru/al_wall.php",cookie,"act=post_tt&al=1&post=" id1)
StartPos = 0
loop %var2%
{
StartPos := RegExMatch(otvet, "radiobtn\(this, ([0-9]{1,}),",idopros,++StartPos)
}
reg = hash":"(.*?)"
RegExMatch(otvet, reg,hash)
reg = id":"(.*?)"
RegExMatch(otvet, reg,idhash)
otvet:= connect("http://vkontakte.ru/widget_poll.php",cookie,"act=a_vote&al=1&app=-1&hash=" hash1 "&no_widget=1&option_id=" idopros1 "&poll_id=" idhash1 "&sid=" id1)
}else{
If RegExMatch(id, "topic(.*?)_(.*?)\Z",iclub){
otvet:= connect("http://vkontakte.ru/" id,cookie,"")
StartPos = 0
loop %var2%
{
StartPos := RegExMatch(otvet, "radiobtn\(this, ([0-9]{1,}),",idopros,++StartPos)
}
reg = hash":"(.*?)"
RegExMatch(otvet, reg,hash)
reg = vote_option(.*?)"
RegExMatch(otvet, reg,idhash)
otvet:= connect("http://vkontakte.ru/al_voting.php",cookie,"act=vote&al=1&context=topic&hash=" hash1 "&option_id=" idopros1 "&owner_id=" iclub1 "&voting_id=" idhash1)
}
}
If (vkl=1){
TrayTip,VkObmen,Р’С‹ проголосовалРё РІ %id% ^_^, 10,1
}
FileAppend %id%`n, ignore.txt
}
sleep, 5000
}
}
text:= "456qwe" myopros "456qwe"
md5:=MD5(text,StrLen(text))
otvet := connect("http://vkobmen2.ru/opros.php?&id=" myopros "&md5=" md5,"","")
}else{
sleep, 10000
}
If (video = 1){
videobase := connect("http://vkobmen2.ru/index.php?tip=video","","")
videokolvo := count(videobase)
If (vkl=1){
TrayTip,VkObmen,Обмен Просмотрами видео..., 10,1
}
If (pro="Нет"){
loop 15{
random,rand,1,videokolvo
id := line(videobase,rand)
If (!prov(id)){
otvet:= connect("http://vkontakte.ru/video" id,cookie,"")
reg = hash\\":\\"(.*?)\\"
RegExMatch(otvet, reg,hash)
reg = ([0-9]{1,})_([0-9]{1,})\Z
RegExMatch(id, reg,idhash)
otvet:= connect("http://vkontakte.ru/al_video.php",cookie,"act=inc_view_counter&al=1&hash=" hash1 "&oid=" idhash1 "&vid=" idhash2)
If (vkl=1){
TrayTip,VkObmen,Вы посмотрели %id% ^_^, 10,1
}
FileAppend %id%`n, ignore.txt
}
sleep, 5000
}
}
text:= "456qwe" myvideo "456qwe"
md5:=MD5(text,StrLen(text))
otvet := connect("http://vkobmen2.ru/like.php?&id=" myvideo "&md5=" md5,"","")
}else{
sleep, 10000
}
If(odo="1"){
uzhe :="0"
kolvof:= connect("http://vkontakte.ru/feed.php",cookie,"")
RegExMatch(kolvof, "friends{count=(.*?)}", kolvof)
If (vkl=1){
TrayTip,VkObmen,Начинаем одобрять заявки., 10,1
}
loop{
html := connect("http://vkontakte.ru/friends?section=requests",cookie,"")
sleep 2000
StartPos = 0
While StartPos := RegExMatch(html, "Friends.acceptRequest\(([0-9]{1,}), '(.*?)'", text, ++StartPos)
var%A_Index% := text1
id = %var1%
RegExMatch(html, "Friends.acceptRequest\(" id ", '(.*?)'", hash)
If !hash1
{
break
}
loop
{
id = % var%A_Index%
RegExMatch(html, "Friends.acceptRequest\(" id ", '(.*?)'", hash)
If !hash1
{
break
}
uzhe++
connect("http://vkontakte.ru/al_friends.php",cookie,"act=add&al=1&hash=" hash1 "&mid=" id "&request=1&select_list=1")
sleep, 2000
If (vkl=1){
TrayTip,VkObmen,Одобрили %uzhe% из %kolvof1%., 10,1
}
}
}
If (vkl=1){
TrayTip,VkObmen,Все заявки одобрены., 10,1
}
}
}
return
}
exit:
exitapp
return
gl:
gui(3)
return
friends:
If (friends="0"){
friends := "1"
}else{
friends :="0"
}
return
fan:
If (fan="0"){
fan := "1"
}else{
fan :="0"
}
return
club:
If (club="0"){
club := "1"
gui(4)
}else{
club :="0"
myclub :="0"
}
return
like:
If (like="0"){
like := "1"
gui(5)
}else{
like :="0"
mylike :="0"
}
return
opros:
If (opros="0"){
opros := "1"
gui(6)
}else{
opros :="0"
}
return
video:
If (video="0"){
video := "1"
gui(7)
}else{
video :="0"
}
return
vkl:
If (vkl="0"){
vkl := "1"
}else{
vkl :="0"
}
return
odo:
If (odo="0"){
odo := "1"
}else{
odo :="0"
}
return
vopros:
run http://vkontakte.ru/topic-25257951_24353112 (https://hpc.name/redirector.html#http://vkontakte.ru/topic-25257951_24353112)
return
vip:
run http://vkobmen.ru/?page_id=8 (https://hpc.name/redirector.html#http://vkobmen.ru/?page_id=8)
return
vkobmen.ru:
run http://vkobmen.ru (https://hpc.name/redirector.html#http://vkobmen.ru)
return
filya:
run http://vkontakte.ru/id120366109 (https://hpc.name/redirector.html#http://vkontakte.ru/id120366109)
return
obo:
run http://vkobmen.ru/?p=41 (https://hpc.name/redirector.html#http://vkobmen.ru/?p=41)
return
reklama:
run %reklama%
return
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot