Jump to content

Autoitle Ağ Üzerinde Işlem Yapma


Mehmet
 Share

Recommended Posts

biz bu konuda hiç bir çalışma yapmadık veya örnekler görmedim forumda.
bunun için DriveMapAdd ve DriveMapDel Komutlarıylamı çalışıyoruz.? daha doğrusu autoitde böyle bir fonksiyon varmı ağ üzerinden diğer bilgisayara müdahale etme gibi bir özelliği varmı örneğin ben bu komutu ProcessClose("IEXPLORE.exe") ağda bulunan diğer bilgisayarım için çalıştırmak istiyorum bunun için udfmi kullanmam gerekiyor yoksa diğer bilgisayarıma client olarak bazı kodlarmı yazmamız lazım iletişimi sağlayabilmemiz açısından nasıl bir yol izlemeliyim.
Link to comment
Share on other sites

Ağ işlemleri için TCP Fonksiyonları ve kodları var.Yapmak isteğini client/server şeklinde yapabilirsin.[color=#445563][font=verdana, tahoma, sans-serif]DriveMapAdd[/font][/color] komutları sürücü ile ilgili kodlardır.

Link to comment
Share on other sites

[font="'Times New Roman"][size="3"]Verdiğin sitede işine yarayacak komut yok gibi, autoit forumlarında takılmadığım için yol gösterme konusunda pek yardımcı olamıyacağım. Bu tarz konular daha önce açıldı fakat pek rağbet görülmedi ve tam anlamıyla bilen veya kullanan yok zannediyorum.Zaten autoit forumlarında arayacağıma help dosyasını iyi araştırıp TCP komutlarını bakarım daha çok işime yarar en azından ben öyle düşünüyorum :) Ama sen yine bluelife sor o sana yardımcı olacağını düşünüyorum.[/size][/font]

Link to comment
Share on other sites

Aslında attığın kod tam yapmak istediğini anlatıyor.Programının içinde mesela şöyle bi send yaparsın serverdan "PrcTerm -explorer.exe" client bunu okuduğunda PrcTerm 'in işlemi sonlandıran fonksiyon olduğunu geri kalanın sonlandırılmak istenen şey olduğunu anlar.İllaki direk kod göndermene gerek yok.Veri akışını sağlayabilmek içinde o attığın sayfadaki örneği kullanabilirsin zaten.

Edit: Ve şu blue_life'ın da yakasını bırakın adamın işi gücü var arkadaş sizle mi uğraşsın :) Zaten konuları görünce fikri varsa burda yazıyor iyi niyetini suistimal etmeyin.

Edited by MostWanted
Link to comment
Share on other sites

@MostWanted
anladım yani cliendeki kodlarımızı udf olarak düşünelim serverden giden komut artık herne ise client ona göre cevap verir gibi.[img]http://www.tnctr.com/public/style_emoticons/default/dusun.gif[/img]
orada bir kaç bölüm kod var hangisi serverde hangisi clientde olması gerekiyor.? sanırım TCP.au3 clientde bulunması gereken kodlar doğrumu[img]http://www.tnctr.com/public/style_emoticons/default/dusun.gif[/img]

Edited by MeHMeTBeN
Link to comment
Share on other sites

Evet doğru.Ama server kodlarını göremedim.Aslında daha bir örnek vardı şu olabilir sanırım önceden araştırmıştım.

http://www.autoitscript.com/forum/topic/74325-tcp-udf-event-driven/

Aslında bu değil ama nasıl kod yazacağına örnek teşkil etmesi açısından verdim kolay gelsin.

Link to comment
Share on other sites

bende şuan aynı ağda olan 2 bilgisayar var yanlız ilişkilendirmeyi yapamadım örnek bir ıp girip yukarıdada belirttiğim gibi ProcessClose komutu gibi bir fonksiyon yazıp cliente göndermek için hangisinde hangi fonksiyonu yazacağımı şaşırdım yada bana çok karmaşık geldi bir butona bu görevi atamak için ayrı bir guimi oluşturmamız gerekir ufak bir örnek yazarsan tabi eğer zamanın varsa ben denerim üstad kusura bakma senide uğraştırdım :(

Fonksiyonlar
[codebox]
TCP_Server_Create($iPort, $sIP="0.0.0.0")
_TCP_Server_Broadcast($sData)
_TCP_Server_ClientList()
_TCP_Server_ClientIP($hSocket)
_TCP_Server_DisconnectClient($hSocket)
_TCP_Server_Stop()


_TCP_Client_Create($sIP , $iPort)
_TCP_Client_Stop($hSocket)


_TCP_Send($hSocket, $sText)
_TCP_RegisterEvent($hSocket, $iEvent, $sFunction)

[/codebox]

örnek client

[codebox]
#include "TCP.au3"

ToolTip("CLIENT: Connecting...",10,10)

$hClient = _TCP_Client_Create(@IPAddress1, 88); Create the client. Which will connect to the local ip address on port 88

_TCP_RegisterEvent($hClient, $TCP_RECEIVE, "Received"); Function "Received" will get called when something is received
_TCP_RegisterEvent($hClient, $TCP_CONNECT, "Connected"); And func "Connected" will get called when the client is connected.
_TCP_RegisterEvent($hClient, $TCP_DISCONNECT, "Disconnected"); And "Disconnected" will get called when the server disconnects us, or when the connection is lost.

While 1
; just to keep the program running
WEnd

Func Connected($hSocket, $iError); We registered this (you see?), When we're connected (or not) this function will be called.

If not $iError Then; If there is no error...
ToolTip("CLIENT: Connected!",10,10); ... we're connected.
Else; ,else...
ToolTip("CLIENT: Could not connect. Are you sure the server is running?",10,10); ... we aren't.
EndIf

EndFunc


Func Received($hSocket, $sReceived, $iError); And we also registered this! Our homemade do-it-yourself function gets called when something is received.
ToolTip("CLIENT: We received this: "& $sReceived, 10,10); (and we'll display it)
EndFunc

Func Disconnected($hSocket, $iError); Our disconnect function. Notice that all functions should have an $iError parameter.
ToolTip("CLIENT: Connection closed or lost.", 10,10)
EndFunc

[/codebox]

server
[codebox]
#include "TCP.au3"

ToolTip("SERVER: Creating server...",10,30)

$hServer = _TCP_Server_Create(88); A server. Tadaa!

_TCP_RegisterEvent($hServer, $TCP_NEWCLIENT, "NewClient"); Whooooo! Now, this function (NewClient) get's called when a new client connects to the server.
_TCP_RegisterEvent($hServer, $TCP_DISCONNECT, "Disconnect"); And this,... this will get called when a client disconnects.

While 1

WEnd

Func NewClient($hSocket, $iError); Yo, check this out! It's a $iError parameter! (In case you didn't noticed: It's in every function)

ToolTip("SERVER: New client connected."&@CRLF&"Sending this: Bleh!",10,30)

_TCP_Send($hSocket, "Bleh!"); Sending: "Bleh!" to the new client. (Yes, that's right: $hSocket is the socket of the new client.)

EndFunc
[/codebox]
UDF
[code]http://www.autoitscript.com/forum/index.php?app=core&module=attach&section=attach&attach_id=27297[/code]
Alternatif UDF
[spoiler][codebox]
#cs ----------------------------------------------------------------------------

AutoIt Version: 3.3.0.0
Author: Kip

Script Function:
TCP UDF v3

#ce ----------------------------------------------------------------------------

; Script Start - Add your code below here

#cs

Functions:

_TCP_Server_Create($iPort, $sIP="0.0.0.0")
_TCP_Server_Broadcast($sData)
_TCP_Server_ClientList()
_TCP_Server_ClientIP($hSocket)
_TCP_Server_DisconnectClient($hSocket)
_TCP_Server_Stop()


_TCP_Client_Create($sIP , $iPort)
_TCP_Client_Stop($hSocket)


_TCP_Send($hSocket, $sText)
_TCP_RegisterEvent($hSocket, $iEvent, $sFunction)


Register event values:

$TCP_SEND ; Function ($hSocket, $iError)
$TCP_RECEIVE ; Function ($hSocket, $sReceived, $iError)
$TCP_CONNECT ; Function ($hSocket, $iError) => Client only
$TCP_DISCONNECT ; Function ($hSocket, $iError)
$TCP_NEWCLIENT ; Function ($hSocket, $iError) => Server only


#ce


Global Const $FD_READ = 1
Global Const $FD_WRITE = 2
Global Const $FD_OOB = 4
Global Const $FD_ACCEPT = 8
Global Const $FD_CONNECT = 16
Global Const $FD_CLOSE = 32
Global $hWs2_32 = -1

Global Const $TCP_SEND = 1
Global Const $TCP_RECEIVE = 2
Global Const $TCP_CONNECT = 4
Global Const $TCP_DISCONNECT = 8
Global Const $TCP_NEWCLIENT = 16


TCPStartup()
Global Const $__TCP_WINDOW = GUICreate("Async Sockets UDF")
Global $__TCP_SOCKETS[1][7]






; #FUNCTION# ;===============================================================================
;
; Name...........: _TCP_Server_Create
; Description ...: Initializes the server.
; Syntax.........: _TCP_Server_Create($iPort, $sIP="0.0.0.0")
; Parameters ....: $iPort - The port number the server should listen to.
; $sIP - IP address. (Default = "0.0.0.0")
; Return values .: The socket handle.
; Author ........: Kip
; Modified.......:
; Remarks .......: Only 1 server can be created per script.
; Related .......:
; Link ..........;
; Example .......;
;
; ;==========================================================================================

Func _TCP_Server_Create($iPort, $sIP="0.0.0.0")

Local $hListenSocket = ___ASocket()


___ASockSelect( $hListenSocket, $__TCP_WINDOW, 0x0400, $FD_ACCEPT)
GUIRegisterMsg( 0x0400, "___TCP_OnAccept" )


___ASockListen( $hListenSocket, $sIP, $iPort )

$__TCP_SOCKETS[0][0] = $hListenSocket
$__TCP_SOCKETS[0][1] = 0x0400

Return $hListenSocket

EndFunc





Func ___TCP_OnAccept($hWnd, $iMsgID, $WParam, $LParam)

Local $hSocket = $WParam
Local $iError = ___HiWord( $LParam )
Local $iEvent = ___LoWord( $LParam )

Local $hClient, $uBound

Abs($hWnd) ; Stupid AU3Check...

If $iMsgID = $__TCP_SOCKETS[0][1] Then

If $iEvent = $FD_ACCEPT Then

If Not $iError Then

ReDim $__TCP_SOCKETS[UBound($__TCP_SOCKETS)+1][7]
$uBound = UBound($__TCP_SOCKETS)

$hClient = TCPAccept($hSocket)

___ASockSelect($hClient, $__TCP_WINDOW, 0x0400 + $uBound - 1, BitOR($FD_READ, $FD_WRITE, $FD_CLOSE))
GUIRegisterMsg(0x0400 + $uBound - 1, "___TCP_Server_OnSocketEvent" )

$__TCP_SOCKETS[UBound($__TCP_SOCKETS)-1][0] = $hClient
$__TCP_SOCKETS[UBound($__TCP_SOCKETS)-1][1] = 0x0400 + $uBound - 1

Call($__TCP_SOCKETS[0][6], $hClient, $iError)

Else

Call($__TCP_SOCKETS[0][6], 0, $iError)

EndIf

ElseIf $iEvent = $FD_CONNECT Then

Call($__TCP_SOCKETS[0][4], $hSocket, $iError)

EndIf

EndIf


EndFunc






; #FUNCTION# ;===============================================================================
;
; Name...........: _TCP_Client_Stop
; Description ...: Stops the client.
; Syntax.........: _TCP_Client_Stop($hSocket)
; Parameters ....: $hSocket - Client socket.
; Return values .: Success - True
; Failure - False
; Author ........: Kip
; Modified.......:
; Remarks .......: The client socket is the return value of _TCP_Client_Create().
; Related .......:
; Link ..........;
; Example .......;
;
; ;==========================================================================================

Func _TCP_Client_Stop($hSocket)

Local $iElement, $i

$iElement = 0

For $i = 1 to UBound($__TCP_SOCKETS)-1

If $__TCP_SOCKETS[$i][0] = $hSocket Then
$iElement = $i
ExitLoop
EndIf

Next

If $iElement Then

___ASockShutdown($__TCP_SOCKETS[$iElement][0])
TCPCloseSocket($__TCP_SOCKETS[$iElement][0])

___ArrayDelete($__TCP_SOCKETS, $iElement)

Return True

EndIf

Return False

EndFunc







; #FUNCTION# ;===============================================================================
;
; Name...........: _TCP_Server_Stop
; Description ...: Stops the server, and closes all client connections.
; Syntax.........: _TCP_Server_Stop()
; Parameters ....:
; Return values .: True
; Author ........: Kip
; Modified.......:
; Remarks .......:
; Related .......:
; Link ..........;
; Example .......;
;
; ;==========================================================================================

Func _TCP_Server_Stop()

Local $i

___ASockShutdown($__TCP_SOCKETS[0][0])
TCPCloseSocket($__TCP_SOCKETS[0][0])

$__TCP_SOCKETS[0][0] = ""
$__TCP_SOCKETS[0][1] = ""
$__TCP_SOCKETS[0][2] = ""
$__TCP_SOCKETS[0][3] = ""
$__TCP_SOCKETS[0][4] = ""
$__TCP_SOCKETS[0][5] = ""
$__TCP_SOCKETS[0][6] = ""

For $i = UBound($__TCP_SOCKETS)-1 to 1 Step -1
___ArrayDelete($__TCP_SOCKETS, $i)
Next

Return True

EndFunc






Func ___TCP_Server_OnSocketEvent( $hWnd, $iMsgID, $WParam, $LParam )

Local $hSocket = $WParam
Local $iError = ___HiWord( $LParam )
Local $iEvent = ___LoWord( $LParam )

Local $sDataBuff, $iElement, $i

Abs($hWnd)

$hSocket = 0
$iElement = 0

For $i = 1 to UBound($__TCP_SOCKETS)-1

If $__TCP_SOCKETS[$i][1] = $iMsgID Then
$hSocket = $__TCP_SOCKETS[$i][0]
$iElement = $i
ExitLoop
EndIf

Next

If $hSocket Then

Switch $iEvent
Case $FD_READ

$sDataBuff = TCPRecv($hSocket, 1024)

Call($__TCP_SOCKETS[0][2], $hSocket, $sDataBuff, $iError)

Case $FD_WRITE

Call($__TCP_SOCKETS[0][3], $hSocket, $iError)

Case $FD_CLOSE

___ASockShutdown($hSocket)
TCPCloseSocket($hSocket)

Call($__TCP_SOCKETS[0][5], $hSocket, $iError)

___ArrayDelete($__TCP_SOCKETS, $iElement)

EndSwitch

EndIf


EndFunc






; #FUNCTION# ;===============================================================================
;
; Name...........: _TCP_Server_DisconnectClient
; Description ...: Disconnects a client of the server.
; Syntax.........: _TCP_Server_DisconnectClient($hSocket)
; Parameters ....: $hSocket - Client socket.
; Return values .: Success - True
; Failure - False
; Author ........: Kip
; Modified.......:
; Remarks .......: The client socket is the $hSocket parameter of a _TCP_RegisterEvent callback function.
; Related .......:
; Link ..........;
; Example .......;
;
; ;==========================================================================================

Func _TCP_Server_DisconnectClient($hSocket)

Local $iElement, $i

$iElement = 0

For $i = 1 to UBound($__TCP_SOCKETS)-1

If $__TCP_SOCKETS[$i][0] = $hSocket Then
$iElement = $i
ExitLoop
EndIf

Next

If $iElement Then

___ASockShutdown($hSocket)
TCPCloseSocket($hSocket)

___ArrayDelete($__TCP_SOCKETS, $iElement)

Return True

EndIf

Return False

EndFunc






; #FUNCTION# ;===============================================================================
;
; Name...........: _TCP_Server_ClientList
; Description ...: Returns the sockets of all connected clients.
; Syntax.........: _TCP_Server_ClientList()
; Parameters ....:
; Return values .: An 1 dimensional array of all connected clients.
; Author ........: Kip
; Modified.......:
; Remarks .......:
; Related .......:
; Link ..........;
; Example .......;
;
; ;==========================================================================================

Func _TCP_Server_ClientList()

Local $aReturn[1], $i

For $i = 1 to UBound($__TCP_SOCKETS)-1
If $__TCP_SOCKETS[$i][0] Then
ReDim $aReturn[UBound($aReturn)+1]
$aReturn[UBound($aReturn)-1] = $__TCP_SOCKETS[$i][0]
EndIf
Next

$aReturn[0] = UBound($aReturn)-1

Return $aReturn

EndFunc



; #FUNCTION# ;===============================================================================
;
; Name...........: _TCP_Server_Broadcast
; Description ...: Sends data to all connected clients.
; Syntax.........: _TCP_Server_Broadcast($sData)
; Parameters ....: $sData - The data to send.
; Return values .: True
; Author ........: Kip
; Modified.......:
; Remarks .......:
; Related .......:
; Link ..........;
; Example .......;
;
; ;==========================================================================================

Func _TCP_Server_Broadcast($sData)

Local $i

For $i = 1 to UBound($__TCP_SOCKETS)-1

If $__TCP_SOCKETS[$i][0] Then TCPSend($__TCP_SOCKETS[$i][0], $sData)

Next

Return True

EndFunc





; #FUNCTION# ;===============================================================================
;
; Name...........: _TCP_Client_Create
; Description ...: Creates a new client.
; Syntax.........: _TCP_Client_Create($sIP , $iPort)
; Parameters ....: $sIP - The IP address to connect to.
; $iPort - Port on which the created socket will be connected.
; Return values .: Client socket handle.
; Author ........: Kip
; Modified.......:
; Remarks .......:
; Related .......:
; Link ..........;
; Example .......;
;
; ;==========================================================================================

Func _TCP_Client_Create($sIP , $iPort)

ReDim $__TCP_SOCKETS[UBound($__TCP_SOCKETS)+1][7]

local $hSocket = ___ASocket()

$__TCP_SOCKETS[UBound($__TCP_SOCKETS)-1][0] = $hSocket
$__TCP_SOCKETS[UBound($__TCP_SOCKETS)-1][1] = 0x0400 + (UBound($__TCP_SOCKETS)-1)

___ASockSelect( $hSocket, $__TCP_WINDOW, 0x0400 + (UBound($__TCP_SOCKETS)-1), BitOR( $FD_READ, $FD_WRITE, $FD_CONNECT, $FD_CLOSE ) )
GUIRegisterMsg( 0x0400 + (UBound($__TCP_SOCKETS)-1), "___TCP_Client_OnSocketEvent" )
___ASockConnect( $hSocket, $sIP, $iPort )

Return $hSocket

EndFunc





; #FUNCTION# ;===============================================================================
;
; Name...........: _TCP_RegisterEvent
; Description ...: Registers an event.
; Syntax.........: _TCP_RegisterEvent($hSocket, $iEvent, $sFunction)
; Parameters ....: $hSocket - Socket of the server or a client.
; $iEvent - Event number. It can be any these values:
; * $TCP_SEND
; * $TCP_RECEIVE
; * $TCP_CONNECT => Client only
; * $TCP_DISCONNECT
; * $TCP_NEWCLIENT => Server only
; Return values .: Success - True
; Failure - False
; Author ........: Kip
; Modified.......:
; Remarks .......:
; Related .......:
; Link ..........;
; Example .......;
;
; ;==========================================================================================

Func _TCP_RegisterEvent($hSocket, $iEvent, $sFunction)

Local $iSelected = 0
Local $i

If $__TCP_SOCKETS[0][0] Then

$iSelected = 0

Else

For $i = 0 to UBound($__TCP_SOCKETS)-1
If $__TCP_SOCKETS[$i][0] = $hSocket Then
$iSelected = $i
ExitLoop
EndIf
Next

If Not $iSelected Then Return 0

EndIf

Switch $iEvent
Case $TCP_SEND
$__TCP_SOCKETS[$iSelected][3] = $sFunction
Case $TCP_RECEIVE
$__TCP_SOCKETS[$iSelected][2] = $sFunction
Case $TCP_CONNECT
$__TCP_SOCKETS[$iSelected][4] = $sFunction
Case $TCP_DISCONNECT
$__TCP_SOCKETS[$iSelected][5] = $sFunction
Case $TCP_NEWCLIENT
$__TCP_SOCKETS[$iSelected][6] = $sFunction
Case Else
Return False
EndSwitch

Return True


EndFunc




; #FUNCTION# ;===============================================================================
;
; Name...........: _TCP_Server_ClientIP
; Description ...: Converts a client socket handle to IP address.
; Syntax.........: _TCP_Server_ClientIP($hSocket)
; Parameters ....: $hSocket - Client socket handle.
; Return values .: A string with the IP address.
; Author ........: Unknown
; Modified.......: Kip
; Remarks .......:
; Related .......:
; Link ..........;
; Example .......;
;
; ;==========================================================================================

Func _TCP_Server_ClientIP($hSocket)

Local $pSocketAddress, $aReturn

$pSocketAddress = DllStructCreate("short;ushort;uint;char[8]")
$aReturn = DllCall("Ws2_32.dll", "int", "getpeername", "int", $hSocket, "ptr", DllStructGetPtr($pSocketAddress), "int*", DllStructGetSize($pSocketAddress))
If @error Or $aReturn[0] <> 0 Then Return 0

$aReturn = DllCall("Ws2_32.dll", "str", "inet_ntoa", "int", DllStructGetData($pSocketAddress, 3))
If @error Then Return 0

$pSocketAddress = 0

Return $aReturn[0]

EndFunc





; #FUNCTION# ;===============================================================================
;
; Name...........: _TCP_Send
; Description ...: Sends data to a server or client.
; Syntax.........: _TCP_Send($hSocket, $sText)
; Parameters ....: $hSocket - Client or server socket handle.
; $sText - Data to send.
; Return values .:
; Author ........: Kip
; Modified.......:
; Remarks .......:
; Related .......:
; Link ..........;
; Example .......;
;
; ;==========================================================================================

Func _TCP_Send($hSocket, $sText)

Return TCPSend($hSocket, $sText)

EndFunc



Func ___TCP_Client_OnSocketEvent( $hWnd, $iMsgID, $WParam, $LParam )

Local $iError = ___HiWord( $LParam )
Local $iEvent = ___LoWord( $LParam )

Local $hSocket, $iElement, $i, $sDataBuff

Abs($hWnd)
Abs($WParam)

$hSocket = 0
$iElement = 0

For $i = 1 to UBound($__TCP_SOCKETS)-1

If $__TCP_SOCKETS[$i][1] = $iMsgID Then
$hSocket = $__TCP_SOCKETS[$i][0]
$iElement = $i
ExitLoop
EndIf

Next

If $hSocket Then

Switch $iEvent
Case $FD_READ; Data has arrived!

$sDataBuff = TCPRecv( $hSocket, 1024)

Call($__TCP_SOCKETS[$i][2], $hSocket, $sDataBuff, $iError)

$sDataBuff = ""

Case $FD_WRITE

Call($__TCP_SOCKETS[$i][3], $hSocket, $iError)

Case $FD_CONNECT

Call($__TCP_SOCKETS[$i][4], $hSocket, $iError)

Case $FD_CLOSE

___ASockShutdown( $hSocket )
TCPCloseSocket( $hSocket )

Call($__TCP_SOCKETS[$i][5], $hSocket, $iError)

___ArrayDelete($__TCP_SOCKETS, $iElement)

EndSwitch

EndIf

EndFunc



;==================================================================================================================
;
; Zatorg's Asynchronous Sockets UDF Starts from here.
;
;==================================================================================================================


Func ___ASocket($iAddressFamily = 2, $iType = 1, $iProtocol = 6)
If $hWs2_32 = -1 Then $hWs2_32 = DllOpen( "Ws2_32.dll" )
Local $hSocket = DllCall($hWs2_32, "uint", "socket", "int", $iAddressFamily, "int", $iType, "int", $iProtocol)
If @error Then
SetError(1, @error)
Return -1
EndIf
If $hSocket[ 0 ] = -1 Then
SetError(2, ___WSAGetLastError())
Return -1
EndIf
Return $hSocket[ 0 ]
EndFunc ;==>_ASocket

Func ___ASockShutdown($hSocket)
If $hWs2_32 = -1 Then $hWs2_32 = DllOpen( "Ws2_32.dll" )
Local $iRet = DllCall($hWs2_32, "int", "shutdown", "uint", $hSocket, "int", 2)
If @error Then
SetError(1, @error)
Return False
EndIf
If $iRet[ 0 ] <> 0 Then
SetError(2, ___WSAGetLastError())
Return False
EndIf
Return True
EndFunc ;==>_ASockShutdown

Func ___ASockClose($hSocket)
If $hWs2_32 = -1 Then $hWs2_32 = DllOpen( "Ws2_32.dll" )
Local $iRet = DllCall($hWs2_32, "int", "closesocket", "uint", $hSocket)
If @error Then
SetError(1, @error)
Return False
EndIf
If $iRet[ 0 ] <> 0 Then
SetError(2, ___WSAGetLastError())
Return False
EndIf
Return True
EndFunc ;==>_ASockClose

Func ___ASockSelect($hSocket, $hWnd, $uiMsg, $iEvent)
If $hWs2_32 = -1 Then $hWs2_32 = DllOpen( "Ws2_32.dll" )
Local $iRet = DllCall( _
$hWs2_32, _
"int", "WSAAsyncSelect", _
"uint", $hSocket, _
"hwnd", $hWnd, _
"uint", $uiMsg, _
"int", $iEvent _
)
If @error Then
SetError(1, @error)
Return False
EndIf
If $iRet[ 0 ] <> 0 Then
SetError(2, ___WSAGetLastError())
Return False
EndIf
Return True
EndFunc ;==>_ASockSelect

; Note: you can see that $iMaxPending is set to 5 by default.
; IT DOES NOT MEAN THAT DEFAULT = 5 PENDING CONNECTIONS
; 5 == SOMAXCONN, so don't worry be happy
Func ___ASockListen($hSocket, $sIP, $uiPort, $iMaxPending = 5); 5 == SOMAXCONN => No need to change it.
Local $iRet
Local $stAddress

If $hWs2_32 = -1 Then $hWs2_32 = DllOpen( "Ws2_32.dll" )

$stAddress = ___SockAddr($sIP, $uiPort)
If @error Then
SetError(@error, @extended)
Return False
EndIf

$iRet = DllCall($hWs2_32, "int", "bind", "uint", $hSocket, "ptr", DllStructGetPtr($stAddress), "int", DllStructGetSize($stAddress))
If @error Then
SetError(3, @error)
Return False
EndIf
If $iRet[ 0 ] <> 0 Then
$stAddress = 0; Deallocate
SetError(4, ___WSAGetLastError())
Return False
EndIf

$iRet = DllCall($hWs2_32, "int", "listen", "uint", $hSocket, "int", $iMaxPending)
If @error Then
SetError(5, @error)
Return False
EndIf
If $iRet[ 0 ] <> 0 Then
$stAddress = 0; Deallocate
SetError(6, ___WSAGetLastError())
Return False
EndIf

Return True
EndFunc ;==>_ASockListen

Func ___ASockConnect($hSocket, $sIP, $uiPort)
Local $iRet
Local $stAddress

If $hWs2_32 = -1 Then $hWs2_32 = DllOpen( "Ws2_32.dll" )

$stAddress = ___SockAddr($sIP, $uiPort)
If @error Then
SetError(@error, @extended)
Return False
EndIf

$iRet = DllCall($hWs2_32, "int", "connect", "uint", $hSocket, "ptr", DllStructGetPtr($stAddress), "int", DllStructGetSize($stAddress))
If @error Then
SetError(3, @error)
Return False
EndIf

$iRet = ___WSAGetLastError()
If $iRet = 10035 Then; WSAEWOULDBLOCK
Return True; Asynchronous connect attempt has been started.
EndIf
SetExtended(1); Connected immediately
Return True
EndFunc ;==>_ASockConnect

; A wrapper function to ease all the pain in creating and filling the sockaddr struct
Func ___SockAddr($sIP, $iPort, $iAddressFamily = 2)
Local $iRet
Local $stAddress

If $hWs2_32 = -1 Then $hWs2_32 = DllOpen( "Ws2_32.dll" )

$stAddress = DllStructCreate("short; ushort; uint; char[8]")
If @error Then
SetError(1, @error)
Return False
EndIf

DllStructSetData($stAddress, 1, $iAddressFamily)
$iRet = DllCall($hWs2_32, "ushort", "htons", "ushort", $iPort)
DllStructSetData($stAddress, 2, $iRet[ 0 ])
$iRet = DllCall($hWs2_32, "uint", "inet_addr", "str", $sIP)
If $iRet[ 0 ] = 0xffffffff Then; INADDR_NONE
$stAddress = 0; Deallocate
SetError(2, ___WSAGetLastError())
Return False
EndIf
DllStructSetData($stAddress, 3, $iRet[ 0 ])

Return $stAddress
EndFunc ;==>__SockAddr

Func ___WSAGetLastError()
If $hWs2_32 = -1 Then $hWs2_32 = DllOpen( "Ws2_32.dll" )
Local $iRet = DllCall($hWs2_32, "int", "WSAGetLastError")
If @error Then
;ConsoleWrite("+> _WSAGetLastError(): WSAGetLastError() failed. Script line number: " & @ScriptLineNumber & @CRLF)
SetExtended(1)
Return 0
EndIf
Return $iRet[ 0 ]
EndFunc ;==>_WSAGetLastError


; Got these here:
; http://www.autoitscript.com/forum/index.php?showtopic=5620&hl=MAKELONG
Func ___MakeLong($LoWord, $HiWord)
Return BitOR($HiWord * 0x10000, BitAND($LoWord, 0xFFFF)); Thanks Larry
EndFunc ;==>_MakeLong

Func ___HiWord($Long)
Return BitShift($Long, 16); Thanks Valik
EndFunc ;==>_HiWord

Func ___LoWord($Long)
Return BitAND($Long, 0xFFFF); Thanks Valik
EndFunc ;==>_LoWord


; ========================================= Array functions

; #FUNCTION# ====================================================================================================================
; Name...........: _ArrayDelete
; Description ...: Deletes the specified element from the given array.
; Syntax.........: _ArrayDelete(ByRef $avArray, $iElement)
; Parameters ....: $avArray - Array to modify
; $iElement - Element to delete
; Return values .: Success - New size of the array
; Failure - 0, sets @error to:
; |1 - $avArray is not an array
; |3 - $avArray has too many dimensions (only up to 2D supported)
; |(2 - Deprecated error code)
; Author ........: Cephas <cephas at clergy dot net>
; Modified.......: Jos van der Zande <jdeb at autoitscript dot com> - array passed ByRef, Ultima - 2D arrays supported, reworked function (no longer needs temporary array; faster when deleting from end)
; Remarks .......: If the array has one element left (or one row for 2D arrays), it will be set to "" after _ArrayDelete() is used on it.
; Related .......: _ArrayAdd, _ArrayInsert, _ArrayPop, _ArrayPush
; Link ..........;
; Example .......; Yes
; ===============================================================================================================================
Func ___ArrayDelete(ByRef $avArray, $iElement)
If Not IsArray($avArray) Then Return SetError(1, 0, 0)

Local $iUBound = UBound($avArray, 1) - 1

If Not $iUBound Then
$avArray = ""
Return 0
EndIf

; Bounds checking
If $iElement < 0 Then $iElement = 0
If $iElement > $iUBound Then $iElement = $iUBound

; Move items after $iElement up by 1
Switch UBound($avArray, 0)
Case 1
For $i = $iElement To $iUBound - 1
$avArray[$i] = $avArray[$i + 1]
Next
ReDim $avArray[$iUBound]
Case 2
Local $iSubMax = UBound($avArray, 2) - 1
For $i = $iElement To $iUBound - 1
For $j = 0 To $iSubMax
$avArray[$i][$j] = $avArray[$i + 1][$j]
Next
Next
ReDim $avArray[$iUBound][$iSubMax + 1]
Case Else
Return SetError(3, 0, 0)
EndSwitch

Return $iUBound
EndFunc ;==>_ArrayDelete

[/codebox][/spoiler]

Link to comment
Share on other sites

@MostWanted;
Dediğin doğrudur.BluLife in illaki işi vardır fakat ben buraya yazar diye düşünmüştüm adama ısrar edip yardım etsin diye bir anlam cıkarmayın yani :) Zaten yardım konusunda cömerttir
işi olmasa yazardı niyetiyle ben bluelife sor dedim

Link to comment
Share on other sites

Bi nevi rat yazılımları gibi bişey yapmaya calışıyosun sanırım mehmet abi? Bende cok uğraştımda daha ileri düzey olmadığından bilgim sadece onun keyloggerini yazabildim sana şunu tavsiye edeyim belki bi faydası olur 2 tane konu daha önce gözüme çarpmıştı.
http://www.autoitscript.com/forum/topic/72298-radical-2-beta/
http://www.autoitscript.com/forum/topic/31604-remote-administration-suite/

Birazdan benim üzerinde çalıştığım tcp sent ile keyloggeride paylaşayım.Düzenliyorum kodlarımı bozmuştum düzenlersem koyucam

Link to comment
Share on other sites

Byogulcanında böyle bir çalışması vardı ona da bakabilirsin ama bu verdiğim udf den gitmek istiyorsan şöyle gidebiliriz.İlk önce yolladığım linkdeki TCP.au3 dosyasını indirmen gerekiyor.Fonksiyonlar kısmı bir işine yaramaz :)(Konunun sonunda)

Server.au3:
[code]#include "TCP.au3"

ToolTip("SERVER: Creating server...",10,30)

$hServer = _TCP_Server_Create(88); Server oluşturma

_TCP_RegisterEvent($hServer, $TCP_NEWCLIENT, "NewClient"); Client bağlandığında çalışacak olan fonksiyon
_TCP_RegisterEvent($hServer, $TCP_DISCONNECT, "Disconnect"); Client koptğunda çalışacak fonksiyon

While 1
Sleep(250)
WEnd

Func NewClient($hSocket, $iError); Yo, check this out! It's a $iError parameter! (In case you didn't noticed: It's in every function)

ToolTip("SERVER: New client connected."&@CRLF&"Sending this: Bleh!",10,30)

_TCP_Send($hSocket, "Bleh!");Client bağlandığında gönderilecek veri.İşte buraya PrcTerm gibi komutlar ile cliente veri gönderebilirsin.

EndFunc
[/code]

Client.au3:
[code]
#include "TCP.au3"

ToolTip("CLIENT: Connecting...",10,10)

$hClient = _TCP_Client_Create(@IPAddress1, 88); Create the client. Which will connect to the local ip address on port 88

_TCP_RegisterEvent($hClient, $TCP_RECEIVE, "Received"); Cliente bir veri ulaştığında çalışacak fonksiyon
_TCP_RegisterEvent($hClient, $TCP_CONNECT, "Connected"); Bağlandığında çalışacak fonksiyon
_TCP_RegisterEvent($hClient, $TCP_DISCONNECT, "Disconnected"); Server ile irtibat kesildiğinde çalışacak fonksiyon

While 1
; just to keep the program running
WEnd

Func Connected($hSocket, $iError); We registered this (you see?), When we're connected (or not) this function will be called.

If not $iError Then; If there is no error...
ToolTip("CLIENT: Connected!",10,10); ... we're connected.
Else; ,else...
ToolTip("CLIENT: Could not connect. Are you sure the server is running?",10,10); ... we aren't.
EndIf

EndFunc


Func Received($hSocket, $sReceived, $iError); And we also registered this! Our homemade do-it-yourself function gets called when something is received.
ToolTip("CLIENT: We received this: "& $sReceived, 10,10); Ne ulaştığını $sReceived değişkeniyle alabilirsin.
EndFunc

Func Disconnected($hSocket, $iError); Our disconnect function. Notice that all functions should have an $iError parameter.
ToolTip("CLIENT: Connection closed or lost.", 10,10)
EndFunc

[/code]

Umarım daha iyi olmuştur.Tcp.au3 yanına koyarak bunları kendi bilgisayarında exe yaptığında çalıştığını görebilirsin ;)

Link to comment
Share on other sites

[quote name='Byogulcan' date='11 March 2012 - 18:31 ' timestamp='1331483465' post='1167924']
Bi nevi rat yazılımları gibi bişey yapmaya calışıyosun sanırım mehmet abi? Bende cok uğraştımda daha ileri düzey olmadığından bilgim sadece onun keyloggerini yazabildim sana şunu tavsiye edeyim belki bi faydası olur 2 tane konu daha önce gözüme çarpmıştı.
http://www.autoitscript.com/forum/topic/72298-radical-2-beta/
http://www.autoitscript.com/forum/topic/31604-remote-administration-suite/

Birazdan benim üzerinde çalıştığım tcp sent ile keyloggeride paylaşayım.Düzenliyorum kodlarımı bozmuştum düzenlersem koyucam
[/quote]
amaç keylogger veya rat yazılımlarına benzeyen birşey yapmak değil ne işim var ratla keyloggerle zaten bilgisayarların hepsi elimin altında istediğimi yapıyorum akınsoftla :) buradaki düşüncemiz farklı amacımız farklı karıştırma şimdi rat ve keyloggeri :wacko:

Link to comment
Share on other sites

[quote name='MeHMeTBeN' date='11 March 2012 - 20:19 ' timestamp='1331489980' post='1167987']
amaç keylogger veya rat yazılımlarına benzeyen birşey yapmak değil ne işim var ratla keyloggerle zaten bilgisayarların hepsi elimin altında istediğimi yapıyorum akınsoftla :) buradaki düşüncemiz farklı amacımız farklı karıştırma şimdi rat ve keyloggeri :wacko:
[/quote]

Abi işte demek istediğim o değil demek istediğim ondan yola cıkarak yapılması onunla daha rahat yapıcağından eminim orda bilgisayarı kapat vs var bende suan üzerinde çalışıyorum.Amaç hack değil yani.

Link to comment
Share on other sites

ağdaki bilgisayar facebookda porno izlediği anda ben görüyorum o bilgisayarın chrome.exe veya IEXPLORE.EXEsini kapatabilim yeter bana arkadaş adamlar facebookda porno izliyor nasıl yapıyorlarsa artık 2 adet filtre kurulu ama facebookdan izlendiği için filtre kapatmıyor mecburen manuel akınsoftdan kapatıyorum ama bunu cumartesi pazar o kalabalıkta tek tek kapatması çok zor oluyor

Link to comment
Share on other sites

Bu aralar biraz meşgulum ve bu tip komutları fazla kullanmadığım için konuya mesaj yazmadım. Ayrıca şuan ağımda yok.
Buna rağmen, wmvaredeki sistemden ip vasıtasıyla kendi bilgisayarımda, kendi bilgisayarımdan wmvaredeki bilgisayara ip vasıtasıyla işlem yaptırabiliyorum.

Mantık olarak, server programından client programına mesaj gönderiyoruz ve client programı bu mesaja göre işlem yapıyor.
Ben size bir örnek vereyim. Örnekte önce clientin çalışması lazım. Ayrıca mesajlaşmak istediğiniz bilgisayarın iplerini yazarsınız...
Biraz kurcalayın, kolay gelsin....

[codebox]; ==========================================================
Global $SOCKET
Global $PORT_NUM = 65432
Global $SERVER_IP = "192.168.2.2"
Global $CLIENT_IP = "192.168.2.2"

; ==========================================================

Local $Form1 = GUICreate("BlueLife Test", 161, 33, 192, 124)
Local $Button1 = GUICtrlCreateButton("Server", 0, 0, 75, 25)
Local $Button2 = GUICtrlCreateButton("Client", 75, 0, 75, 25)
GUISetState(@SW_SHOW)

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case -3
Exit
Case $Button1
GUIDelete($Form1)
_Server($SERVER_IP, $PORT_NUM)
Case $Button2
GUIDelete($Form1)
_Client($CLIENT_IP, $PORT_NUM)
EndSwitch
WEnd

; ==========================================================

Func _Server($IP, $Port)
TCPStartup() ; Start The TCP Services

$SOCKET = TCPConnect($IP, $Port)
;If $SOCKET = -1 Then Exit
If @error Then
MsgBox(0, "Server", "Unable to Contact Client!")
Exit
EndIf

Local $SERVER_GUI = GUICreate("Server_Test_Blue_Life", 300, 200)
GUISetOnEvent(-3, "_EXIT")

Local $SERVER_INPUT = GUICtrlCreateInput("iexplore.exe", 0, 0, 253, 20)
Local $SERVER_BTN = GUICtrlCreateButton("Gönder", 255, 0, 45, 20)
GUICtrlSetBkColor(-1, 0x0000FF)
GUICtrlSetColor(-1, 0xFFFFFF)

