![]() |
UPnP Router Manager
Liste der Anhänge anzeigen (Anzahl: 1)
Aus meinem
![]() Ein Tool zum automatischen Anlegen von Weiterleitungen auf einem Router mit UPnP-Unterstützung, sobald ein Prozess einen Server-Port öffnet (natürlich mit Benutzer-Rückfrage). Es war ursprünglich für mich selbst gedacht (vielleicht erklärt das den Mangel an Dokumentation :oops:). Das Tool ist noch in der Entwicklung. Verbesserungsvorschläge sind herzlichst willkommen. :) Keine Installiation ist nötig. Das Programm speichert seine Einstellungen in den Dateien Settings.ini und Lists.dat im Programmverzeichnis. Getestet nur mit Windows XP und einem Netgear FM114P Router. Benötigt wahrscheinlich Admin-Rechte auf Grund des API-Hooks (sicher bin ich mir nicht). Braucht Windows XP oder Vista! 3. Update 10.06.2006 |
Re: UPnP Router Manager
Schon wieder ohne Kommentare? :( Diese 11 Leute, die sich es runtergeladen haben müssen doch zumindest ne Meinung haben, und wenn es die ist, dass es nicht funktioniert. :|
|
Re: UPnP Router Manager
Also ich finde es sehr witzig, Kompliment! :thumb:
Liebe Grüsse |
Re: UPnP Router Manager
Witzig? Wie soll ich das verstehen? Ist zwar nett gemeint :) , aber wirklich bringen tut mir das nichts. :|
|
Re: UPnP Router Manager
Hallo,
habe bei mir die Fritz! Box 5050(Router incl. UPnP). Dein Prog erkennt dies aber leider net. Gruß Enno |
Re: UPnP Router Manager
Hm... Sorry, aber das einzige, was ich bislang von deinem Programm gesehen hab', ist die Meldung, dass es nach UPnP - Geräten sucht...
=> Fritz! Box SL |
Re: UPnP Router Manager
Liste der Anhänge anzeigen (Anzahl: 1)
Könnt ihr mal dieses Programm bei euch laufen lassen und einen Screenshot posten? Es zeigt nach einigen Sekunden sämtliche UPnP-Geräte samt Diensten an, die im Netzwerk vorhanden sind.
|
Re: UPnP Router Manager
Ok... Vielleicht liegt das auch daran, dass ich die Box als Modem und nicht als Router laufen habe. Allerdings ist die Option "UPnP - Statusinformationen anzeigen" aktiviert.
Das Fenster bleibt komplett leer... |
Re: UPnP Router Manager
Liste der Anhänge anzeigen (Anzahl: 1)
Beim Manager kommt bei mir diese Fehlermeldung
No internet gateway device found! Anbei screenshot vom upnpexlorer |
Re: UPnP Router Manager
Ah, gut. Ich glaube, den hatten wir alle bisher...
|
Re: UPnP Router Manager
Liste der Anhänge anzeigen (Anzahl: 1)
Hier der Screenshot zum UPnP Explorer.
Gruß Enno Sorry, das erste Bild war nicht gelungen. |
Re: UPnP Router Manager
Tolles Programm... gestartet, erst schmiert Firefox ab ("...hat einen Fehler verursacht..."), dann Notepad (obwohl ich es gar nicht gestartet habe) und dann dein Programm selbst :roll:
Dust Signs |
Re: UPnP Router Manager
Zitat:
|
Re: UPnP Router Manager
Eigentlich schade, ich fände sowas sehr bequem. Bei meinem D-Link Router gehts leider net, ich weiß aber auch net, inwiefern der UPnP unterstützt..
|
Re: UPnP Router Manager
Neue Version hochgeladen, die jetzt (hoffentlich :mrgreen:) auch IP- und PPP-Connections bei Geräten beliebigen Namens unterstützt.
|
Re: UPnP Router Manager
Liste der Anhänge anzeigen (Anzahl: 1)
Nope, leider muss ich verneinen...
Ich hab dir aber mal n Bugreports angehängt (einiges rausgekürtzt, was nicht jeder erfahren muss, z.B. die PC Konfiguration...) Gruß alias5000 |
Re: UPnP Router Manager
Danke, da hatte ich tatsächlich was übersehen. :mrgreen:
Zeigt der UPnP Explorer bei dir nichts an? Wenn nicht, dann unterstützt dein Router wohl kein UPnP. :( |
Re: UPnP Router Manager
och schade, stimmt, der zeigt leider nix an :(
|
Re: UPnP Router Manager
Hallo Mystic,
also dein Prog startet jetzt erst mal korrekt. Unter Mappings und Settings zeigt er jedoch nichts an. Sollte er nicht bereits vorhandene Portfreigaben vom Router auslesen? Und wie wäre es, wenn man gewisse Ports manuell voreinstellen könnte. Gruß Enno |
Re: UPnP Router Manager
Kommt noch. ;)
|
Re: UPnP Router Manager
Wie sieht's mit dem Programm aus? Ich habe einen NetGear FVS318 ProSafe VPN Firewall Router. Dein UPnP Explorer erkennt ihn und listet ihn, aber dein Router Manager sagt nur "Hook Failed" und das wars. Hätte mir das Programm auch gerne mal angeschaut und benutzt. Wie ist denn der aktuelle Status?
|
Re: UPnP Router Manager
Welches Windows benutzt du denn? Als normaler User oder Administrator?
edit: Update. Ein einfaches Management für statische Mappings ist eingebaut und scheint stabil zu laufen. |
Re: UPnP Router Manager
So, das Problem mit dem Hook war ein Fehler vor dem Rechner: "User error, replace user." Ich hatte vergessen die DLL's beim extrahieren mit zu selektieren, daher der Fehler. Mit den DLLs klappts und er startet. Ich habe nur in keinem der Popuppunkte irgendwelche Funktionen die meinen Router nutzen/erkennen. Die Connections sind leer, etc.
Windows XP SP2, Admin |
Re: UPnP Router Manager
Avira mag leider Deine MADHOOK.DLL nicht.
Es wird angegeben, es sei der Trojaner TR/Hook.Agent.B enthalten :cry: Würde es ja gerne mal testen, aber unter diesen Umständen .... Gruß onlinekater |
Re: UPnP Router Manager
Hi,
ich habe gerade mal Dein Programm ausprobiert. Er gibt mir die folgende Fehlermeldung aus : Zitat:
|
Re: UPnP Router Manager
Zitat:
Du kannst diese Meldung ignorieren. Zitat:
fritz.box ---> System ---> Netzwerkeinstellungen)? |
Re: UPnP Router Manager
Ich spiele ja nur ungern den Spielverderber, aber man sollte sich immer überlegen, OB man UPNP wirklich benutzen will.
Es tut nicht weh, in seinem Router die notwendigen Ports zur Weiterleitung per Telnet oder Web interface einzustellen. UPNP selbst reißt einige Sicherheitslücken auf, was für Geräte, die dich vor dem bösen Netz schützen sollen, IMHO ein no-go darstellt. ;) Bei DX Spielen und mehreren Client hinter dem Router kann man sich auch Tools wie DXPort bedienen, um die Port range von DXPlay so aufzuteilen, dass man sie später im router einzelnen Maschinen zuordnen kann. @Mystic, kennst du den schon? ![]() |
Re: UPnP Router Manager
Zitat:
|
Re: UPnP Router Manager
Zitat:
![]() Gruß alias5000 |
Re: UPnP Router Manager
Aber WAS machst DU mit dieser DLL ?
Bei mir schmiert deine Anwendung erstmal ab (sowas wie IOleError Class not registered). Der Explorer bleibt vollkommen leer. Ich habe eine Fritz!Box Fon WLAN 7170 und UPnP auch aktiviert. Welche Vorausetzungen an das OS werden gestellt ? Habe Win2k prof. Gruß Hagen |
Re: UPnP Router Manager
Die DLL wird benutzt um WinSock-Funktionen zu hooken.
Delphi-Quellcode:
Hast du noch einen Switch zwischen Router und PC? Ein Freund von mir hat ein solches Problem, denn sein Switch unterstützt keine Multicasts.
library rmHook;
{$IMAGEBASE $58a00000} uses Windows, madCodeHook, Winsock, madStrings, madRemote, HookDataUnit in 'HookDataUnit.pas'; {$R *.res} var bindNext:function(s: TSocket; var addr: TSockAddr; namelen: Integer): Integer; stdcall; listenNext: function(s: TSocket; backlog: Integer): Integer; stdcall; closesocketNext: function(s: TSocket): Integer; stdcall; shutdownNext: function(s: TSocket; how: Integer): Integer; stdcall; procedure SendIPC(s: TSocket; action: TSockAction; saddr: PSockAddr = nil); var session: DWord; data: TSockHookData; size: Integer; addr: TSockAddr; arrChW: array[0..MAX_PATH] of WideChar; x: PChar; begin ZeroMemory(@data, SizeOf(TSockHookData)); data.process := GetCurrentProcessId; GetModuleFileNameW(0, arrChW, MAX_PATH); WideToAnsi(arrChW, data.filename); GetFullPathName(@data.filename, MAX_PATH, @data.filename, x); CharLower(@data.filename); data.action := action; if saddr <> nil then addr := saddr^ else begin size := SizeOf(addr); getsockname(s, addr, size); end; data.sockport := ntohs(addr.sin_port); if data.sockport = 0 then Exit; size := SizeOf(data.socktype); getsockopt(s, SOL_SOCKET, SO_TYPE, @data.socktype, size); if AmSystemProcess and (GetCurrentSessionId = 0) then session := GetInputSessionId else session := GetCurrentSessionId; SendIPCMessage(PChar('UPNPRouterMan' + IntToStrEx(session)), @data, SizeOf(data)); end; function bindCallback(s: TSocket; var addr: TSockAddr; namelen: Integer): Integer; stdcall; begin SendIPC(s, Listen, @addr); Result := bindNext(s, addr, namelen); end; function listenCallback(s: TSocket; backlog: Integer): Integer; stdcall; begin SendIPC(s, Listen); Result := listenNext(s, backlog); end; function closesocketCallback(s: TSocket): Integer; stdcall; begin SendIPC(s, Closed); Result := closesocketNext(s); end; function shutdownCallback(s: TSocket; how: Integer): Integer; stdcall; begin SendIPC(s, Closed); Result := shutdownNext(s, how); end; begin HookAPI('wsock32.dll', 'bind', @bindCallback, @bindNext); HookAPI('wsock32.dll', 'listen', @listenCallback, @listenNext); HookAPI('wsock32.dll', 'closesocket', @closesocketCallback, @closesocketNext); HookAPI('wsock32.dll', 'shutdown', @shutdownCallback, @shutdownNext); end. Die UPnP-Funktionen brauchen anscheinend Windows Vista, XP oder ME. |
Re: UPnP Router Manager
Liste der Anhänge anzeigen (Anzahl: 3)
Nabend ..., :)
also ich wollte es testen aber nach dem Start ging nix mehr,- kein INet, permanente Virus/Trojaner Warnungen bis der Avira selbst abgeschmiert ist und mein System mitgerissen hat. Es half nur noch ein 'harter' Reset :x aber der Reihe nach nicht ganz so LG Mario |
Re: UPnP Router Manager
Avira mag die Hook-DLL nicht und deine Firewall keine API-Hooks. Das Programm benötigt aber API-Hooks, um auf Veränderungen an den Ports reagieren zu können.
Der Fehler aus dem dritten Screenshot ist bekannt und hier auch schon gefixt, entsteht beim Terminieren des Programmes ohne erfolgreiche Initialisation. |
Re: UPnP Router Manager
Hi
ich habe keinen Router oder sonstwas zwischen meiner Fritz!Box und dem PC, was und wozu auch ? Die Fritz!Box ist ja mein Router und der unterstützt UPnp (die ganzen Fritz!Box Tools machen es ja vor wie man per UPnp Daten abfragen kann, es geht also) Und ich verstehe immer noch nicht warum du so sicherheitsrelevante Funktionen wie die des WinSocks hooken musst, wozu benötigst du das in einem UPnp Manager ? Gruß Hagen |
Re: UPnP Router Manager
Weil der eigentliche Zweck des Programms war, eine Art Port Triggering zur Verfügung zu stellen.
Lokales Programm öffnet Serverport --> Benutzerabfrage --> Port auf dem Router weiterleiten Also der Explorer sucht nach sämtlichen UPNP-Geräten und ihren Diensten. Wenn der nach einiger Zeit nichts anzeigt, läuft irgendwas schieft. :| |
Re: UPnP Router Manager
Hab dein prog ausprobiert,
hat aber einige lähmungen verursacht, z.b. ist das komplette system hängen geblieben und hat auf keine eingabe mehr reagiert, vl. kannst du dies noch verbessern. |
Re: UPnP Router Manager
Würd ich ja gern, aber ich kann diese Probleme hier nicht nachvollziehen. :(
|
Re: UPnP Router Manager
Ich aber teilweise ;)
1.) du hookst an einer Stelle im System an denen viele andere Programme interessiert sind - solche Tracer wie deiner - Viren und Trojaner - Sicherheitssoftwares die solche Tracer, Viren, Trojaner verhindern möchten - Firewalls, Router und das OS selber Also viele Programme mit kontrahären Zielen 2.) du hookst dabei mit einem Tool (was einen verdient guten Ruf geniest) aber im Grunde mit absolut unsauberen Tricks arbeitet. Das System MUSS schlußendlich instabil sein. 3.) du benutzt das UPnp SOAP/RPC über COM Objekte. Das ist gut aber man sollte auch überprüfen ob das jeweilige OS auch diese COM Server in der entsprechenden Version zur Verfügung stellt ! Und das ist eben auf meinem Rechner NICHT so, bzw. habe ich die entsprechenden Dienste deaktiviert (einfach weil das UPnp eine enorme Sicherheitslücke darstellt -> Trojaner können per UPnp durch Router und Firewalls durch). Du solltest also in deinem Code unbedingt entsprechende Abfragen einbauen. 4.) dein Code scheint unsauber mit den COM Objekten umzugehen. Das führt dann zu Nachfolgefehlern die nur darauf basieren das eine vorherige fehlgeschlagene Allozierung eines COM Objektes weitere gravierende Fehler verursacht. 5.) dein Code scheint nicht in der Lage zu sein die COM Objekte und die UPnp Abfragen Passwortbasiert abzuzfragen. Denn exakt das ist bei meiner Fritz!Box der Fall. Ich habe sie per Passwort geschützt und alle Anfragen per UPnp müssen vorher das Passwort der Box mitteilen um ZUgriff darauf zu bekommen. Das geht definitiv denn die Fritz Software kann ja selber per UPnp Daten bei der Box abfragen, auch mit gesetztem Passwort. Ich weiß leider nun nicht ob das UPnp Protokoll sowas von Hause unterstützt, da bin ich selber berfragt. 6.) Der MAD Hook benötigt der nicht Admin Rechte damit er funktioniert ? Nun, in meinem System melde ich mich fast nie als Admin an, es könnte also an den Rechten liegen. Die Frage ist nun WIE in deinem Source auf die Unterbindung deiner Hooks durch das OS, reagiert wird und das dadurch eventuell in deinem Code gravierende Nachfolgefehler auftreten !? Das sind natürlich alles nur grobe Vermutungen meinerseits, da wir ja deinen Source nicht kennen ;) Aber im Grunde läuft das alles darauf hinaus das du eine Sofwtare hast die auf deinem System läuft aber auf viele andere Rechner eben nicht mehr. Gruß Hagen |
Re: UPnP Router Manager
Zitat:
Zitat:
Der Hauptthread initialisiert einen Such-Thread der mittels eines IUPNPDeviceFinders nach Geräten sucht. Die Interfaces dieser Geräte werden in einer TInterfaceList gespeichert. Nach dem Suchen sendet der Thread eine Meldung an den Hauptthread der dann die Interfaces in der Liste durchgeht. Ich vermute dass das keine saubere Lösung ist, ein Versuch mit ![]() Zitat:
Zitat:
Wenn der Hook fehlschlägt wird eine Fehlermeldung ausgeworfen und das Programm beendet. |
Re: UPnP Router Manager
Hm, am besten wäre es du könntest ganz auf Hooks verzichten. Falls nicht bietet sich die sogenannte "Side by Side" Technik der DLLs an. Einfach ausgedrückt, du ersetzt die WinSock DLL durch eine eigene die im Grunde nur alle Funktionsaufrufe an die originale DLL weiterleitet. Das ist dann wie ein dynamischer Hook, aber eben "sauber".
Die Überprüfung ob ein COM Objekt allozierbar ist/war erfolgt am besten per try except Block und der Auswertung des HResults. Die Iteration innerhalb eines Threads ist eine gute Idee. Du solltest aber ohne Synchronisation auskommen können. Dh. dein Thread wird gestartet und sammelt alle Infos in seinen lokalen Feldern. Das OnTerminate Event wird nun benutzt um nach Fertigstellung des Threads diese lokalen Information in den Mainthread deiner Anwendung zu übernehmen. Synchronisation ist immer eine Schwachstelle die zu undurchschaubaren Fehler führt und zusätzlich noch das gesammte System ausbremst. Stells dir einfach so vor das auf der Autobahn Autos fahren. Ein Porsche mit 360 und ein LKW mit 80. Während des Überholvorganges versuchst du nun dich mit dem Porschefahrer zu unterhalten. Das geht nur wenn einer von beiden seine Geschwindigkeit ändert, ergo wartet. Logisch wird der Porsche abbremsen müssen, auf 80km/h und das führt dazu das die Überholspur nun grundsätzlich auf 80 blockiert wird. Gruß Hagen |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:40 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz