Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

hi.

Eine Frage an euch Profis :)

Ich habe eine DLL-Datei, aus der ich eine bestimmte Funktion entfernen möchte bzw. diese Funktion soll einfach "nichts" mehr tun.

Wie bekomme ich das am einfachsten hin, ohne den eigentlichen Quellcode zu haben?

Kann ich mit irgend einem Editor die datei öffnen und an die gewünschte stelle springen?

Hab bisher mit DLLs noch keine wirklichen erfahrungen gehabt :/

Hab schon Reverse-Engineering-Tools ausprobiert, aber... geht das nicht irgendwie einfacher, wenn ich schon genau weiß, was die DLL nicht mehr machen soll und wie die spezielle Funktion heißt, die geändert werden soll?

Oder kann ich irgendwie einen Ramen um diese DLL programmieren, der diesen funktionsaufruf abfängt und bearbeitet?

Freue mich über jede Hilfe, die ich kriegen kann :D

LG

XspYroX

  • Autor

@Guybrush Treepwood:

Hehe, ich spreche nur gebrochen Binärcode mit Hex-Akzent ;)

Ne, Spass beseite...

Also..hmm... dann müsste ich wohl ne Wrapper-DLL schreiben.

Frage:

Da ich ja nur eine einzige Funktion weiterleiten möchte, sollte die Wrapper-DLL ja eigentlich recht einfach aussehen, oder?

Also sowas wie:

(pseudocode)


if [function.name == "spezielle_funktion"] then

(

// nothing

)

else

(

call eigentliche_dll.function.name

)

Kann ich sowas auch ohne Kenntnisse im DLL-Programmieren hinbekommen? Kenne mich "nur" mit VB, C (commandbox-ebene), C++(commandbox-ebene) und PHP uns.w. aus.

Oder hast du vielleicht eine tutorial-seite, die mir da weiterhilft? Wie gesagt.... ich woltle das eigentlich hinbekommen, ohne das ganze drumherum über DLL-Programmierung zu erlernen. Bin gerade mit anderen Programmier-Sachen beschäftigt ^^"

Dankööö schonmal :)

LG

XspYroX

  • Autor

Gerne :)

Also:

Ich nutze ein MediPlayer-Plugin der Firma UMedia (Unreal Media Player plugin , ist ein Active-X Plugin) zum abgreifen und darstellen von Live-Streams im Browser-Fenster (nur im InternetExplorer, drumherum ist PERL).

Das Plugin aktualisiert sich zu bestimmten Momenten (entweder trigger ich es per Hand oder der Stream bricht ab. Bei Abbruch versucht das Plugin in bestimmten Zeitabständen selbst die Wiederherstellung der Verbindung).

Allerdings wird bei jeder aktualisierung automatisch (durch die DLL, steht nirgendwo als Config-Option) der Windows-Focus auf das IE-Frame gesetzt. D.h. wenn ich gerade nebenbei nen Text tippe, dann fleigt der Focus ständig aus Word raus auf das IE-Frame.

Generell Focus-Änderungen beim IE oder allen Ective-X Plugins zu deaktivieren/verhindern habe ich erfolglos versucht. Viele andere haben dieses Problem, aber nirgendwo gibt es eine Lösung (für Windows 7).

Ich habe die DLL in Vosual Studio geladen und dort wurden mir die vorhandenen Funktionen derDLLL angezeigt (nur die Funktionen. weder code noch war etwas zu editieren). Dort habe ich die "BringToFocus()" (oder so ähnlich) gefunden, die laut Beschreibung eben das macht, nämlich den Z-Index festzulegen.

Wenn ich es also schaffe, diese Function "funktionslos" zu machen, dann sollte der Focus nicht mehr springen sondern auf dem aktuell ausgewählten Element bleiben :)

Falsl du natürlich einen anderen weg kennst, wie man dieses Active-X Plugin am Focusändern hindert, dann nur her damit. Würdest mir damit nen Haufen Arbeit und Ärger ersparen :D

LG

XspYroX

  • Autor
Ist ganz einfach... Datei mit einem Disassembler laden und die Funktionsaufrufe oder die Funktion mit nop füllen.

Klingt einfacherals es für mich ist ;)

Hab jetzt gerade die DLL-Datei mit dem Tool "ollydbg" geöffnet und sehe ähnliches Brain**** wie bei "WDASM" (hatte WDASM davor schonmal probiert) ;)

So wie ich das sehe, finden sich dort aber nicht die klartext-function-names wie in meinem Fall "bringToFocus", oder? Oder bin ich nur gerade mit dem ganzen Code überfordert?

edit: Wenn ich die DLL mit "ollydbg" öffnen will kommt die Meldung "File blabla.dll is a Dynamic Link Library. Windows can't execute DLLs directly. Launch LOADDLL.EXE?

Hab da immer ja angeklickt, aber ... lädt er dann überhaupt die DLL? Oder lädt er nur den Code der LOADDLL.EXE?

LG

XspYroX

Die Frage ist, ob dies zulässig ist.

Ansonsten die benötigte Funktion abbilden und die bisherige Funktion kaspeln.

(Pseudocode)


public string GetValue(string param)

{

     var instance = new Instance();

     return instance.GetValue(param);

}


  • Autor

Hmmm...

Tutorials scheint es dazu wohl wenige im Internet zu geben :/

Wäre es ein großer aufwand, hier den C++-Code zu posten anstelle von Pseudocode?

Wie gesagt: Außer dies eine Function nicht weiterzuleiten, soll die Wrapper-DLL nichts machen ^^""

Danke schonmal ._.

Wenn ich mehr Zeit habe, sollte ich mich echt mal genauer mit DLLs beschäftigen >_<

LG XspYroX

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.