Local $SERVER_EDIT = GUICtrlCreateEdit("", 0, 20, 300, 180)
GUISetState(@SW_SHOW, $SERVER_GUI)

Local $READ_MSG
While 1
Switch GUIGetMsg()
Case -3
Exit
Case $SERVER_INPUT, $SERVER_BTN
$READ_MSG = GUICtrlRead($SERVER_INPUT)
TCPSend($SOCKET, StringToBinary($READ_MSG, 4))

GUICtrlSetData($SERVER_EDIT, $READ_MSG & @CRLF, 1)
GUICtrlSetData($SERVER_INPUT, "")
EndSwitch
WEnd
EndFunc ;==>_Server

; ==========================================================

Func _Client($IP, $Port)
TCPStartup() ; Start The TCP Services
Local $C_SOCKET = TCPListen($IP, $Port, 4)
If @error Then
MsgBox(16, "Client bağlantı hatası", "ip=:" & $IP & @CRLF & "port:" & $Port)
Exit
EndIf

While 1
$SOCKET = TCPAccept($C_SOCKET)
If $SOCKET > 0 Then ExitLoop
Sleep(25)
WEnd

Opt("GUIOnEventMode", 1)
Local $CLIENT_GUI = GUICreate("Client_Test_Blue_Life", 300, 200)
GUISetOnEvent(-3, "_EXIT")
Local $CLIENT_EDIT = GUICtrlCreateEdit("", 0, 0, 300, 200)
GUISetState(@SW_SHOW, $CLIENT_GUI)

