| Hacks & Crackmes Tests, Fragen oder Hilfestellungen. Crackmes und Hackits werden hier diskutiert. |
Diskussion: Fremde .dll ansprechen/benutzen bzw. vorab Syntax herausfinden im Forum Hacks & Crackmes, in der Kategorie Software Home; Anzeige Hallo, ich habe wieder einmal eine sehr komplizierte Frage. Wie kann man denn eine fremde .dll ansprechen/steuern/benutzen, wenn man ...
![]() |
| | #1 (permalink) |
| Registriert seit: 03.10.11 ![]() Likes: 0 | Anzeige Hallo, ich habe wieder einmal eine sehr komplizierte Frage. Wie kann man denn eine fremde .dll ansprechen/steuern/benutzen, wenn man nicht einmal die Deklaration/den zugehörigen Syntax kennt? Benutzt man API-SPY, PE-EXPLORER oder Dependency-Walker, dann kann man ja sehr schön die numerisch/alphabetisch aufgelisteten Funktionen in den Exports erkennen. Auch im HexEditor kann man diese Funktionen einfach herauslesen. Soweit so gut, denn dies ist kein Problem. Nimmt man jetzt "übliche" .dll her (z.B. advapi32.dll usw.) und lädt diese, dann kann man neben den Funktionen auch den Syntax lesen. Aufgrund des Syntax kann man dann in VB6, VB.NET, Delphi, C++ usw. einen Code schreiben bzw. diese .dll ansteuern. Klar, meistens gibt es auch noch eine Dokumentation zur .dll. Soweit so gut... Ja, was mache ich denn nun, wenn ich eine fremde .dll benutzen möchte, die Funktionen zwar erkenne/sehe/auslesen kann, aber beim Syntax "nichts" bzw. "(not available)" steht. Besagte Fremdanwendungen benutzen ja die .dll. Demnach "muss" es ja auch einen Aufruf und eine Deklaration gehen. Nur wie finde ich dies nun heraus? Ich kann ja nicht alle Variablen durchgehen und irgendetwas zuweisen, wenn ich nicht einmal weiß was Sache ist. Wie geht man da vor bzw. wie kann man fremde .dlls dennoch benutzen? Mir geht es einfach darum, dass es bereits fertige .dlls gibt und ich Funktionen nutzen möchte. Danke Hier die .dll http://linkcrypt.ws/dir/434u2zka187hw68 Geändert von Enforcer (24.01.12 um 00:05 Uhr) |
| | |
| | #2 (permalink) |
| Registriert seit: 26.01.11 ![]() Likes: 9 | Disassemble doch die DLL mal mit objdump o.ä.. Dann ordne die Exports der DLL mal den jeweiligen Addressen im Code zu, dann hast du deine Funktionen aus denen du Rückschluss auf benutzte Variablen und Parameter ziehen kannst. Wäre mein Vorschlag
__________________ http://sourceforge.net/projects/my-connect/ |
| | |
| HaBOT | - Anzeige - |
| |
| | #3 (permalink) |
| Themenstarter Registriert seit: 03.10.11 ![]() Likes: 0 | Hallo fabuloes, vielen Dank für deinen Rat und deine Antwort. Allerdings wäre mir sehr damit geholfen, wenn du mir evtl. ein Beispiel als Anreiz/Tipp geben könntest. Die Funktionen habe ich ja bereits im PE-Explorer, API-SPY, Dependency-Walker usw. erkannt. Aber wie kann ich denn Rückschlüsse auf verwendete Parameter und Variablen schließen? Da stehe ich jetzt im Moment etwas auf dem Schlauch. Kann man wohl deutlich erkennen, ob es "Byval as Long, Byval as String, Bval as Integer, As Long, Byref" usw. ist? Echt? Also, dies wundert mich, denn dann bin ich scheinbar doch noch sehr weit am Anfang ;-( Nun denn, ich lerne immer stets dazu und bin wissbegierig. Nehmen wir zum Beispiel die im Beispiel genannte .dll (meine Problem .dll): Dort steht zum Beispiel bei Ord #3 die Funktion "SM_VstLinkGetUniqueID". Und du meinst jetzt, dass ich die kompletten Parameter mit OllyDBG auslesen kann? Wow. Soweit war ich dann doch noch nicht. Also kann ich dann komplett ein Ergebnis, wie z.B: Private Declare Function SM_VstLinkGetUniqueID LIB "vstdll.dll" (Byval path as String, Byval ID as Integer) ableiten? Nur ein Beispiel^^ Noch eine Zusatzfrage: Was mache ich denn, wenn ich Funktionen erkenne und auch noch den dazugehörigen Syntax in c++, aber die Funktionen mit Sonderzeichen und Kauderwelsch beginnen und so im Code nicht deklariert werden können? Zum Beispiel gibt es in einer anderen .dll Funktionen, die eben alle mit "??" beginnen. Wenn ich nun so deklarieren möchte: Private Declare Function ??ܧ%UniqueVSTID@mm78 LIB "123.dll" Dann haut mir VisualBasic einen Fehler hinein! Okay, Danke erst einmal. Ich teste/taste mich einmal heran und versuche erst einmal Problem 1 zu lösen. P.S. Tutorials und Links sind gerne gesehen! objdump kannte ich noch gar nicht. Suche ich gerade... Geändert von Enforcer (24.01.12 um 18:18 Uhr) Grund: Edit: |
| | |
| | #4 (permalink) | ||
| Senior Member Registriert seit: 13.07.08 ![]() ![]() ![]() Likes: 85 | Dein Request ist mit hoher Wahrscheinlichkeit illegal. SM_VstLinkGetUniqueID -> Zitat:
Zitat:
__________________ "It is the human race! The deterioration of the spirit of man. Man undermining himself, causing a self-willed, self-imposed, self-evident self-destruction."+++ BREAKING +++ Troll ertrinkt im Planschbecken +++ | ||
| | |
| | #5 (permalink) |
| Moderator ![]() Registriert seit: 20.07.05 ![]() ![]() ![]() ![]() ![]() ![]() Likes: 202 | Die "übliche" Vorgehensweise ist Reverse Engineering. Entweder disassembliert man die DLL und "rät" die Parameter, so wie die Rückgabewerte (klappt i.d.R nur bei einfachen Funktionen). Oder man debuggt die Anwendung, die die DLL nutzt - speziell die Aufrufe. Da man die Übergabeparameter vor und nach dem Aufruf einsehen kann, wird das "Ratespiel" um einiges leichter. Wenn die Funktionen so anfangen: Code: ??ܧ%UniqueVSTID@mm78 LIB Diese sollten eigentlich von Dependency-Walker oder CFFExplorer "decodiert" werden können: z.B Code: ?wclog@std@@3V?$basic_ostream@_WU?$char_traits@_W@std@@@1@A -> class std::basic_ostream<wchar_t,struct std::char_traits<wchar_t> > std::wclog Bei "unleserlichen" Bezeichnern mit Sonderzeichen könnte man entweder versuchen Escapezeichen/ASCII Codierung zu nutzen oder zur Laufzeit importieren (LoadLibary und GetProcAddress) und aufrufen: Dynamic-link library - Wikipedia, the free encyclopedia
__________________ Noch mal, für alle Pseudo-Geeks: 1+1=0. -> 10 wäre Überlauf! Selig, wer nichts zu sagen hat und trotzdem schweigt. |
| | |
![]() |
| Stichworte |
| api, deklarationen, dll, funktionen |
| - Anzeige - | |
| |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Zugriff auf fremde Festplatte | Malo | Network · LAN, WAN, Firewalls | 9 | 25.06.07 15:38 |
| Fremde Applikation | tripleXXX | Virenschutz · Tools & Aggressive Software | 3 | 25.05.06 06:51 |
| Speicherzugriff auf fremde Programme | Xalon | Code Kitchen | 4 | 07.04.06 15:01 |
| "fremde" Ressourcen editieren Vb.net | THRALL | Code Kitchen | 4 | 25.10.05 19:47 |