Seite 2 von 4
Verfasst: 15.08.2009 11:11
von Raphi
cxAlex hat geschrieben:Warum willst du das machen?
Imprizip will ich ein programm basteln, dass es ermöglicht mit 1-2 klicks
ein Netzwerk(über lan oder Drahtlos) herzustellen.
Denn wenn man übber netzwerk spiele spilen möchte stört meistens die Firewall.

Verfasst: 15.08.2009 11:15
von cxAlex
Für das reicht es dann aber auch die Anwendung freizugeben:
http://www.purebasic.fr/german/viewtopi ... s+firewall
Hier mal der Code EnableExplicit - freundlich und so wie du ihn in deiner App verwenden solltest:
Code: Alles auswählen
;add your app to firewall - AuthorizedApplication (xp/sp2)
EnableExplicit
Interface INetFwAuthorizedApplication Extends IDispatch
get_Name(a)
put_Name(a)
get_ProcessImageFileName(a)
put_ProcessImageFileName(a)
get_IpVersion(a)
put_IpVersion(a)
get_Scope(a)
put_Scope(a)
get_RemoteAddresses(a)
put_RemoteAddresses(a)
get_Enabled(a)
put_Enabled(a)
EndInterface
Interface INetFwAuthorizedApplications Extends IDispatch
get_Count(a)
Add(a)
Remove(a)
Item(a, b)
get__NewEnum(a)
EndInterface
Interface INetFwProfile Extends IDispatch
get_Type(a)
get_FirewallEnabled(a)
put_FirewallEnabled(a)
get_ExceptionsNotAllowed(a)
put_ExceptionsNotAllowed(a)
get_NotificationsDisabled(a)
put_NotificationsDisabled(a)
get_UnicastResponsesToMulticastBroadcastDisabled(a)
put_UnicastResponsesToMulticastBroadcastDisabled(a)
get_RemoteAdminSettings(a)
get_IcmpSettings(a)
get_GloballyOpenPorts(a)
get_Services(a)
get_AuthorizedApplications(a)
EndInterface
Interface INetFwPolicy Extends IDispatch
get_CurrentProfile(a)
GetProfileByType(a, b)
EndInterface
Interface INetFwMgr Extends IDispatch
get_LocalPolicy(a)
get_CurrentProfileType(a)
RestoreDefaults()
IsPortAllowed(a, b, c, d, e, f, g)
IsIcmpTypeAllowed(a, b, c, d, e)
EndInterface
Global a2u_memtarget
Procedure.l Ansi2Uni(ansi.s)
Shared a2u_memtarget
If a2u_memtarget : CoTaskMemFree_(a2u_memtarget) : EndIf
SHStrDup_(@ansi, @a2u_memtarget)
ProcedureReturn a2u_memtarget
EndProcedure
Procedure free_app_firewall(name.s, app.s)
Protected ret, INetMgr.INetFwMgr, INetPolicy.INetFwPolicy
Protected colApplications.INetFwAuthorizedApplications
Protected object.INetFwAuthorizedApplication
Protected objPolicy.INetFwProfile
CoInitialize_(0)
If CoCreateInstance_(?CLSID_NetFwMgr, 0, 1, ?IID_INetFwMgr, @INetMgr) = 0
INetMgr\get_LocalPolicy(@INetPolicy)
INetPolicy\get_CurrentProfile(@objPolicy)
If CoCreateInstance_(?CLSID_FwAuthorizedApplication, 0, 1, ?IID_INetFwAuthorizedApplication, @object) = #ERROR_SUCCESS
object\put_Name(Ansi2Uni(name))
object\put_IPVersion(2)
object\put_ProcessImageFileName(Ansi2Uni(app))
object\put_RemoteAddresses(Ansi2Uni("*"))
object\put_Scope(0)
object\put_Enabled(#True)
EndIf
objPolicy\get_AuthorizedApplications(@colApplications)
If colApplications\add(object) = #ERROR_SUCCESS
ret = 1
EndIf
EndIf
CoUninitialize_()
ProcedureReturn ret
EndProcedure
DataSection
CLSID_NetFwMgr:
Data.l $304CE942
Data.w $6E39, $40D8
Data.b $94, $3A, $B9, $13, $C4, $0C, $9C, $D4
IID_INetFwMgr:
Data.l $F7898AF5
Data.w $CAC4, $4632
Data.b $A2, $EC, $DA, $06, $E5, $11, $1A, $F2
CLSID_FwAuthorizedApplication:
Data.l $EC9846B3
Data.w $2762, $4A6B
Data.b $A2, $14, $6A, $CB, $60, $34, $62, $D2
IID_INetFwAuthorizedApplication:
Data.l $B5E64FFA
Data.w $C2C5, $444E
Data.b $A3, $01, $FB, $5E, $00, $01, $80, $50
EndDataSection
Debug free_app_firewall("MyGame", ProgramFilename())
Verfasst: 15.08.2009 14:28
von Joel
Also so unnormal ist das gar nicht. Selbst Programm wie Skype oder ICQ machen Windows XP Firewallhacking sehr gerne ohne Hinweis:

Verfasst: 15.08.2009 18:55
von NicknameFJ
Joel hat geschrieben:Also so unnormal ist das gar nicht. Selbst Programm wie Skype oder ICQ machen Windows XP Firewallhacking sehr gerne ohne Hinweis:

Was aber dennoch nicht der Gute Ton ist.
Solche Sachen macht man nur mit ausdrücklicher Zustimmung des Nutzers.
Grüße
NicknameFJ
Verfasst: 17.08.2009 21:31
von Raphi
ich hab jetzt den code übernommen complimirt und abgespielt.
Jetzt hat sich ein fenster vom debugger göffnet mit Kopiern, Speichern, Löschen und anzeigen ???
Hat das jetzt was gebracht oder mus ich noch was umstellen?

Verfasst: 18.08.2009 19:35
von Raphi
Was muss ich jetzt tun damit ich das Freigebe was ich will?
Verfasst: 18.08.2009 19:46
von DarkDragon
Raphi hat geschrieben:Was muss ich jetzt tun damit ich das Freigebe was ich will?
Schau dir doch mal die letzte Zeile an!
Das debuggt ob das eintragen deiner Anwendung mit dem Namen "MyGame" mit der dazugehörigen Datei "ProgramFilename()" in die Firewall erfolgreich war.
Verfasst: 18.08.2009 19:58
von Raphi
und was bedeutet dann dieses speicher usw. beim debuger
Und hat das bei einem aufruf automatisch für immer das freigegeben?
Verfasst: 18.08.2009 20:15
von DarkDragon
Raphi hat geschrieben:und was bedeutet dann dieses speicher usw. beim debuger
Und hat das bei einem aufruf automatisch für immer das freigegeben?
1. Das ist der PureBasic Debugger. Damit kannst du den Text der unten steht ...
- ... in eine Datei speichern
- ... in die Zwischenablage kopieren
- ... löschen
Probiers doch das nächste mal einfach aus.
Debug "Hallo Welt!" gibt "Hallo Welt!" auf diesem Fenster aus.
Schau halt mal in deine Firewalleinstellungen, da wird jetzt dein Programm als Ausnahme drinstehen

. Solange, bis du es von Hand daraus entfernst.
Verfasst: 18.08.2009 20:16
von Raphi
Und was bringt das?