Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: palomuurisofta

Sivun loppuun

tesmu [29.12.2004 18:56:40]

#

Eli olen tässä kehittelemässä palomuuri softaa mutta miten saan siihen sillä tavalla että jos sitä yrittää taskmanagerista sammuttaa niin tulee käyttö estetty ettei sitä voi sammuttaa koska se olisi aika ikävää jos jotkut virukset esim sammuttais sen eli se ei olisi toimiva kokonaisuus?

Blaze [29.12.2004 19:09:52]

#

Lähinnä kai tekemällä siitä servicen ja käyttämällä konetta semmoisilla tunnuksilla, ettei niillä ole oikeuksia sörkkiä serviceitä.

tesmu [29.12.2004 19:10:37]

#

Mutta miten teen siitä servicen

nomic [29.12.2004 19:38:58]

#

tesmu, saanko kysyä kuinka teet palomuurin vb:llä?
Sörkit portteja ja kuuntelet mitä siellä tapahtuu, vai mites?

Blaze [29.12.2004 19:46:56]

#

tesmu kirjoitti:

Mutta miten teen siitä servicen

Ei hajuakaan, googleta.

tesmu [30.12.2004 20:24:19]

#

löysin tälläsiä apeja

Declare Function ChangeServiceConfig Lib "advapi32.dll" Alias "ChangeServiceConfigA" (ByVal hService As Long, ByVal dwServiceType As Long, ByVal dwStartType As Long, ByVal dwErrorControl As Long, ByVal lpBinaryPathName As String, ByVal lpLoadOrderGroup As String, lpdwTagId As Long, ByVal lpDependencies As String, ByVal lpServiceStartName As String, ByVal lpPassword As String, ByVal lpDisplayName As String) As Long
Declare Function CloseServiceHandle Lib "advapi32.dll" Alias "CloseServiceHandle" (ByVal hSCObject As Long) As Long
Declare Function ControlService Lib "advapi32.dll" Alias "ControlService" (ByVal hService As Long, ByVal dwControl As Long, lpServiceStatus As SERVICE_STATUS) As Long
Declare Function CreateService Lib "advapi32.dll" Alias "CreateServiceA" (ByVal hSCManager As Long, ByVal lpServiceName As String, ByVal lpDisplayName As String, ByVal dwDesiredAccess As Long, ByVal dwServiceType As Long, ByVal dwStartType As Long, ByVal dwErrorControl As Long, ByVal lpBinaryPathName As String, ByVal lpLoadOrderGroup As String, lpdwTagId As Long, ByVal lpDependencies As String, ByVal lp As String, ByVal lpPassword As String) As Long
Declare Function DeleteService Lib "advapi32.dll" Alias "DeleteService" (ByVal hService As Long) As Long
Declare Function EnumDependentServices Lib "advapi32.dll" Alias "EnumDependentServicesA" (ByVal hService As Long, ByVal dwServiceState As Long, lpServices As ENUM_SERVICE_STATUS, ByVal cbBufSize As Long, pcbBytesNeeded As Long, lpServicesReturned As Long) As Long
Declare Function EnumServicesStatus Lib "advapi32.dll" Alias "EnumServicesStatusA" (ByVal hSCManager As Long, ByVal dwServiceType As Long, ByVal dwServiceState As Long, lpServices As ENUM_SERVICE_STATUS, ByVal cbBufSize As Long, pcbBytesNeeded As Long, lpServicesReturned As Long, lpResumeHandle As Long) As Long
Declare Function GetServiceKeyName Lib "advapi32.dll" Alias "GetServiceKeyNameA" (ByVal hSCManager As Long, ByVal lpDisplayName As String, ByVal lpServiceName As String, lpcchBuffer As Long) As Long
Declare Function GetServiceDisplayName Lib "advapi32.dll" Alias "GetServiceDisplayNameA" (ByVal hSCManager As Long, ByVal lpServiceName As String, ByVal lpDisplayName As String, lpcchBuffer As Long) As Long
Declare Function LockServiceDatabase Lib "advapi32.dll" Alias "LockServiceDatabase" (ByVal hSCManager As Long) As Long
Declare Function NotifyBootConfigStatus Lib "advapi32.dll" Alias "NotifyBootConfigStatus" (ByVal BootAcceptable As Long) As Long
Declare Function OpenSCManager Lib "advapi32.dll" Alias "OpenSCManagerA" (ByVal lpMachineName As String, ByVal lpDatabaseName As String, ByVal dwDesiredAccess As Long) As Long
Declare Function OpenService Lib "advapi32.dll" Alias "OpenServiceA" (ByVal hSCManager As Long, ByVal lpServiceName As String, ByVal dwDesiredAccess As Long) As Long
Declare Function QueryServiceConfig Lib "advapi32.dll" Alias "QueryServiceConfigA" (ByVal hService As Long, lpServiceConfig As QUERY_SERVICE_CONFIG, ByVal cbBufSize As Long, pcbBytesNeeded As Long) As Long
Declare Function QueryServiceLockStatus Lib "advapi32.dll" Alias "QueryServiceLockStatusA" (ByVal hSCManager As Long, lpLockStatus As QUERY_SERVICE_LOCK_STATUS, ByVal cbBufSize As Long, pcbBytesNeeded As Long) As Long
Declare Function QueryServiceObjectSecurity Lib "advapi32.dll" Alias "QueryServiceObjectSecurity" (ByVal hService As Long, ByVal dwSecurityInformation As Long, lpSecurityDescriptor As Any, ByVal cbBufSize As Long, pcbBytesNeeded As Long) As Long
Declare Function QueryServiceStatus Lib "advapi32.dll" Alias "QueryServiceStatus" (ByVal hService As Long, lpServiceStatus As SERVICE_STATUS) As Long
Declare Function RegisterServiceCtrlHandler Lib "advapi32.dll" Alias "RegisterServiceCtrlHandlerA" (ByVal lpServiceName As String, ByVal lpHandlerProc As Long) As Long
Declare Function SetServiceObjectSecurity Lib "advapi32.dll" Alias "SetServiceObjectSecurity" (ByVal hService As Long, ByVal dwSecurityInformation As Long, lpSecurityDescriptor As Any) As Long
Declare Function SetServiceStatus Lib "advapi32.dll" Alias "SetServiceStatus" (ByVal hServiceStatus As Long, lpServiceStatus As SERVICE_STATUS) As Long
Declare Function StartServiceCtrlDispatcher Lib "advapi32.dll" Alias "StartServiceCtrlDispatcherA" (lpServiceStartTable As SERVICE_TABLE_ENTRY) As Long
Declare Function StartService Lib "advapi32.dll" Alias "StartServiceA" (ByVal hService As Long, ByVal dwNumServiceArgs As Long, ByVal lpServiceArgVectors As Long) As Long
Declare Function UnlockServiceDatabase Lib "advapi32.dll" Alias "UnlockServiceDatabase" (ScLock As Any) As Long


mutta en osaa käyttää niitä olisiko ideoita :D

tuomas [30.12.2004 20:56:22]

#

No mitä luulet tekeväsi tollasella määrällä apeja jos et niitä osaa käyttää? Suosittelen että teet jonkin ohjelman joka ei ole liian vaikea / ylivoimainen.

tesmu [30.12.2004 21:35:18]

#

tuomas kirjoitti:

No mitä luulet tekeväsi tollasella määrällä apeja jos et niitä osaa käyttää? Suosittelen että teet jonkin ohjelman joka ei ole liian vaikea / ylivoimainen.

kaikki muut olen saanut tehtyä paitti sen että sitä ei voi sammuttaa ja kyllä tosta varmaan löytyy siihen ratkaisu mutta ajattelin että onko muut joutunu käyttämään noita apeja

nomic [30.12.2004 22:08:35]

#

saanko kysyä kuinka teet bloggauksen? shellin kautta? mitä jos blogattava käyttää samaa tekniikkaa eli on myös servicenä?
mulla kävimielessä semmoinen tekniikka kylläkin että:
ohjelma kun käynnistyy se kloonaa ittestänsä service-version ja pitää sitä pystyssä
en tiedä onko mahdollista mutta tuli vaan mieleeni kun katoin noita winapeja tossa...

tai mikset tee niin että luot toisen ohjelman joka tarkastelee kokoaika onko toi palomuuri-softa päällä, jos ei ole, käynnistetään se. jos "virus/mörkö" sulkee tarkastajaohjelman niin sitten taas vastoin palomuuri käyninstää taas samansoftan jne... eli molemminpuolista hallintaa...

tesmu [30.12.2004 22:47:56]

#

mutta jos on ohjelma joka sammuttaa molemmat samaan aikaan

nomic [30.12.2004 23:23:56]

#

tesmu, ja luulet että ohjelmasta tulee niin suosittu että vain sitä varten aletaan kehittelee kaikkea mikä häiritsee tota ohjelmien välistä yhteyttä?
ja mitä torjut, annan vaihtoehtoja, sun ohjelma tässä on kyseessä.

ja jos haluat että ohjelma todellakin on jänskä niin laita tämmönen hassu rivo koodi ohjelmaasi joka ylläpitää itse palomuuria:

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long 'jänskä api joka ettii ikkunoita
Dim ikkuna As Long
Dim a As Long

Private Sub Form_Unload(Cancel As Integer) 'kun ohjelma sammutetaan
    a = Shell(App.Path & "\tämänohjelmannimi.exe", vbNormalFocus) 'käynnistää itsensä uusiksi jos  ohjelma sammutetaan
End Sub

Private Sub Timer1_Timer()
    ikkuna = FindWindow("Palomuuri", vbNullString) 'etitään onko päällä sen nimistä ohjelmaa kuin "Palomuuri"
    If ikkuna = 0 Then  'jos arvo on 0, niin palomuuri ei ole päällä :(
        a = Shell(Palomuurinpolku & "\Palomuuri.exe", vbNormalFocus)  'käynnistää itsensä uusiksi jos  ohjelma sammutetaan
    End If
End Sub

FindWindow-apin käytöstä kiitos Bill Keltaiselle ja hänen koodillensa. https://www.ohjelmointiputka.net/koodivinkit/24303-vb6-wa
tai tottakai voit vielä tapella serviceitten kanssa mutta vinkki: älä kokeile liian vaikeita asioita, innostus menee kokosoftaan ;)


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta