elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Como podría esconder una pagina web
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Como podría esconder una pagina web  (Leído 1,447 veces)
arrebato21

Desconectado Desconectado

Mensajes: 15



Ver Perfil
Como podría esconder una pagina web
« en: 27 Enero 2015, 19:44 pm »

Saludos a todos.

A ver si me podéis echar una mano, como podría esconder una pagina web, es decir, ya tengo un bat preparado para que la web se abra a x segundos pero necesito que esa web este abierta de forma invisible desde el primer momento, que ni se vea al inicio y permanezca invisible hasta el apagado del pc. He probado con algún programa hide para windows pero no logro se esconda sin verse al iniciar(sin que se vea como inicia) ni la web ni el programa que la esconda.


En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.709



Ver Perfil
Re: Como podría esconder una pagina web
« Respuesta #1 en: 29 Enero 2015, 21:58 pm »

Buenas, primero que nada:

1) Utiliza el foro adecuado para formular preguntas sobre CMD/Batch: http://foro.elhacker.net/scripting-b64.0/

2) Cuando formules una pregunta sobre programación, si dices tener un código, como mínimo publica el contenido de dicho código.

3) Especifica el navegador también, por Dios, que no somos adivinos.




Si no he entendido mal, ¿lo que quieres hacer es ejecutar un navegador (con una url específica) y ocultar la ventana de dicho navegador?,
en ese caso, en una herramienta tan simple como Batch no es posible realizar es tarea, no sin utilizar herramientas de terceros como CMDOW/NirCMD.

Normalmente podrías llevarlo a cabo de forma sencilla y natural usando VisualBasicScript:

Código
  1. Option Explicit : Dim procFilePath, procArguments, procWindowStyle, procWaitReturn
  2.  
  3. procFilePath    = """" & "C:\Program Files\Google Chrome\Google Chrome.exe" & """"
  4. procArguments   = """" & "http://foro.elhacker.net/"                        & """"
  5. procWindowStyle = 0 ' Hides the window and activates another window.
  6. procWaitReturn  = False
  7.  
  8. Call CreateObject("WScript.Shell"). _
  9. Run(procFilePath & " " & procArguments, procWindowStyle, procWaitReturn)
  10.  
  11. Wscript.Quit(0)

El problema es que aplicaciones como Chrome o Firefox no soportan la modificación del estilo de ventana, en este caso mediante el método Run/ShellExecute para volver invisible la ventana, así que al igual que con Batch, otro lenguaje simple como es VBS tampoco te sirve para la tarea.

Debes recurrir a otro lenguaje que esté capacitado para dicha tarea, o bien puedes mezclar Batch+VBS+CMDOW/NirCMD para llevarlo a cabo de una forma más simple en nivel de conocimientos, pero también mucho más tediosa.

Los procesos de esos navegadores en cuestión son bastante problemáticos al respecto de esto, por lo que he leido hay mucha gente más o menos en tu misma situación (que aparecen en los resultados de Google xD), así que he decidido proporcionarte ayuda en profundidad.

Lo primero de todo es obtener el navegador por defecto registrado en el SO, luego iniciar el navegador, esperar a que cargue el formulario, obtener el puntero de la ventana principal, y por último ocultar la ventana (usando la API de Windows).

Pero hay un inconveniente en todo esto, ya que es necesario esperar a que la ventana se haya creado para que se defina el Handle y poder obtenerlo para así ocultar la ventana, es decir, que la ventana de firefox/chrome se debe mostrar si o si durante el tiempo necesario, que pueden ser apenas unos ínfimos ms (ni se notaría), o segundos, dependiendo del tiempo de respuesta del sistema.

Aparte hay que tener en cuenta muchos otros factores, como por ejemplo el aviso de restaurar sesion de Firefox que literalmente jodería esta metodología al no estar visible la ventana principal, o que la clave de registro que almacena el directorio absoluto al navegador por defecto haya sido eliminada por el usuario, etc, etc, etc...

En fin, te muestro un ejemplo de como se podria llevar a cabo, he escogido como lenguaje VB.Net al ser muy práctico, eficiente, para poder hacerlo de forma simplificada.

