PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mein X-MAS RAT problem :( -Klick-



HandyRipper
19.01.2009, 20:36
Hallöle,
hab mal versucht einen RAT zucoden!

Das ergebnis sind 3 fehler!

1.Der server läauft nur wenn man als IP "localhost" eingibt!
-Bei IP oder No-IP kommt ein fehler :(

2.Der Client sendet an den Server immer Leerzeichen ohne ände ..statt:

Hallo
Hallo

kommt:
Hallo







Hallo
:(

3.Wenn ich "Hallo wie gehts dir " sende kommt das auch an! Aber wenn ich einen 2ten befehl sende z.b. "Close" kommt : "Close wie gehts dir"

Bei keinen der Probleme hab ich eine lösung gefunden :(

Also hoffe ich ihr könnt mir helfen! Und bitte kein dummes rumgespame etc!

Ich mach den Soure mal pup da ich denke die kiddys können sobieso nix mit machen <.<

Client:

Imports System.Net.Sockets
Imports System.Text
Imports System.Threading
Public Class Form1

Dim TCPClient As New TcpClient

Private Sub Verbinden()

Dim NetzwerkStrom As NetworkStream
Dim SendeDaten As [Byte]() = Encoding.ASCII.GetBytes("Ihnen wurde etwas gesendet : Verbunden!(Client)")

If Label19.Text = "0" Then
ToolStripStatusLabel1.Text = "Verbunden!"
ToolStripStatusLabel1.ForeColor = Color.Green
Label17.Visible = True
Label18.Visible = False


Button4.Enabled = True
Button3.Enabled = False

Dim IP As String
IP = TextBox2.Text

Try
TCPClient.Connect(IP, 60123)
Catch
Console.WriteLine("Ziel Computer verweigerte den Zugriff!")
End Try

NetzwerkStrom = TCPClient.GetStream()

If NetzwerkStrom.CanWrite And NetzwerkStrom.CanRead Then
NetzwerkStrom.Write(SendeDaten, 0, SendeDaten.Length)
Dim bytes(TCPClient.ReceiveBufferSize) As Byte
NetzwerkStrom.Read(bytes, 0, CInt(TCPClient.ReceiveBufferSize))
Dim Empfangen As String = Encoding.ASCII.GetString(bytes)
MsgBox((Empfangen))
Else
If Not NetzwerkStrom.CanRead Then
MsgBox("Kann wegen fehler keine Daten mehr lesen!")
TCPClient.Close()
Else
If Not NetzwerkStrom.CanWrite Then
MsgBox("Kann wegen fehler keine Daten mehr schreiben!")
TCPClient.Close()
End If
End If
End If
Label19.Text = "1"
Exit Sub
End If

NetzwerkStrom = TCPClient.GetStream()

Dim Daten As String
Daten = TextBox4.Text

SendeDaten = Encoding.ASCII.GetBytes(Daten)
NetzwerkStrom.Write(SendeDaten, 0, SendeDaten.Length)

bla...blaaa...

Server:

Imports System.Net.Sockets
Imports System.Net
Imports System.Text
Imports System.Net.DnsPermissionAttribute
Imports System.Security.Permissions
Imports System.Threading
Module Module1
Sub Main()

Dim Port As Integer = 60123
Dim TCPListener As New TcpListener(CType(Dns.Resolve("84.169.83.23").AddressList(0), IPAddress), Port)

TCPListener.Start()
Console.WriteLine("TCPListener , Running! Warte auf Verbindung...")

Try

Dim TCPClient As TcpClient = TCPListener.AcceptTcpClient()
Dim NetzwerkStrom As NetworkStream = TCPClient.GetStream()
Dim bytes(TCPClient.ReceiveBufferSize) As Byte
NetzwerkStrom.Read(bytes, 0, CInt(TCPClient.ReceiveBufferSize))
Dim Empfangen As String = Encoding.ASCII.GetString(bytes)
Console.WriteLine((Empfangen))
Dim SendeDaten As String = "Ihnen wurde etwas gesendet : Verbunden!(Listener)"
Dim Senden As [Byte]() = Encoding.ASCII.GetBytes(SendeDaten)
NetzwerkStrom.Write(Senden, 0, Senden.Length)

Dim Baum As Boolean = False

While Baum = False
Thread.Sleep(1000)
Empfangen = ""
NetzwerkStrom.Read(bytes, 0, CInt(TCPClient.ReceiveBufferSize))
Empfangen = Encoding.ASCII.GetString(bytes)
Console.WriteLine((Empfangen))

If Empfangen = "Close" Then
End
End If

If Empfangen = "MsgBox" Then
MsgBox("Mein RAT funzt!")
End If

If Empfangen = "MsgBox2" Then
MsgBox("Ich hab dich lieb!")
End If
End While

Catch
Console.WriteLine("Es gab einen Fehler!")
Console.ReadLine()
End Try
End Sub

----------------------------------------------------

Ich hoffe echt das mir hier einer helfen kann :(

MFG!

Bozok
19.01.2009, 21:02
du solltest bedenken das dein Socket garnicht so schnell senden geschweige denn buffern kann :) wenn du sleep machst 200 ms sollte es gehn :)

blackberry
19.01.2009, 21:19
Auch wenn das jetzt eher Hilfe von einem "Außenstehenden" ist, denke ich die Lösung(en) für zumindest zwei deiner Probleme gefunden zu haben...


1.Der server läauft nur wenn man als IP "localhost" eingibt!
-Bei IP oder No-IP kommt ein fehler :(

Ein Host-Name ist keine direkte Adresse eines Computers.
Dein Code sieht wie folgt aus:

IP = TextBox2.Text

Try
TCPClient.Connect(IP, 60123)Wenn man nun "www.google.com" eingibt, wird versucht, zu einem Computer mit der IP "www.google.com" zu verbinden, was folglich nur schief gehen kann.
Vielleicht interessiert dich folgende Funktion aus dem WSAPI (eigentlich aus dem Berkeley Socket API, aber von Windows, wie auch von vielen anderen, einfach übernommen):
http://msdn.microsoft.com/en-us/library/ms738524(VS.85).aspx (http://msdn.microsoft.com/en-us/library/ms738524%28VS.85%29.aspx)
Eventuell hilft dir auch was du beim Server verwendet hast:
Dns.Resolve (ich kenne mich mit den ganzen Visual * Sprachen und dem .NET-Framework eben nicht so aus)
localhost funktioniert deshalb, weil er als alias für 127.0.0.1 in der Host-Konfiguration von Windows (und vielen anderen Betriebsystemen) eingetragen ist.


3.Wenn ich "Hallo wie gehts dir " sende kommt das auch an! Aber wenn ich einen 2ten befehl sende z.b. "Close" kommt : "Close wie gehts dir"

Meine Vermutung:
Sowas kommt meißtens vor, wenn du deinen Puffer mit Inhalt füllst, ohne diesen vorher gesäubert zu haben - es wird also einfach nur der erste Teil überschrieben und der Rest bleibt mit dabei.


mfG. BlackBerry


EDIT: CODE-Tags könnten deinen Beitrag auch übersichtlicher gestalten...

Sirect
22.01.2009, 20:46
Ich hoffe dir ist klar dass das Entwickeln und Verbreiten von Trojanern unter Gefängnisstrafe steht.

HandyRipper
22.01.2009, 20:54
Ich hoffe dir ist klar dass das Entwickeln und Verbreiten von Trojanern unter Gefängnisstrafe steht.

lol....dann nenne ich das ding halt RAT und schon ist das entwickeln wieder legal...xD Und das verbreiten...ja weiß ich =)

Versuche dem nächst mal eure tipps anzuwenden =)
-THX