Local $READ_MSG
While 1
$READ_MSG = TCPRecv($SOCKET, 256)
If $READ_MSG <> "" Then
$READ_MSG = BinaryToString($READ_MSG, 4)
GUICtrlSetData($CLIENT_EDIT, $READ_MSG & @CRLF, 1)
Switch $READ_MSG
Case "iexplore.exe"
While ProcessExists("iexplore.exe")
ProcessClose("iexplore.exe")
Sleep(50)
WEnd
EndSwitch
EndIf
Sleep(25)
WEnd
EndFunc ;==>_Client

Func _EXIT()
TCPCloseSocket($SOCKET)
TCPShutdown()
Exit
EndFunc ;==>_EXIT[/codebox]

Link to comment
Share on other sites

blue_life nasıl kullanıyoruz olmadı bende
Global $SOCKET
Global $PORT_NUM = 65432
Global $SERVER_IP = "192.168.1.149"
Global $CLIENT_IP = "192.168.1.148"

olarak ayarladım ıp adreslerimde doğru önce compile edip client bilgisayara atıp orada çalıştırdım ve client butonuna tıkladım ve sonra 192.168.1.149 olan bilgisayarımda server'i çalıştırdım ama Unable to Contact Client! hatası veriyor

Link to comment
Share on other sites

Misal sen server olan bilgisayarda cliente bağlanacaksan, clientin ipsini girmelisin. Clientin çalıştığı bilgisayarda da haliyle bilgisayarın ipsi kullanılacak.

Global $SERVER_IP = "192.168.1.148" ;Bağlanılacak clientin ipsi
Global $CLIENT_IP = "192.168.1.148" ;clientin çalıştığı bilgisayarın ipsi

Dediğim gibi bu komutlar ile fazla ilgili deyilim :(

Link to comment
Share on other sites

[quote name='blue_life' date='12 March 2012 - 23:20 ' timestamp='1331583600' post='1168598']
Misal sen server olan bilgisayarda cliente bağlanacaksan, clientin ipsini girmelisin. Clientin çalıştığı bilgisayarda da haliyle bilgisayarın ipsi kullanılacak.

Global $SERVER_IP = "192.168.1.148" ;Bağlanılacak clientin ipsi
Global $CLIENT_IP = "192.168.1.148" ;clientin çalıştığı bilgisayarın ipsi

Dediğim gibi bu komutlar ile fazla ilgili deyilim :(
[/quote]
ben servere server ıpsi cliente client ıpsi vermişim oldu şimdi teşekkürler üstad bunu birkaç bilgisayar için nasıl yapabiliriz yani ikiden fazla olursa

Link to comment
Share on other sites

@MeHMeTBeN

Malesef ağım olmadığı için, deneme imkanım yok ama teorik olarak, serverde kullanılacak clientlerin ip adresleri listelenebilir ve bir seçim sağlanır.
Clientte ise, $CLIENT_IP değişkenine, $CLIENT_IP = @IPAddress1 şeklinde ayarlamam iş görebilir... Denemek lazım :)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...