Aquí tienes la aplicación ya compilada junto al proyecto de VisualStudio:
https://www.mediafire.com/?9e5ixgz5ne6n8n8

Modo de empleo:
Código:
RunWebBrowserEx.exe "http://url" hide
o
Código:
RunWebBrowserEx.exe "http://url" show

Es una aplicación que usa tecnología WinForms, es decir, con interfáz gráfica, pero he omitido la interfáz para aceptar parámetros commandline y evitar que se muestre cualquier ventana del programa ;).
De todas formas solo es un ejemplo de aplicación, sin controles de errores, ya que bastante he hecho.

Este es el Core de la aplicación:
Código
  1.        ' Get Default WebBrowser
  2.        ' By Elektro
  3.        '
  4.        ''' <summary>
  5.        ''' Gets the default web browser filepath.
  6.        ''' </summary>
  7.        ''' <returns>The default web browser filepath.</returns>
  8.        Friend Shared Function GetDefaultWebBrowser() As String
  9.  
  10.            Dim regKey As RegistryKey = Nothing
  11.            Dim regValue As String = String.Empty
  12.  
  13.            Try
  14.                regKey = Registry.ClassesRoot.OpenSubKey("HTTP\Shell\Open\Command", writable:=False)
  15.                Using regKey
  16.  
  17.                    regValue = regKey.GetValue(Nothing).ToString()
  18.                    regValue = regValue.Substring(0, regValue.IndexOf(".exe", StringComparison.OrdinalIgnoreCase) + ".exe".Length).
  19.                                        Trim({ControlChars.Quote})
  20.  
  21.                End Using
  22.  
  23.            Catch ex As Exception
  24.                Throw
  25.  
  26.            Finally
  27.                If regKey IsNot Nothing Then
  28.                    regKey.Dispose()
  29.                End If
  30.  
  31.            End Try
  32.  
  33.            Return regValue
  34.  
  35.        End Function
  36.  
  37.        ' Run Default WebBrowser
  38.        ' By Elektro
  39.        '
  40.        ''' <summary>
  41.        ''' Runs the specified url using the default registered web browser.
  42.        ''' </summary>
  43.        ''' <param name="url">The url to navigate.</param>
  44.        ''' <param name="windowState">The target web browser its window state.</param>
  45.        Friend Shared Sub RunDefaultWebBrowser(ByVal url As String,
  46.                                               ByVal windowState As SetWindowState.WindowState)
  47.  
  48.            Dim browserHwnd As IntPtr = IntPtr.Zero
  49.            Dim browserFileInfo As New FileInfo(WebBrowserTools.GetDefaultWebBrowser)
  50.            Dim browserProcess As New Process With
  51.                                {
  52.                                    .StartInfo = New ProcessStartInfo With
  53.                                                {
  54.                                                    .FileName = browserFileInfo.FullName,
  55.                                                    .Arguments = url,
  56.                                                    .WindowStyle = ProcessWindowStyle.Minimized,
  57.                                                    .CreateNoWindow = False
  58.                                                }
  59.                                }
  60.  
  61.            browserProcess.Start()
  62.            browserProcess.WaitForExit(0)
  63.  
  64.            Do Until browserHwnd <> IntPtr.Zero
  65.                browserHwnd = Process.GetProcessById(browserProcess.Id).MainWindowHandle
  66.            Loop
  67.  
  68.            SetWindowState.SetWindowState(browserHwnd, windowState)
  69.  
  70.        End Sub

Plus el P/Invoking:

Código
  1. ' ***********************************************************************
  2. ' Author           : Elektro
  3. ' Last Modified On : 10-02-2014
  4. ' ***********************************************************************
  5. ' <copyright file="SetWindowState.vb" company="Elektro Studios">
  6. '     Copyright (c) Elektro Studios. All rights reserved.
  7. ' </copyright>
  8. ' ***********************************************************************
  9.  
  10. #Region " Usage Examples "
  11.  
  12. 'Dim HWND As IntPtr = Process.GetProcessesByName("devenv").First.MainWindowHandle
  13. '
  14. 'SetWindowState.SetWindowState(HWND, SetWindowState.WindowState.Hide)
  15. 'SetWindowState.SetWindowState("devenv", SetWindowState.WindowState.Restore, Recursivity:=False)
  16.  
  17. #End Region
  18.  
  19. #Region " Imports "
  20.  
  21. Imports System.Runtime.InteropServices
  22.  
  23. #End Region
  24.  
  25. Namespace Tools
  26.  
  27.    ''' <summary>
  28.    ''' Sets the state of a window.
  29.    ''' </summary>
  30.    Public NotInheritable Class SetWindowState
  31.  
  32. #Region " P/Invoke "
  33.  
  34.        ''' <summary>
  35.        ''' Platform Invocation methods (P/Invoke), access unmanaged code.
  36.        ''' This class does not suppress stack walks for unmanaged code permission.
  37.        ''' <see cref="System.Security.SuppressUnmanagedCodeSecurityAttribute"/>  must not be applied to this class.
  38.        ''' This class is for methods that can be used anywhere because a stack walk will be performed.
  39.        ''' MSDN Documentation: http://msdn.microsoft.com/en-us/library/ms182161.aspx
  40.        ''' </summary>
  41.        Protected NotInheritable Class NativeMethods
  42.  
  43. #Region " Methods "
  44.  
  45.            ''' <summary>
  46.            ''' Retrieves a handle to the top-level window whose class name and window name match the specified strings.
  47.            ''' This function does not search child windows.
  48.            ''' This function does not perform a case-sensitive search.
  49.            ''' To search child windows, beginning with a specified child window, use the FindWindowEx function.
  50.            ''' MSDN Documentation: http://msdn.microsoft.com/en-us/library/windows/desktop/ms633499%28v=vs.85%29.aspx
  51.            ''' </summary>
  52.            ''' <param name="lpClassName">The class name.
  53.            ''' If this parameter is NULL, it finds any window whose title matches the lpWindowName parameter.</param>
  54.            ''' <param name="lpWindowName">The window name (the window's title).
  55.            ''' If this parameter is NULL, all window names match.</param>
  56.            ''' <returns>If the function succeeds, the return value is a handle to the window that has the specified class name and window name.
  57.            ''' If the function fails, the return value is NULL.</returns>
  58.            <DllImport("user32.dll", SetLastError:=False, CharSet:=CharSet.Auto, BestFitMapping:=False)>
  59.            Friend Shared Function FindWindow(
  60.                   ByVal lpClassName As String,
  61.                   ByVal lpWindowName As String
  62.            ) As IntPtr
  63.            End Function
  64.  
  65.            ''' <summary>
  66.            ''' Retrieves a handle to a window whose class name and window name match the specified strings.
  67.            ''' The function searches child windows, beginning with the one following the specified child window.
  68.            ''' This function does not perform a case-sensitive search.
  69.            ''' MSDN Documentation: http://msdn.microsoft.com/en-us/library/windows/desktop/ms633500%28v=vs.85%29.aspx
  70.            ''' </summary>
  71.            ''' <param name="hwndParent">
  72.            ''' A handle to the parent window whose child windows are to be searched.
  73.            ''' If hwndParent is NULL, the function uses the desktop window as the parent window.
  74.            ''' The function searches among windows that are child windows of the desktop.
  75.            ''' </param>
  76.            ''' <param name="hwndChildAfter">
  77.            ''' A handle to a child window.
  78.            ''' The search begins with the next child window in the Z order.
  79.            ''' The child window must be a direct child window of hwndParent, not just a descendant window.
  80.            ''' If hwndChildAfter is NULL, the search begins with the first child window of hwndParent.
  81.            ''' </param>
  82.            ''' <param name="strClassName">
  83.            ''' The window class name.
  84.            ''' </param>
  85.            ''' <param name="strWindowName">
  86.            ''' The window name (the window's title).
  87.            ''' If this parameter is NULL, all window names match.
  88.            ''' </param>
  89.            ''' <returns>
  90.            ''' If the function succeeds, the return value is a handle to the window that has the specified class and window names.
  91.            ''' If the function fails, the return value is NULL.
  92.            ''' </returns>
  93.            <DllImport("User32.dll", SetLastError:=False, CharSet:=CharSet.Auto, BestFitMapping:=False)>
  94.            Friend Shared Function FindWindowEx(
  95.                   ByVal hwndParent As IntPtr,
  96.                   ByVal hwndChildAfter As IntPtr,
  97.                   ByVal strClassName As String,
  98.                   ByVal strWindowName As String
  99.            ) As IntPtr
  100.            End Function
  101.  
  102.            ''' <summary>
  103.            ''' Retrieves the identifier of the thread that created the specified window
  104.            ''' and, optionally, the identifier of the process that created the window.
  105.            ''' MSDN Documentation: http://msdn.microsoft.com/en-us/library/windows/desktop/ms633522%28v=vs.85%29.aspx
  106.            ''' </summary>
  107.            ''' <param name="hWnd">A handle to the window.</param>
  108.            ''' <param name="ProcessId">
  109.            ''' A pointer to a variable that receives the process identifier.
  110.            ''' If this parameter is not NULL, GetWindowThreadProcessId copies the identifier of the process to the variable;
  111.            ''' otherwise, it does not.
  112.            ''' </param>
  113.            ''' <returns>The identifier of the thread that created the window.</returns>
  114.            <DllImport("user32.dll")>
  115.            Friend Shared Function GetWindowThreadProcessId(
  116.                   ByVal hWnd As IntPtr,
  117.                   ByRef processId As Integer
  118.            ) As Integer
  119.            End Function
  120.  
  121.            ''' <summary>
  122.            ''' Sets the specified window's show state.
  123.            ''' MSDN Documentation: http://msdn.microsoft.com/en-us/library/windows/desktop/ms633548%28v=vs.85%29.aspx
  124.            ''' </summary>
  125.            ''' <param name="hwnd">A handle to the window.</param>
  126.            ''' <param name="nCmdShow">Controls how the window is to be shown.</param>
  127.            ''' <returns><c>true</c> if the function succeeds, <c>false</c> otherwise.</returns>
  128.            <DllImport("User32", SetLastError:=False)>
  129.            Friend Shared Function ShowWindow(
  130.                   ByVal hwnd As IntPtr,
  131.                   ByVal nCmdShow As WindowState
  132.            ) As Boolean
  133.            End Function
  134.  
  135. #End Region
  136.  
  137.        End Class
  138.  
  139. #End Region
  140.  
  141. #Region " Enumerations "
  142.  
  143.        ''' <summary>
  144.        ''' Controls how the window is to be shown.
  145.        ''' MSDN Documentation: http://msdn.microsoft.com/en-us/library/windows/desktop/ms633548%28v=vs.85%29.aspx
  146.        ''' </summary>
  147.        Friend Enum WindowState As Integer
  148.  
  149.            ''' <summary>
  150.            ''' Hides the window and activates another window.
  151.            ''' </summary>
  152.            Hide = 0I
  153.  
  154.            ''' <summary>
  155.            ''' Activates the window and displays it in its current size and position.
  156.            ''' </summary>
  157.            Show = 5I
  158.  
  159.            ''' <summary>
  160.            ''' Activates and displays the window.
  161.            ''' If the window is minimized or maximized, the system restores it to its original size and position.
  162.            ''' An application should specify this flag when restoring a minimized window.
  163.            ''' </summary>
  164.            Restore = 9I
  165.  
  166.        End Enum
  167.  
  168. #End Region
  169.  
  170. #Region " Public Methods "
  171.  
  172.        ''' <summary>
  173.        ''' Set the state of a window by an HWND.
  174.        ''' </summary>
  175.        ''' <param name="WindowHandle">A handle to the window.</param>
  176.        ''' <param name="WindowState">The state of the window.</param>
  177.        ''' <returns><c>true</c> if the function succeeds, <c>false</c> otherwise.</returns>
  178.        Friend Shared Function SetWindowState(ByVal windowHandle As IntPtr,
  179.                                              ByVal windowState As WindowState) As Boolean
  180.  
  181.            Return NativeMethods.ShowWindow(windowHandle, windowState)
  182.  
  183.        End Function
  184.  
  185. #End Region
  186.  
  187.    End Class
  188.  
  189. End Namespace

Saludos


« Última modificación: 29 Enero 2015, 22:11 pm por Eleкtro » En línea


arrebato21

Desconectado Desconectado

Mensajes: 15



Ver Perfil
Re: Como podría esconder una pagina web
« Respuesta #2 en: 1 Febrero 2015, 21:53 pm »

Primero y ante todo perdona por no ponerlo en la sección correcta y no especificar mas.

Segunda, muchas gracias por tu ayuda lo he puesto en marcha con Internet explorer y gracias a tu ayuda y utilizando el código VisualBasicScript que me as facilitado.

Ahora como podría ponerlo para que inicie al encender windows, por ejemplo me funciona al colocarlo en la carpeta inicio pero claro lo que quiero ademas es que no se vea al ir al inicio de todos los programas en esa carpeta. quiero que este invisible.

Saludos.
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.709



Ver Perfil
Re: Como podría esconder una pagina web
« Respuesta #3 en: 1 Febrero 2015, 23:57 pm »

Me alegro de que te haya servido, pero aclárame una duda, ¿el simple script de VBS entonces SÍ que funciona con la ventana de IE?, estaría bien saberlo porque yo lo probé en dos navegadores menos en el IE, ahora siento que escribí todo ese otro largo código en VB.Net para nada, jaja, pero no hay problema :P.

Ahora como podría ponerlo para que inicie al encender windows, por ejemplo me funciona al colocarlo en la carpeta inicio pero claro lo que quiero ademas es que no se vea al ir al inicio de todos los programas en esa carpeta. quiero que este invisible.

Para conseguir lo más parecido a una verdadera "invisibilidad" se requieren conocimientos de programación para el uso de técnicas Stealth, por ejemplo, si se quiere ocultar un proceso en el administrador de tareas de Widnows (TaskManager) de "X" versión de Windows eso puede resultar una tarea muy laboriosa a nivel avanzado, cómo también es para otros tipos de invisibilidad la creación de servicios de Windows, Hooking, etc.

Si lo único que quieres es que no aparezca en la carpeta "Inicio" y te conformas con sacarlo de dicha carpeta, entonces puede añadir una clave en la sección Run del registro de Windows:

Startup.reg
Código
  1. Windows Registry Editor Version 5.00
  2.  
  3. [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
  4. "*Título"="C:\\Carpeta\\MiPrograma.exe"

Nota 1: El asterísco (*) indica que el programa se debe iniciar también al reiniciar el PC en modo seguro, si quieres evitar que el programa se inicie en modo seguro entonces no escribas el asterisco al principio del título.
Nota 2: La clave será accesible/visible desde cualquier editor del registro de Windows como el propio Regedit (obviamente), así cómo también por programas que permitan administrar los programas que se inician junto a Windows (ej: CCleaner)

También puedes utilizar mi aplicación File2Startup para añadir un programa al inicio de Windows de forma sencilla:
[SOURCE] File 2 startup v1.1

Cita de: File2Startup by Elektro

Saludos
En línea


arrebato21

Desconectado Desconectado

Mensajes: 15



Ver Perfil
Re: Como podría esconder una pagina web
« Respuesta #4 en: 3 Febrero 2015, 14:04 pm »

Con IE funciona de lujo y para esconder con tu aplicación, también muy bien. Muchas gracias.

Saludos.
« Última modificación: 3 Febrero 2015, 14:06 pm por arrebato21 » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
PHP Como podria cargar directamente una pagina PHP local
PHP
mrdlv 4 5,984 Último mensaje 1 Enero 2008, 23:59 pm
por mrdlv
Como esconder la IP « 1 2 »
Seguridad
Puntoinfinito 11 5,405 Último mensaje 9 Marzo 2012, 10:08 am
por Puntoinfinito
¿cómo esconder mi IP LAN?
Redes
Platanito Mx 3 1,574 Último mensaje 4 Diciembre 2013, 16:03 pm
por Platanito Mx
El tráiler de Batman v Superman: Dawn of Justice podría esconder a Robin
Noticias
wolfbcn 0 568 Último mensaje 22 Abril 2015, 14:43 pm
por wolfbcn
Como podría remover el HTML de una página web con C#?
.NET (C#, VB.NET, ASP)
KiddKeo 3 870 Último mensaje 1 Marzo 2017, 06:08 am
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines