Red de conocimiento informático - Descarga de software - Cómo ocultar completamente la ventana usando programación VB

Cómo ocultar completamente la ventana usando programación VB

En algunos sistemas, a menudo se requiere que los programas se ejecuten ocultos para propósitos específicos, como el sistema de monitoreo en segundo plano, el programa de control de troyanos, la prevención de copia de código fuente, etc. en DCS (Sistema de control distribuido) para reducir el descubrimiento. e interceptación. Riesgo de muerte y desmontaje. Este tipo de módulo funcional requiere que el programa no sólo no aparezca en el escritorio durante la operación, sino que tampoco permita que el operador lo encuentre en la lista del administrador de tareas.

El principio de invisibilidad del programa. Para un programa invisible, los requisitos más básicos son:

1. La interfaz no aparece en el escritorio. . La interfaz no aparece en la barra de tareas. Aparece el icono;

3. El nombre del programa desaparece de la lista del Administrador de tareas.

Para el primer punto anterior, puede establecer la propiedad Visible del formulario en Falso.

Para ocultar el icono de la barra de tareas, puede cambiar ShowInTaskBar del formulario a False.

En el entorno Windows, puede llamar a RegisterviceProcess en la función WIN API para cumplir el tercer requisito.

Las funciones anteriores son relativamente fáciles de implementar ya sea que se utilice cualquier lenguaje de programación de alto nivel como VC, Delphi, VB o PB.

La función sigilosa se utiliza principalmente en programas troyanos, pero los programas troyanos son ilegales en muchos países y regiones. Para facilitar la comprensión, este artículo utiliza VB combinado con un ejemplo de protección contra copia de programas para explicarlo. Al obtener el número de serie del disco (ID del disco) donde se encuentra la ruta de instalación del software, se utiliza para determinar los usuarios legítimos. El propósito del siguiente programa es explicar la preparación y aplicación de programas invisibles, y el contenido de protección de copia del programa se ha simplificado hasta cierto punto.

Ejemplo de invisibilidad del programa

Las operaciones de preparación específicas del programa son las siguientes:

1. En el entorno de programación VB6.0, cree un nuevo proyecto. Proyecto1.

2. Agregue el módulo Modulel a Project1, cambie el nombre del proyecto a HiddenMen en las propiedades del proyecto y cambie el título de la aplicación a HiddenMen

(Los siguientes programas han sido probados en funcionamiento real). . se puede copiar y utilizar tal cual).

Agregue la siguiente declaración al módulo Módulo1:

Función de declaración pública GetCurrentProcessId Lib “kernel32” () As Long

'Obtener la declaración del proceso actual Función de ID

Función de declaración pública RegisterServiceProcess Lib "kernel32" (ByVal ProcessId As Long, ByVal

ServiceFlags As Long) As Long

'Registrar el ID del proceso actual función en la Declaración del sistema

3. Cree un nuevo formulario Form1 en Project1 y establezca las propiedades de Form1:

form1.Visible=False

form1.ShowInTaskBar. =False

Agregue el siguiente código en la ventana de código:

Función de declaración privada GetDriveType Lib “kernel32” Alias ​​​​“GetDriveTypeA” (ByVal nDrive As

String) As Long

'Obtener la declaración de la función de tipo de unidad actual

Función de declaración privada GetVolumeInformation Lib “kernel32” Alias ​​​​“GetVolumeInformationA”

( ByVal lpRootPathName como cadena, ByVal lpVolumeNameBuffer como cadena, ByVal nVolumeNameSize como

Long, lpVolumeSerialNumber como larga, lpMaximumComponentLength como larga, lpFileSystemFlags como larga,

ByVal lpFileSystemNameBuffer como cadena, ByVal nFileSystemNameSize como larga ) As Long

' Obtiene la declaración de la función de información de la unidad actual

Private Sub Form_Load()

Dim drive_no As Long, drive_flag As Long

Dim drive_chr como cadena, drive_disk como cadena

Dim serial_no mientras, kkk mientras

Dim stemp3 como cadena, dflag como booleano

Dim strlabel As String, strtype As String, strc As Long

RegisterServiceProcess GetCurrentProcessId, 1 'Cancelar el proceso actual del sistema

stralabel = String(255, Chr(0))

strtipo = Cadena(255, Chr(0) ))

p>

stemp3 = “172498135” 'Este es el número de serie (decimal) de la unidad C del autor. Los lectores pueden cambiarlo según sus propias circunstancias.

dflag = False

Para drive_no = 0 a 25

drive_disk = Chr(drive_no 67)

drive_chr = drive_disk amp; :\”

drive_flag = GetDriveType(drive_chr)

Si drive_flag = 3 Entonces

kkk = GetVolumeInformation(drive_chr, strlabel, Len(strlabel), serial_no, 0, 0, strtype,

Len(strtype)) 'Obtén el número de serie del disco a través de GetVolumeInformation

Selecciona Case drive_no

Case 0

strc = serial_no

Finalizar selección

Si serial_no = stemp3 Entonces

dflag = True

Salir para

Finalizar si

Finalizar si

Siguiente drive_no

Si drive_no = 26 y dflag = False Then 'Usuario ilegal

Ir a err :

End If

MsgBox ("¡Hola, usuario legal!")

Salir de Sub

err:

MsgBox ("¡Error! Su número de ID de unidad C: es" amp; strc)

End Sub

Sub privado Form_Unload(Cancelar como entero)

RegisterServiceProcess GetCurrentProcessId, 0 'Cancelar el proceso del programa actual del sistema

End Sub

Compile el código del programa anterior y ejecútelo cuando aparezca un error similar a "¡Error! Su C. El número de identificación de la unidad es 172498135", presione la tecla Ctrl Alt Supr para ver si el programa llamado "HiddenMen" está en la lista del Administrador de tareas. Si modifica ligeramente el programa anterior, puede agregarlo a su propio programa específico. El programa se ejecuta de forma invisible y completa su función prevista sin saberlo.

El programa anterior ha sido depurado en entornos de chino simplificado Windows 98 y VB 6.0.