PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [VB.NET] Dll nach Droppen immer Kaputt



hackerking
07.06.2009, 19:02
Jo Hey Leute..
Also. Ich habe nen Steam Stealer geschrieben. Der soll auch die steam.dll droppen. jedoch schrottet er sie wohl anscheinend immer beim droppen...
denn wenn ich die steam.dll manuell rein kopieren und den stealer starte funktioniert alles. wenn ich jedoch mit dem stealer die dll droppe, dann krieg ich den fehler:


Es wurde versucht, eine Datei mit einem falschen Format zu laden. (Ausnahme von HRESULT: 0x8007000B)Mein Code sieht so aus (zum droppen):

If File.Exists(StartupPath.ToString & "\Steam.dll") Then Kill(StartupPath.ToString & "\Steam.dll")
Dim SteamDll() As Byte = My.Resources.Steam

FileOpen(1, StartupPath.ToString & "\Steam.dll", OpenMode.Binary)
FilePutObject(1, SteamDll)
FileClose(1)

Kolabi
07.06.2009, 19:16
blog.mstern.at/index.php?/archives/67-Error-HRESULT-0x8007000B-loading-a-precompiled-dll.html (http://blog.mstern.at/index.php?/archives/67-Error-HRESULT-0x8007000B-loading-a-precompiled-dll.html)

hackerking
07.06.2009, 19:21
Ich bneuze aber 32 Bit... Und die dll ist auch 32 Bit

Kaspersky
07.06.2009, 21:12
Entpack die dll mal so:

IO.File.WriteAllBytes("Steam.dll", My.Resources.SteamDll)

Wenn es das ist was du willst.

inmate
07.06.2009, 21:20
probier mal so:

Dim writedll As New IO.BinaryWriter(New IO.FileStream("steam.dll", IO.FileMode.Create)
writedll.Write(My.Resources.steam)
writedll.Close()

hackerking
12.06.2009, 18:28
ok danke, aber bei euren beiden methoden klappt es nie beim debuggne. erst wenn ich die exe manuell starte...

inmate
12.06.2009, 23:05
Hm also das einzige was ich noch wüsste wäre das du mal versuchen solltest die steam.dll in den System32 Ordner zu entpacken.Wirst du eh müssen , da es sonst meines Wissens nach nicht gehen wird ;)

hackerking
13.06.2009, 19:11
Doch es geht auch wenn die dll im selben ordner is :P
ausserdem würd ich das mit dem sys32 folder eh nich machen, weil wenn vista etc: fail. ausserdem klappt es dort auch nich :D

Sawyer
13.06.2009, 20:13
Warum die dll Droppen ? setze doch den Pfad zur dll im StreamVerzeichniss , das müsste eigentlich funktionieren

MfG

hackerking
13.06.2009, 20:55
Wo ist das StreamVerzeichniss?^^

Sawyer
13.06.2009, 20:59
Wo ist das StreamVerzeichniss?^^

Lese es einfach aus der Registry , ist die beste möglichkeit


Dim SteamPfad As String = My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINE\SOFTWARE\Valve\Steam", "InstallPath", String.Empty)

MfG

hackerking
14.06.2009, 11:54
du hast StReamVerzeichniss gesagt deswegen hab ich gefragt xD^^
Wo das Steam verzeichniss ohne R ist weiß ich auch^^ also wie ich's auslesen kann

inmate
14.06.2009, 12:08
Und dann verschiebe die dll aus dem steamverzeichniss in den system32 ordner.

Sirect
14.06.2009, 12:11
Warum soll er nicht einfach die dll im Steamverzeichnis benutzen? Warum verschieben?

inmate
14.06.2009, 12:26
Weil sonst das PW nicht entschlüsselt wird.

hackerking
14.06.2009, 12:29
@inmate
habs probiert mit dem verschieben, jedoch krieg ich dann beim Debuggen den error das die steam.dll nicht vorhanden ist (obwohl sie da ist, und hab auch danach ein DoEvents drin), und ausserhalb der IDE sagt der stealer einfach das er das passwort nich entschjlüsseln konnte :(

inmate
14.06.2009, 13:13
Hm genau das passiert nämlich wenn die Steam.dll nicht im system32 Ordner ist.
Klappt es denn wenn du die steam.dll manuel verschiebst ?


edit: ich weis was falsch ist glaube ich.
Du rufst die Funktion ja zuerst auf also Steamdecryptdataforthismachine oder so^^.
Zu der Zeit befindet sich aber noch garkeine Steam.dll im Ordner oder ?
Mache doch ne move sub und rufe sie direkt am anfang auf.
vllt gehts dann.


mfG

hackerking
14.06.2009, 14:03
das ich sie nich ins sys32 ordner packen will liegt ja an UAC...
wenn ich sie manuell verschiebe klappt es. ja...

EDIT// Wie meinst das im EDIT?

inmate
14.06.2009, 14:17
Also die Funktion braucht die steam.dll im System32 Ordner.
Zu dem Zeitpunkt liegt sie aber noch nicht dort.
Sie wird ja erst später verschoben.
Deswegen kommt ne Fehlermeldung das ,das PW nicht entschlüsselt werden konnte.
Denke ich.

mfG

EBFE
14.06.2009, 15:04
die DLL braucht nur im selben Ordner wie die Exe zu sein. Reihenfolge der DLL Suche: aktueller Ordner, danach die Ordner, die in der Umgebungsvariable PATH eingetragen sind (kann jeder selbt nachsehen: in der CMD einfach PATH eingeben).

hackerking
14.06.2009, 15:26
Das Problem ist ja das es bei beiden ordnern nicht klappt. (also sys32 und im selben ordner) im sys32 ordner klappts. jedoch nicht in der IDE... ich muss aber wegen UAC die in denselben ordner packen...