Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - **Aincrad**

#1
Hola, Hace un Tiempo desarrolle un Stealer que lo llame PixieV Básicamente robaba las contraseñas guardadas en el navegador y las subía a algún servidor.

Como Estaba Desactualizado, ya no trabaja con versiones recientes del navegador. Lo actualice.

De hecho lo hice solo para participar en el Abril Negro de este año, pero no hubo evento....  :-\




Bueno Este Stealer Funciona Con todos los Navegadores basados en Chromium + Todos los demás navegadores en su versión mas reciente, asi que esta vigente....

Ventajas :

1) Se Instala al Inicio Windows.
2) Recolecta las Password guardadas en el navegador, y también todos los archivos .Txt que tengas en el escritorio y Documentos, los Comprime en un .zip y los sube al servidor.
3) Descarga e Instala otros virus, El verifica en el servidor y descargará e instalara cualquier Software o script que le diga.
4) NO REQUIERE Privilegios de administrador.
5) Se Propaga por USB.
6) No requiere de Dlls externas, Cargo las DLL desde los recursos, asi que basicamente Compilas el proyecto y solo usas el .exe, Olvidate de las dos DLL Externas.


Link :  autorun.inf.wim




Solo requiere un servidor, Yo uso este : https://000webhost.com/ es facil de usar, trae muchas cosas y sobre todo es gratuito.

Subes los PHP que deje en el repositorio, compilas el proyecto solo editando las urls del server y si quieres tambien el nombre del ensamblado.

Un buen Packer y/o Ofuscador. Yo por ejemplo le Pase Enigma + SFX de winrar y ni siquiera el 360 me lo detecto.

Eso fue todo, No Olviden comentar cualquier duda o pregunta que tengan.


#2



Bueno para empezar, ya habia dicho que haria un cliente para Netflix desde DragonTube y bueno lo hice.

Primeramente estaba usando EO.WebBrowser, un motor basado en Chromium.

Pero cuando lo habia terminado, y procedo a las pruebas, no podia reproducir nada en Netflix  :-(, el problema es el plugin Widevine, Al final aunque logre agregarlo, no funciono.....  :-\

Clone el proyecto, removi EO.WebBrowser, y me puse a manos a la obra con el Control WebBrowser de .Net Framework , basado en IE. Sorpresivamente Funcionio genial, solo tenia que instalar Silverlight.

Estos cambios basicamente redujeron el peso de la aplicacion. y Posiblemente tengan que actualizar su version de Internet Explorer en windows vista y talvez en Windows 7 tambien.







Descarga : Netflix Lite (2mb)

Requsitos :







No Posees Netflix? no pasa nada, sigan los pasos a continuación :

- Después de Instalar Silverlight y que la aplicación les abra correctamente.

1) Abrimos la aplicacion, les aparecera el Login tipico de Netflix (Correo y contraseña)

2) Presionamos F2 y les aparecerá un nuevo recuadro, ahí pondrán un código, el código es : SoyPobreXD

3) Presionamos OK y cargara una barra de progreso verde. No cambien de aplicacion o toquen alguna tecla de su teclado, hasta que termine de cargar, Si se queda trabada o da algun error, es por problemas de cache, en este caso solo cierren y abran la aplicación de nuevo y repitan el proceso.

4) Ya deberían esta adentro de Netflix. Disfrute!!  ;-)

Nota : Si el Paso 3 no le funciono o le salio algun error, entonces cuando cierre y abra la app de nuevo debería salirle otro mensaje al iniciar, preguntándole si quiere usar la Cuenta Global (Se guardo un Punto de re continuacion) , asi que no debe volver a meter el codigo , solo presiono que Si, y deberia volver a ver la barra de progreso verde.

Intente esto varias veces hasta que entre a Netflix, si tiene suerte entrara a la primera.





Preview :










No se olviden de comentar su Opinion!!

#3
Como dice el titulo , parece sencillo pero no lo logro.

Intento iniciar sesión en Netflix : https://www.netflix.com/login

Pero al escribir en el campo, por alguna razón es como si no lo hubiera escrito.

Código (javascript) [Seleccionar]
document.getElementById('id_userLoginId').value = 'UserEmail';

Incluso intente escribir en el atributo directamente, pero no funciona :

Código (javascript) [Seleccionar]
document.getElementById('id_userLoginId').setAttribute('value', 'UserEmail');

Espero puedan ayudarme , Gracias de antemano.


#4
Tipo: Ransomware
Lenguaje: C++
Autor : Desconocido





Hola, les cuento rápido.

Encontré este ransomware que cifra los archivos con extension .naar .

Tiene múltiples capas de compresión, y por alguna razón el Windows Defender no detecto nada. bueno tampoco esperaba que detectara algo .

Este es el executable Principal :

https://anonfiles.com/b2C3963bu7/setup_x86_x64_install_exe



Al extraerlo me deja otro instalador :



Al extraerlo por segunda y ultima vez :



Resulta que los supuestos .txt , son executables tambien :






Estos son los archivos Finales :

https://anonfiles.com/H9Ie9e33u3/setup_installer_rar

Muestra de Archivo Infectado :

https://anonfiles.com/t3Ma9138u0/Screenshot_5.png_neer

El mensaje que deja es este :






Hay alguien con conocimientos avanzados en reversing, o alguien que conozca la cura a esto?

gracias de antemano


#5
Hola, hoy vengo a pedir ayuda con algo, es muy parecido a este post


Solo que ahora intento meter botones en el player de youtube , asi :



Como ven lo he logrado , pero no lo tengo al mismo nivel de los otros botones.

Este es el codigo que tengo hasta ahora :

Código (javascript) [Seleccionar]


let html = `

<button onclick="download_DT()" class="ytp-download-button ytp-button" data-tooltip-target-id="ytp-download-button" aria-label="Download Video (F3)" title="Download Video (F3)">
<img src="https://i.imgur.com/8PmMX6s.png" />
</button>


`;

for (const documentcode of document.getElementsByClassName("ytp-right-controls")) {
    var OldCode = documentcode.innerHTML +'\n';
    documentcode.innerHTML=OldCode + html ;
}


Gracias de antemano.

#6

Hola, como dice en el titulo, necesito el formato completo del archivo "manifest.json" de extensiones para navegador google chrome.

Por ejemplo, tengo el ejmplo de Google aqui que es :

Código (java) [Seleccionar]
{
  // Required
  "manifest_version": 3,
  "name": "My Extension",
  "version": "versionString",

  // Recommended
  "action": {...},
  "default_locale": "en",
  "description": "A plain text description",
  "icons": {...},

  // Optional
  "action": ...,
  "author": ...,
  "automation": ...,
  "background": {
    // Required
    "service_worker":
  },
  "chrome_settings_overrides": {...},
  "chrome_url_overrides": {...},
  "commands": {...},
  "content_capabilities": ...,
  "content_scripts": [{...}],
  "content_security_policy": "policyString",
  "converted_from_user_script": ...,
  "current_locale": ...,
  "declarative_net_request": ...,
  "devtools_page": "devtools.html",
  "differential_fingerprint": ...,
  "event_rules": [{...}],
  "externally_connectable": {
    "matches": ["*://*.example.com/*"]
  },
  "file_browser_handlers": [...],
  "file_system_provider_capabilities": {
    "configurable": true,
    "multiple_mounts": true,
    "source": "network"
  },
  "homepage_url": "http://path/to/homepage",
  "host_permissions": [...],
  "import": [{"id": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}],
  "incognito": "spanning, split, or not_allowed",
  "input_components": ...,
  "key": "publicKey",
  "minimum_chrome_version": "versionString",
  "nacl_modules": [...],
  "natively_connectable": ...,
  "oauth2": ...,
  "offline_enabled": true,
  "omnibox": {
    "keyword": "aString"
  },
  "optional_permissions": ["tabs"],
  "options_page": "options.html",
  "options_ui": {
    "chrome_style": true,
    "page": "options.html"
  },
  "permissions": ["tabs"],
  "platforms": ...,
  "replacement_web_app": ...,
  "requirements": {...},
  "sandbox": [...],
  "short_name": "Short Name",
  "storage": {
    "managed_schema": "schema.json"
  },
  "system_indicator": ...,
  "tts_engine": {...},
  "update_url": "http://path/to/updateInfo.xml",
  "version_name": "aString",
  "web_accessible_resources": [...]
}






Hay todo bien, pero cuando voy a una extension de las que tengo instaladas en mi navegador, y reviso el archivo "manifest.json" de dicha extension, me doy cuenta que hay campos que nos salen en el ejemplo de google.

Por ejemplo :

Código (java) [Seleccionar]
{
   "background": {
      "persistent": false,
      "scripts": [ "common.js", "mirroring_common.js", "background_script.js" ]
   },
   "content_security_policy": "default-src 'self'; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' https://apis.google.com https://feedback.googleusercontent.com https://www.google.com https://www.gstatic.com; child-src https://accounts.google.com https://content.googleapis.com https://www.google.com; connect-src 'self' http://*:* https://*:*; font-src https://fonts.gstatic.com;",
   "default_locale": "en",
   "description": "Provider for discovery and services for mirroring of Chrome Media Router",
   "differential_fingerprint": "1.3bba8f43f392ecbc35b582986edcbf7c6591081b63f3f0214f8eed1d239b0f60",
   "externally_connectable": {
      "ids": [ "idmofbkcelhplfjnmmdolenpigiiiecc", "ggedfkijiiammpnbdadhllnehapomdge", "njjegkblellcjnakomndbaloifhcoccg" ]
   },
   "key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDNTWJoPZ9bT32yKxuuVa9LSEYobjPoXCLX3dgsZ9djDrWKNikTECjdRe3/AFXb+v8jkmmtYQPnOgSYn06J/QodDlCIG6l470+gkOoobUM7fOs1AVOse23qYUV4jbuRW3+YZlCvaWCFeczCNbGIUgKEi5B2fyQazy60AL1sLW3utQIDAQAB",
   "manifest_version": 2,
   "minimum_chrome_version": "37",
   "name": "Chrome Media Router",
   "oauth2": {
      "client_id": "919648714761-55j965o0km033psv3i9qls5mo3qtdrb0.apps.googleusercontent.com",
      "scopes": [ "https://www.googleapis.com/auth/calendar.readonly", "https://www.googleapis.com/auth/hangouts", "https://www.googleapis.com/auth/hangouts.readonly", "https://www.googleapis.com/auth/meetings", "https://www.googleapis.com/auth/userinfo.email" ]
   },
   "permissions": [ "alarms", "cast", "declarativeWebRequest", "desktopCapture", "gcm", "http://*/*", "identity", "identity.email", "management", "mdns", "mediaRouterPrivate", "metricsPrivate", "networkingPrivate", "processes", "storage", "system.cpu", "settingsPrivate", "tabCapture", "tabs", "https://hangouts.google.com/*", "https://*.google.com/cast/chromecast/home/gsse" ],
   "update_url": "https://clients2.google.com/service/update2/crx",
   "version": "9121.329.0.0",
   "web_accessible_resources": [ "cast_sender.js" ]
}



Como ves, es ese ejemplo , estan campos que en el ejemplo de google no hay, los cuales son : "persistent" y "scripts" , entro otros campos.





En pocas palabras , necesito un "manifest.json" Completo , con todos los campos y que hallan.



#7
Hola, hoy vengo a pedirles ayuda .

Tome el Tabcontrol, "Chrome69Tabcontrol " , lo pase a vb, y le agregue la posibilidad de arrastrar las pestañas de tabcontrol.

El problema es que quiero que desaparezca los botones de navigacion y no se como hacerlo :






Lo que quiero lograr es yo mismo calcular el tamaño disponible, y auto ajustar el tamaño de las pestañas, asi como lo hace Google Chrome.




Aqui el codigo :

Código (vbnet) [Seleccionar]
Imports System.Drawing.Drawing2D

Namespace DragonTubeControls

   Public Class Helpers

       Public Shared Function Base64ToImage(ByVal Base64str As String) As System.Drawing.Image
           Dim Fixb64 As String = Base64str.Replace(" ", "+")
           Dim MemStream As System.IO.MemoryStream = New System.IO.MemoryStream(Convert.FromBase64String(Fixb64))
           Dim ImageStream As Image = System.Drawing.Image.FromStream(MemStream)
           MemStream.Close()
           Return ImageStream
       End Function

   End Class

   Public Class Chrome69Tabcontrol
       Inherits TabControl

#Region " Decalre's "

       Private AddImageBlack As String = "iVBORw0KGgoAAAANSUhEUgAAABsAAAAcCAYAAACQ0cTtAAAAN0lEQVR42mNgGAWjYMiCyMiEh3SzLCoq8f+oZaOWgVMdyGBiMU1S6WicjVo2eMrGUTAKRsHgBgBNazNxj/heLwAAAABJRU5ErkJggg=="
       Private CloseImageBlack As String = "iVBORw0KGgoAAAANSUhEUgAAAA8AAAAQCAYAAADJViUEAAAAU0lEQVR42mNgGOHA3Nx8FRDboIubmZnZAsVX49UMVfQc2QCo2AsQTdB2mGKQASRpxGIAaRqhfrchSzNU43OQJpKcjayR5AADRRU2RVAD1jCMAgYAuEUszUWy7F8AAAAASUVORK5CYII="
       Private predraggedTab As TabPage
       Private ReferenceTabSize As New Size(505, 505)

#End Region


       Const CLOSE_SIZE As Integer = 16

       Public Sub New()
           MyBase.New()
           SetStyles()
           Me.SizeMode = TabSizeMode.Fixed
           Me.Dock = DockStyle.Fill
           Me.Font = New Font("Microsoft Yahei", 9.0F)
           Me.ItemSize = New Size(245, 35)
           Me.DoubleBuffered = True
           Me.AllowDrop = True
           ' Me.Multiline = True
           '  Me.AutoSize = False
       End Sub



       Private Sub SetStyles()
           MyBase.SetStyle(ControlStyles.DoubleBuffer Or ControlStyles.UserPaint Or ControlStyles.OptimizedDoubleBuffer Or ControlStyles.AllPaintingInWmPaint Or ControlStyles.ResizeRedraw Or ControlStyles.SupportsTransparentBackColor, True)
           MyBase.UpdateStyles()
       End Sub

       Public Overrides ReadOnly Property DisplayRectangle As Rectangle
           Get
               Dim rect As Rectangle = MyBase.DisplayRectangle
               Return New Rectangle(rect.Left - 8, rect.Top - 1, rect.Width + 12, rect.Height + 8)
           End Get
       End Property

       Protected Overrides Sub OnResize(ByVal e As EventArgs)
           MyBase.OnResize(e)
           Me.Refresh()
           Me.Update()
       End Sub

       Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
           MyBase.OnPaint(e)
           Dim rect As Rectangle = Me.ClientRectangle
           e.Graphics.SmoothingMode = SmoothingMode.HighQuality
           e.Graphics.InterpolationMode = InterpolationMode.HighQualityBilinear

           Using bufferedGraphics As BufferedGraphics = BufferedGraphicsManager.Current.Allocate(e.Graphics, rect)
               bufferedGraphics.Graphics.FillRectangle(New SolidBrush(Color.FromArgb(230, 232, 236)), rect)

               For index As Integer = 0 To Me.TabCount - 1
                   DrawTabPage(bufferedGraphics.Graphics, Me.GetTabRect(index), index)
               Next
               bufferedGraphics.Render(e.Graphics)
           End Using
       End Sub



       Private Sub DrawTabPage(ByVal graphics As Graphics, ByVal rectangle As Rectangle, ByVal index As Integer)
           graphics.SmoothingMode = SmoothingMode.HighQuality
           graphics.InterpolationMode = InterpolationMode.HighQualityBilinear
           graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias
           '  Me.TabPages(index).AutoSize = False
           '  rectangle.Size = Me.ItemSize

           Dim sf As StringFormat = New StringFormat()
           sf.Trimming = StringTrimming.EllipsisCharacter
           sf.FormatFlags = StringFormatFlags.NoWrap
           Dim fontRect As Rectangle = New Rectangle(rectangle.X + 40, rectangle.Y + 7, rectangle.Width, Me.TabPages(index).Font.Height)
           Dim rectClose As Rectangle = GetCloseRect(rectangle)
           Dim p5 As Point = New Point(rectangle.Left, 7)
           Dim p6 As Point = New Point(rectClose.X - 12, 12)



           Try

           If index = Me.TabCount - 1 Then

                   Using Add As Bitmap = Helpers.Base64ToImage(AddImageBlack)
                       graphics.DrawImage(Add, p5)
                   End Using

               Else

                   If index = Me.SelectedIndex Then

                       graphics.FillPath(New SolidBrush(Color.FromArgb(255, 255, 255)), CreateTabPath(rectangle))
                       graphics.DrawString(Me.TabPages(index).Text, Me.TabPages(index).Font, New SolidBrush(Color.SlateGray), fontRect, sf)

                       If Me.ImageList IsNot Nothing Then
                           Dim imgindex As Integer = Me.TabPages(index).ImageIndex
                           Dim key As String = Me.TabPages(index).ImageKey
                           Dim icon As Image = New Bitmap(32, 32)

                           If imgindex > -1 Then
                               icon = Me.ImageList.Images(imgindex)
                           End If

                           If Not String.IsNullOrEmpty(key) Then
                               icon = Me.ImageList.Images(key)
                           End If

                           graphics.DrawImage(icon, rectangle.Left + 22, rectangle.Top + 9)
                       End If

                       Using Close As Bitmap = Helpers.Base64ToImage(CloseImageBlack)
                           graphics.DrawImage(Close, p6)
                       End Using

                   Else

                       graphics.FillPath(New SolidBrush(Color.FromArgb(230, 232, 236)), CreateTabPath(rectangle))
                       graphics.DrawString(Me.TabPages(index).Text, Me.TabPages(index).Font, New SolidBrush(Color.Gray), fontRect, sf)

                       If Me.ImageList IsNot Nothing Then
                           Dim imgindex As Integer = Me.TabPages(index).ImageIndex
                           Dim key As String = Me.TabPages(index).ImageKey
                           Dim icon As Image = New Bitmap(32, 32)

                           If imgindex > -1 Then
                               icon = Me.ImageList.Images(imgindex)
                           End If

                           If Not String.IsNullOrEmpty(key) Then
                               icon = Me.ImageList.Images(key)
                           End If

                           graphics.DrawImage(icon, rectangle.Left + 22, rectangle.Top + 9)
                       End If

                       Using Close As Bitmap = Helpers.Base64ToImage(CloseImageBlack)
                           graphics.DrawImage(Close, p6)
                       End Using

                   End If
               End If

           Catch __unusedNullReferenceException1__ As System.NullReferenceException
           End Try
       End Sub

       Protected Overrides Sub OnSelecting(ByVal e As TabControlCancelEventArgs)
           If e.TabPageIndex = Me.TabPages.Count - 1 Then e.Cancel = True
       End Sub

#Region " Mause Event "

       Protected Overrides Sub OnMouseMove(ByVal e As MouseEventArgs)
           If e.Button = MouseButtons.Left AndAlso predraggedTab IsNot Nothing Then
               Me.DoDragDrop(predraggedTab, DragDropEffects.Move)
           End If

           MyBase.OnMouseMove(e)
       End Sub

       Protected Overrides Sub OnMouseUp(ByVal e As MouseEventArgs)
           predraggedTab = Nothing
           MyBase.OnMouseUp(e)
       End Sub

       Protected Overrides Sub OnMouseDown(ByVal e As MouseEventArgs)
           MyBase.OnMouseDown(e)
           Dim lastIndex As Integer = Me.TabCount - 1
           Dim AddImage As Bitmap = Helpers.Base64ToImage(AddImageBlack)
           Dim p5 As Point = New Point(Me.GetTabRect(lastIndex).Left, 5)
           Dim AddImgRec = New Rectangle(p5, AddImage.Size)

           If Me.GetTabRect(lastIndex).Contains(e.Location) Then

               If AddImgRec.Contains(e.Location) Then
                   Me.TabPages.Insert(lastIndex, "Chrome Tab")
                   Me.SelectedIndex = lastIndex
               End If
           End If

           If e.Button = MouseButtons.Left Then

               ' Incomplete Bug
               '  If Not Me.TabCount <= 3 Then
               '      Dim Xw As Integer = Me.Width / Me.TabCount
               '     If Xw > 245 Then Xw = 245                                  
               '     Me.ItemSize = New Size(Me.Width / Me.TabCount, Me.ItemSize.Height)
               ' End If

               Dim x As Integer = e.X, y As Integer = e.Y
               Dim myTabRect As Rectangle = Me.GetTabRect(Me.SelectedIndex)
               myTabRect.Offset(myTabRect.Width - (CLOSE_SIZE + 23), 5)
               myTabRect.Width = CLOSE_SIZE
               myTabRect.Height = CLOSE_SIZE
               Dim isClose As Boolean = x > myTabRect.X AndAlso x < myTabRect.Right AndAlso y > myTabRect.Y AndAlso y < myTabRect.Bottom

               If isClose = True Then

                   If Me.TabPages.Count > 2 Then
                       Dim tab As TabPage = Me.SelectedTab
                       Me.TabPages.Remove(tab)
                       Me.SelectedTab.Refresh()
                       Me.SelectedIndex = Me.TabPages.Count - 2
                       tab.Dispose()
                       GC.Collect()
                       GC.WaitForPendingFinalizers()
                   Else
                       System.Environment.[Exit](0)
                       Dispose()
                   End If
               End If
           End If

           predraggedTab = getPointedTab()
       End Sub

#End Region

#Region " Private Methods "

       Private Function CreateTabPath(ByVal tabBounds As Rectangle) As GraphicsPath
           Dim path As GraphicsPath = New GraphicsPath()
           Dim spread, eigth, sixth, quarter As Integer
           spread = CInt(Math.Floor(CDec(tabBounds.Height)))
           eigth = CInt(Math.Floor(CDec(tabBounds.Height) * 1 / 11))
           sixth = CInt(Math.Floor(CDec(tabBounds.Height) * 3 / 10))
           quarter = CInt(Math.Floor(CDec(tabBounds.Height) * 2 / 3))
           path.AddCurve(New Point() {New Point(tabBounds.X + 2, tabBounds.Bottom + 2), New Point(tabBounds.X + sixth, tabBounds.Bottom - eigth), New Point(tabBounds.X + spread - quarter, tabBounds.Y + eigth), New Point(tabBounds.X + spread, tabBounds.Y)})
           path.AddLine(tabBounds.X + spread, tabBounds.Y, tabBounds.Right - spread, tabBounds.Y)
           path.AddCurve(New Point() {New Point(tabBounds.Right - spread, tabBounds.Y), New Point(tabBounds.Right - spread + quarter, tabBounds.Y + eigth), New Point(tabBounds.Right - sixth, tabBounds.Bottom - eigth), New Point(tabBounds.Right + 2, tabBounds.Bottom + 2)})
           path.CloseFigure()
           Return path
       End Function

       Private Function GetCloseRect(ByVal myTabRect As Rectangle) As Rectangle
           myTabRect.Offset(myTabRect.Width - (CLOSE_SIZE + 10), 5)
           myTabRect.Width = CLOSE_SIZE
           myTabRect.Height = CLOSE_SIZE
           Return myTabRect
       End Function

#End Region

#Region " Other Events "

       Protected Overrides Sub OnDragOver(ByVal drgevent As DragEventArgs)
           Dim draggedTab = CType(drgevent.Data.GetData(GetType(TabPage)), TabPage)
           Dim pointedTab = getPointedTab()

           If ReferenceEquals(draggedTab, predraggedTab) AndAlso pointedTab IsNot Nothing Then
               drgevent.Effect = DragDropEffects.Move

               If Not ReferenceEquals(pointedTab, draggedTab) Then
                   Me.ReplaceTabPages(draggedTab, pointedTab)
               End If
           End If

           MyBase.OnDragOver(drgevent)
       End Sub

       Private Function getPointedTab() As TabPage
           For i = 0 To Me.TabPages.Count - 1
               If Me.GetTabRect(i).Contains(Me.PointToClient(Cursor.Position)) Then
                   Return Me.TabPages(i)
               End If
           Next

           Return Nothing
       End Function

       Private Sub ReplaceTabPages(ByVal Source As TabPage, ByVal Destination As TabPage)
           Try
               Dim SourceIndex = Me.TabPages.IndexOf(Source)
               Dim DestinationIndex = Me.TabPages.IndexOf(Destination)
               Me.TabPages(DestinationIndex) = Source
               Me.TabPages(SourceIndex) = Destination

               If Me.SelectedIndex = SourceIndex Then
                   Me.SelectedIndex = DestinationIndex
               ElseIf Me.SelectedIndex = DestinationIndex Then
                   Me.SelectedIndex = SourceIndex
               End If
               Me.Refresh()
           Catch ex As Exception

           End Try
       End Sub

#End Region

   End Class
End Namespace



Gracias de antemano.

#8
Hola, soy yo de nuevo. Les cuento algo rapido....

El fin de semana, me lleve mi PC (DELL Hybrid 140g). a la casa de un amigo. al llegar , el me presto un monitor, teclado y mause, pero resulto que el único monitor que tenia VGA , era de menor resolución al mío, entonces no puede configurar la resolución del Windows .

La resolución Máxima que soporta mi monitor es 1400x1050 y la del monitor que me prestaron era  1280x1024 , entonces el monitor se queda en negro.

Bueno , busque varias soluciones, no al final no logre nada. no la pude usar.




Ahora en casa, con mi monitor, hice un pequeño programa de menos de 1mb para solucionar esto.




Introduccion

En Windows, si cambia de monitor y la configuración de Windows es más alta que la resolución del nuevo monitor, el monitor estará completamente negro y, si no tiene otro monitor, no podrá configurar la resolución de Windows. Podrías resolverlo de alguna forma tediosas.

Con este programa de menos de 1 MB, resuelves este problema.


Cuando se ejecuta por primera vez, el Programa le preguntará si desea agregarlo al inicio de Windows. (Debe dar que SI)

Utilice las teclas de acceso rápido para configurar:


  • Ctrl + ALT + A           (Establece la resolución más baja del sistema)
  • Ctrol + ALT + R         (Establecer la configuración anterior)







#9
Hola, les presento una beta de mi nuevo programa.

Para empezar, quiero su opinion, y otra cosa :

- El Gif que establecieron, se ve lento o con lag?

       Bien estoy renderizando totalmente con GDI, se podrán inmaginar...
       Recomiendo al menos 2GB de Ram, como minimo.

Bien, Pienso usar WebGL a futuro, a lo mejor es mas rápido. obiamente usando chromium. (Esto agregara un peso considerable al programa, actual mente pesa 1mb)






Download : https://toolslib.net/downloads/viewdownload/480-xylateware/

Bueno , esto es una beta, por que pienso cambiar muchas cosas, y quiero su opinion, y un agradecimiento a @Nebire por su ayuda.







#10
Hola, tengo una duda, haber si alguien podria ayudarme.

Estoy intentando poner un gif de fondo de pantalla , para eso... se me ocurre obtener cada frame del gif y cada frame , lo pongo de fondo de escritorio. pero el problema es que va lageado.

Esto es lo que estoy haciando :


Para manipular el Gif , uso la clase de elektro, yo hice la mia, pero consume mucha memoria. asi que F.

Clase : https://foro.elhacker.net/net/libreria_de_snippets_para_vbnet_compartan_aqui_sus_snippets-t378770.0.html;msg2116514#msg2116514


Y lo que estoy haciendo :

Código (vbnet) [Seleccionar]


'   StartEngine("C:\Users\S4Lsalsoft\Pictures\06bdf8ad69ff62062ae7dceb250d8866.gif")

    <DllImport("user32.dll", CharSet:=CharSet.Auto)>
    Private Shared Function SystemParametersInfo(ByVal uAction As Integer, ByVal uParam As Integer, ByVal lpvParam As String, ByVal fuWinIni As Integer) As Integer
    End Function

    Const SPI_SETDESKWALLPAPER As Integer = 20
    Const SPIF_UPDATEINIFILE As Integer = &H1
    Const SPIF_SENDWININICHANGE As Integer = &H2



Public Sub StartEngine(ByVal GifPath As String)
         Dim key As RegistryKey = Registry.CurrentUser.OpenSubKey("Control Panel\Desktop", True)
        key.SetValue("WallpaperStyle", 1.ToString())
        key.SetValue("TileWallpaper", 0.ToString())
        key.Dispose()

        Dim Asynctask As New Task(New Action(Sub()

                                                 Dim gif As New GIF(GifPath)

                                                 Do Until gif.EndOfFrames ' Iterate frames until the end of frame count.
                                                     Dim CurrentFrame As Image = gif.NextFrame()

                                                     CurrentFrame.Save("BackgroundFrames\displayImage" & gif.ActiveFrameIndex & ".bmp")
                                                     CurrentFrame.Dispose()

                                                     Dim tempPath As String = Path.Combine(Application.StartupPath, "BackgroundFrames\displayImage" & gif.ActiveFrameIndex & ".bmp")
                                                     SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, tempPath, SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE)

                                                     '   Thread.Sleep(60) ' Simulate a FPS thingy.
                                                     Application.DoEvents()

                                                     If (gif.EndOfFrames) Then
                                                         ' Set active frame to 0 for infinite loop:
                                                         gif.ActiveFrameIndex = 0
                                                     End If

                                                 Loop

                                             End Sub), TaskCreationOptions.PreferFairness)
        Asynctask.Start()

    End Sub




Funciona pero va muy lento , alguna solucion? , gracias de antemano .


#11
Hola, Como dice el titulo , quiero dar permisos de administrador a un segmento de código en especifico.

No se si esto es posible, tal vez se me ocurre de alguna forma, identificando la instancia de mi app a través del Handle. pero la verdad no se me ocurre como.

Investigando, no se si funcionaria CoCreateInstanceAsAdmin .

O alternativamente dar permisos de administrador, sin tener que cerrar la aplicacion. osea en tiempo de ejecución . no se si me explique.

Es posible ? gracias de antemano .
#12
Hola, como dice el titulo, estoy necesitando inscrustar botones, en youtube. justo arriba del titulo.

pero por alguna razon el titulo desaparece , y aparece mi boton, osea esa region , desaparece .

estoy haciendo esto :

Código (javascript) [Seleccionar]
var html = `

<button name="favorito" type="button">
<svg aria-hidden="true" viewBox="0 0 10 10">
<path d="m7.4 8.8-2.4-1.3-2.4 1.3.46-2.7-2-1.9 2.7-.39 1.2-2.5 1.2 2.5 2.7.39-1.9 1.9z"/>

</svg>

Agregar a favoritos

</button>

`;

var OldCode = document.getElementById("info").innerHTML +'\n';

document.getElementById("info").innerHTML=OldCode + html ;



Y este es el resultado :







Como pueden ver el titulo e información del video , desapareció, y no se por que . espero puedan ayudarme, gracias de antemano.

#13
Hola a todos !

Quiero presentares mi nueva aplicación, un cliente de Youtube . se preguntaran : "Por que necesito un cliente de Youtube? puedo abrir directamente Youtube desde el navegador"

Bueno mi cliente de Youtube es muy bueno, con herramientas ÚNICAS. por las cuales hizo que me tumbaran mi aplicación a la semana de toolslib (donde subo mis proyectos.)





DragonTube - Best Youtube Client


Bueno como ya saben , mi Cliente de yotube tiene varias Funcionalidades especiales. bien para empezar, yo un dia Programando , queria ver un video de youtube, y mantaner el video en una esquina de la pantalla mientras programaba, pero no podia, entonces se me ocurrio crear mi propio cliente de youtube.

Mi cliente de Youtube te permite en general , ver tu video mientras haces alguna otra tarea. y no esta carente de funciones especiales.


                          Caracteristicas :


  •  -Ads Block (creo que fue la razón por la que me tumbaron el proyecto)
  •  -Youtube Fast Iframe. (Optimiza el video en reproduccion, injectando un codigo javascript)
  •   -Downloads (MP3 & Video)
  •   -Youtube Player Mini. (Mi Propio reproductor de youtube es GENIAL)
  •  -Youtube Mode (Desktop and Mobile)
  •  -All Servers....




Bien, lo Pueden descargar desde aqui : DragonTube Official Site

Porfavor ,pueden darle like a la pagina de face y compartirla si gustan : DragonTube On Facebook

ahora algunas Imagenes :







algunas menciones , Gracias al compañero @BloodSharp , que me hizo los iconos, es un muy buen diseñador grafico y programador.




Si alguien tiene experiencia en terminos legales al crear aplicaciones de este tipo, me podrian orientar por que mi aplicacion fue dada de baja? y no me la aceptan, osea mi app no es diferente de cualquer navegador como Opera / google chrome / morzilla, solo que mi app trabaja unicamente con youtube y no come toda la memoria ram, como lo hacen los navegadores.

le quite el adsblock y la opcion de descargar los videos, pero ya no me la aceptan ;.;


sera que mi app inflige algún termino de youtube ?

si alguien tiene conocimiento , me avisa porfa, gracias de antemano.


#14
InstallerSetup

Es un instalador, no utiliza plantillas ni dependencias.

Cree su propio instalador para su aplicación.




Características


  • Verifique las versiones, determine la actualización de la versión anterior.

  • Compresión de los datos a zip.

  • Creación de Accesos Directos.

  • Descompresión rápida y eficaz.

  • Interfaz moderna y sencilla.

  • Contiene todas sus funciones completas. (Instalación, desinstalación y actualización)

  • Acuerdo de licencia.

  • Cuadro de diálogo del navegador de carpetas moderno.

          Link : InstallerSetup


                  Preview:








#15
Hola, tengo una duda. perdón si esta en la sección equivocada

estoy probando este stealer : https://github.com/LimerBoy/Adamantium-Thief .

veo que tambien "obtiene Cookies" . pero para que ? .

osea no se si me explico. que esa info , que se puede hacer?

por ejemplo el ladrón de Cookies obtuvo esta info :


value:       404973723b75474ba0dc842c9c0e8461
host key :  .netflix.com
name:       thx_guid
Path:
Expires:    04/05/2024 11:08:47 a.m.
IsSecure:  FALSE


Mi pregunta es , que se puede hacer con esto ?

gracias de antemano.
#16
Hola! Hoy les presento el Programa que he estado desarrollando Ultimamente, el cual le ire agregando muchas mas herramientas Utiles.

Antes que nada Si tienes alguna sugerencia o Idea para agregar al Proyecto, es Bienvenida!




Code Smart
Caracteristicas


  • VBS Debugger (No esta Completo pero esta Funcional) xD
  • Batch Debugger (En Pruebas , todavía no esta terminado asi que F)
  • Posibilidad de Correr cualquier Script culla extension este registrada en el sistema, Por ejemplo PowerShell, Python o Lua
  • Obfuscador de Codigo , Actualmente (Batch , VBS y HTML (BUG))
  • Convertidor de Codigo, Bat a VBS o HTML a vbs o VBS a BAT
  • Escaner antimalware , (Mi Propia creacion Xylon Antivir)
  • Muchas Otras herramientas mas




Link De descarga : Code Smart




Preview:

















Creditos a :


  • @Elektro (Por Su class DarkMode para Scintilla.NET entre otros Snipets)
  • @Enderman Gray (Creador de USB File Resc, Sin su Idea este Proyecto jamas hubiera comenzado.)
  • y por ultimo Yo.




Fuentes :

La Obfuscacion para Batch es una Remasterizacion de mis Viejos Proyectos :


La Conversion de Bat a VBS es una Remasterizacion de mi Viejo Proyecto :


Los demas metodos de Conversion Provienen de aqui : Link



#17
Hola a todos, Tiempo que no publico en esta sección.

Desde que me pase a .Net abandone toda programacion de Scripts, vbs y batch.

Bueno he creado mi propia COM en .NET, es una venta Debug para tus VBS Scrips

La idea la he sacado de este Post : [APORTE] [VBS] Añade una ventana Debug para tus scripts!




Pasos Para Instalar :

1) Descargar y extraer : VBSDebugger.rar
2) Ejecutar "RegisterComObject.exe" y registrar la DLL "VBSDebugger.DLL"



3) Llamar COM desde tu vbs y Disfrutar.





Para Usarlo debemos agregar esta funcion al inicio de nuestro Script vbs :

Código (vb) [Seleccionar]
Dim oMIE
Function Debug(T)
    If Not IsObject( oMIE ) Then
       Set oMIE = CreateObject("VBSDebugger.Debug")
           oMIE.SetDialogTitle("VBS Debugger By Aincrad")
           oMIE.ToolBar(False)
           oMIE.SetDialogWidth(603)
           oMIE.SetDialogHeight(335)
           oMIE.OpenDebugDialog()
     End If
           oMIE.Write(T)
End Function


Y para llamamos la funcion asi :

Código (vb) [Seleccionar]
Debug "hola"





Aqui un ejemplo :

Código (vb) [Seleccionar]
Dim oMIE
Function Debug(T)
    If Not IsObject( oMIE ) Then
       Set oMIE = CreateObject("VBSDebugger.Debug")
           oMIE.SetDialogTitle("Cutt.Ly Logger")
           oMIE.ToolBar(False)
           oMIE.SetDialogWidth(603)
           oMIE.SetDialogHeight(335)
           oMIE.OpenDebugDialog()
     End If
           oMIE.Write(T)
End Function

Debug "Starting Cutt.Ly Logger By Aincrad"
  Dim IE
  Dim MyDocument
    Set IE = CreateObject("InternetExplorer.Application")
          IE.Visible = 0
          IE.navigate "https://cutt.ly/RjmR9Bj"
    While IE.ReadyState <> 4 : WScript.Sleep 100 : Wend
    Debug "Ready Page Loaded"
    WScript.Sleep(5000)
    IE.Quit


Se Veria ASI :



No Olviden Comentar!!  ::)


#18

Introducción
Among US.MOD es un MultiCheat creado para el popular juego Among US.
Creadores : Destroyer#8328 y H a r o l d#7626.​

Caracteristicas :​


  • Radar | Usando AmongUsMemory
  • Información del juego: [Lista de jugadores, Evento del juego] | Usando AmongUsMemory
  • Modo de jugador: [Compañero de equipo - Impostor - Fantasma]
  • Rambow Color [Con opción para elegir la velocidad de cambio.]
  • Anulación de velocidad [Con opción para elegir la velocidad.]
  • Tiempo de enfriamiento. [Con opción para cambiar los segundos del contador]
  • Detector de impostores.
  • Camina a través de las paredes.
  • Bypass anti-Flood.
  • Anti Bypass.
  • Fantasma visible.
  • Chat fantasma visible.
  • Mata a otro impostor.
  • Habilitar tarea.
  • Bypass de puertas de sabotaje.
  • Jugador invisible.
  • Ver todo.
  • Cambiador de piel.
  • Cambiar nombre.
  • Sistema de registro.
  • Sistema multi-lenguaje.
  • Sistema de consejos para todas las funciones de trucos.

       Source-Code : AmongUS.MOD​

Preview :




#19
HLPCE es un lanzador y navegador de servidores para Halo CE y PC.


Puede configurar las opciones del argumento.

Puedes poner tus fotos de fondo, solo tienes que poner tus imágenes en la carpeta "Background".




Caracteristicas :


  • Navegador del servidor | Usando la API de GameTracker
  • Sistema de invitación al servidor.
  • ¡Noticias y actualizaciones del sistema!
  • Información completa del servidor.
  • Sistema de lista de servidores favoritos.
  • Importar y explorar la lista de servidores.
  • Interfaz súper moderna y agradable, personalizable con imágenes de fondo que decidas poner.
  • Windowed Mode[modo de ventana]
  • FullScreen Mode [Modo de pantalla completa]
  • Fake FullScreen [Modo falso de pantalla completa] - [Te permite superponer otras aplicaciones [que tienen activa la propiedad TopMost] en la parte superior del juego]
  • Consola habilitada
  • Capturas de pantalla habilitadas
  • DevMode
  • Sin Gamma
  • Sin sonido
  • No hay video
  • Sin joystick
  • Modo seguro
  • Es muy, muy ligero.



Puedes Descargar la Aplicacion y Si quieren mas Info visiten el repositorio :






Imagenes :






Porfavor Comentar ! gracias  :D



#20
Hola, Bueno hoy hago este post para compartir . publicitar mi aplicacion.

Siempre descargo cosas y muchas veces termino llenando mi escritorio. por eso cree Desktop Organizer.







Introducion :  


En Windows, un escritorio desordenado puede ser agotador y destruir la productividad. A menudo, la mayoría de los usuarios llenan sus escritorios con toneladas de aplicaciones descargadas y archivos creados por ellos mismos hasta que la pantalla se convierte en una especie de vertedero lleno de iconos que apenas permiten ver la imagen de fondo. Con Desktop Organizer, puede organizar su escritorio instantáneamente con un solo click.


Además de limpiar el escritorio, Desktop Organizer también proporciona varias herramientas para ayudarle a trabajar de forma más inteligente.














Si tienen Ideas de que tipo de Herramienta / mejora , hacerle , Comenten .


#21
Hola , A todos. Algunos ya sabran que es Imposible Superponer tu Aplicación sobre un Juego que trabaja con Direcx y que esta en Pantalla Completa.

Bien Empecemos !




Introduccion :

     Es un Problema muy Común que cuando algún Programador en .Net , (Que haga Cheats) para juegos.
     Cuando quiera superponer su Applicacion sobre el juego en pantalla completa no lo logre. ya que basicamente El Juego "Secuestra la pantalla".

     En este caso , hago este Post , para Compartir "Mi" solución a este Problema.


     Cabe Resaltar que :

     

  •      Los Juegos que Usan Como motor OPENGL, No tienen este Problema. Se puede superponer facilmente otra Applicacion sobre ellos.
  •      No todos Los juegos Direcx tienen este Problema, Por Ejemplo Operation7, WolfTeam, Swat4 ,Entre Otros...
  •      La mayoría de Juegos creados con Unity Tampoco tienen este Problema.

     Entonces Empecemos...




    Primero que todo Mi solución no fue Intentar Forzar de alguna manera la superposición. ya que no lo logre.

     Quiero resaltar que hay un método que funciona, pero No muy Practico a mi parecer. Basicamente tienes que Conectar con EndScene .

     Basicamente usando SlimDX y EasyHook, Aca un Breve tutorial : [Tutorial] How to become an EndScene() hooker

     Por que no es muy Practico? , No lo es ya que Este metodo es facilmente Detectado por los AC (Anti-Cheats).





Solución :

     Bien mi Método , Fue una Solucion facil , Si no puedo Superponer sobre un Juego en pantalla Completa. Entonces :

     - EMULARE EL MODO PANTALLA COMPLETA.

     Básicamente Hacemos esto :


     1) Corremos Nuestro Juego en modo ventana, Algunos traen la opción en el Apartado de Configuración - Video.

     En caso de que No traiga esta Opción , Tienes que Crear un Acceso Directo, Abrir las Propiedades del Acceso Directo y Colocar al final el Parámetro : "-window"
     De todos modos aquí dejo un Tutorial Sobre esto : Play a Computer Game in Windowed Mode

     2) Emulamos / Forzamos El modo FullScreen. Para Ello Hacemos :


      Paso 1 : Agregamos a Su Proyecto Las Clases SetWindowStyle.vb y SetWindowState.vb.


SetWindowStyle.vb
Código (vbnet) [Seleccionar]
' ***********************************************************************
' Author           : Destroyer
' Last Modified On : 29-09-2020
' ***********************************************************************
' <copyright file="SetWindowStyle.vb" company="Elektro Studios">
'     Copyright (c) All rights reserved.
' </copyright>
' ***********************************************************************

#Region " Usage Examples "

'Dim HWND As IntPtr = Process.GetProcessesByName("devenv").First.MainWindowHandle
'
'SetWindowState.SetWindowStyle(HWND, SetWindowStyle.WindowStyles.WS_BORDER)
'SetWindowState.SetWindowStyle("devenv", SetWindowStyle.WindowStyles.WS_BORDER, Recursivity:=False)

#End Region

#Region " Imports "

Imports System.Runtime.InteropServices

#End Region

''' <summary>
''' Sets the style of a window.
''' </summary>
Public NotInheritable Class SetWindowStyle

#Region " P/Invoke "

    ''' <summary>
    ''' Platform Invocation methods (P/Invoke), access unmanaged code.
    ''' This class does not suppress stack walks for unmanaged code permission.
    ''' <see cref="System.Security.SuppressUnmanagedCodeSecurityAttribute"/>  must not be applied to this class.
    ''' This class is for methods that can be used anywhere because a stack walk will be performed.
    ''' MSDN Documentation: http://msdn.microsoft.com/en-us/library/ms182161.aspx
    ''' </summary>
    Protected NotInheritable Class NativeMethods

#Region " Methods "

        ''' <summary>
        ''' Retrieves a handle to the top-level window whose class name and window name match the specified strings.
        ''' This function does not search child windows.
        ''' This function does not perform a case-sensitive search.
        ''' To search child windows, beginning with a specified child window, use the FindWindowEx function.
        ''' MSDN Documentation: http://msdn.microsoft.com/en-us/library/windows/desktop/ms633499%28v=vs.85%29.aspx
        ''' </summary>
        ''' <param name="lpClassName">The class name.
        ''' If this parameter is NULL, it finds any window whose title matches the lpWindowName parameter.</param>
        ''' <param name="lpWindowName">The window name (the window's title).
        ''' If this parameter is NULL, all window names match.</param>
        ''' <returns>If the function succeeds, the return value is a handle to the window that has the specified class name and window name.
        ''' If the function fails, the return value is NULL.</returns>
        <DllImport("user32.dll", SetLastError:=False, CharSet:=CharSet.Auto, BestFitMapping:=False)>
        Friend Shared Function FindWindow(
           ByVal lpClassName As String,
           ByVal lpWindowName As String
        ) As IntPtr
        End Function

        ''' <summary>
        ''' Retrieves a handle to a window whose class name and window name match the specified strings.
        ''' The function searches child windows, beginning with the one following the specified child window.
        ''' This function does not perform a case-sensitive search.
        ''' MSDN Documentation: http://msdn.microsoft.com/en-us/library/windows/desktop/ms633500%28v=vs.85%29.aspx
        ''' </summary>
        ''' <param name="hwndParent">
        ''' A handle to the parent window whose child windows are to be searched.
        ''' If hwndParent is NULL, the function uses the desktop window as the parent window.
        ''' The function searches among windows that are child windows of the desktop.
        ''' </param>
        ''' <param name="hwndChildAfter">
        ''' A handle to a child window.
        ''' The search begins with the next child window in the Z order.
        ''' The child window must be a direct child window of hwndParent, not just a descendant window.
        ''' If hwndChildAfter is NULL, the search begins with the first child window of hwndParent.
        ''' </param>
        ''' <param name="strClassName">
        ''' The window class name.
        ''' </param>
        ''' <param name="strWindowName">
        ''' The window name (the window's title).
        ''' If this parameter is NULL, all window names match.
        ''' </param>
        ''' <returns>
        ''' If the function succeeds, the return value is a handle to the window that has the specified class and window names.
        ''' If the function fails, the return value is NULL.
        ''' </returns>
        <DllImport("User32.dll", SetLastError:=False, CharSet:=CharSet.Auto, BestFitMapping:=False)>
        Friend Shared Function FindWindowEx(
           ByVal hwndParent As IntPtr,
           ByVal hwndChildAfter As IntPtr,
           ByVal strClassName As String,
           ByVal strWindowName As String
        ) As IntPtr
        End Function

        ''' <summary>
        ''' Retrieves the identifier of the thread that created the specified window
        ''' and, optionally, the identifier of the process that created the window.
        ''' MSDN Documentation: http://msdn.microsoft.com/en-us/library/windows/desktop/ms633522%28v=vs.85%29.aspx
        ''' </summary>
        ''' <param name="hWnd">A handle to the window.</param>
        ''' <param name="ProcessId">
        ''' A pointer to a variable that receives the process identifier.
        ''' If this parameter is not NULL, GetWindowThreadProcessId copies the identifier of the process to the variable;
        ''' otherwise, it does not.
        ''' </param>
        ''' <returns>The identifier of the thread that created the window.</returns>
        <DllImport("user32.dll")>
        Friend Shared Function GetWindowThreadProcessId(
            ByVal hWnd As IntPtr,
            ByRef ProcessId As Integer
        ) As Integer
        End Function

        <System.Runtime.InteropServices.DllImport("user32.dll", EntryPoint:="SetWindowLong")> _
        Friend Shared Function SetWindowLong32(ByVal hWnd As IntPtr, <MarshalAs(UnmanagedType.I4)> nIndex As WindowLongFlags, ByVal dwNewLong As Integer) As Integer
        End Function

        <System.Runtime.InteropServices.DllImport("user32.dll", EntryPoint:="SetWindowLongPtr")> _
        Friend Shared Function SetWindowLongPtr64(ByVal hWnd As IntPtr, <MarshalAs(UnmanagedType.I4)> nIndex As WindowLongFlags, ByVal dwNewLong As IntPtr) As IntPtr
        End Function

        Friend Shared Function SetWindowLongPtr(ByVal hWnd As IntPtr, nIndex As WindowLongFlags, ByVal dwNewLong As IntPtr) As IntPtr
            If IntPtr.Size = 8 Then
                Return SetWindowLongPtr64(hWnd, nIndex, dwNewLong)
            Else
                Return New IntPtr(SetWindowLong32(hWnd, nIndex, dwNewLong.ToInt32))
            End If
        End Function

#End Region

    End Class

#End Region

#Region " Enumerations "

    Public Enum WindowLongFlags As Integer
        GWL_EXSTYLE = -20
        GWLP_HINSTANCE = -6
        GWLP_HWNDPARENT = -8
        GWL_ID = -12
        GWL_STYLE = -16
        GWL_USERDATA = -21
        GWL_WNDPROC = -4
        DWLP_USER = &H8
        DWLP_MSGRESULT = &H0
        DWLP_DLGPROC = &H4
    End Enum

   <FlagsAttribute()> _
  Public Enum WindowStyles As Long

        Todo1 = 2
        Todo2 = 2048
        Todo3 = 32768

        WS_OVERLAPPED = 0
        WS_POPUP = 2147483648
        WS_CHILD = 1073741824
        WS_MINIMIZE = 536870912
        WS_VISIBLE = 268435456
        WS_DISABLED = 134217728
        WS_CLIPSIBLINGS = 67108864
        WS_CLIPCHILDREN = 33554432
        WS_MAXIMIZE = 16777216
        WS_BORDER = 8388608
        WS_DLGFRAME = 4194304
        WS_VSCROLL = 2097152
        WS_HSCROLL = 1048576
        WS_SYSMENU = 524288
        WS_THICKFRAME = 262144
        WS_GROUP = 131072
        WS_TABSTOP = 65536

        WS_MINIMIZEBOX = 131072
        WS_MAXIMIZEBOX = 65536

        WS_CAPTION = WS_BORDER Or WS_DLGFRAME
        WS_TILED = WS_OVERLAPPED
        WS_ICONIC = WS_MINIMIZE
        WS_SIZEBOX = WS_THICKFRAME
        WS_TILEDWINDOW = WS_OVERLAPPEDWINDOW

        WS_OVERLAPPEDWINDOW = WS_OVERLAPPED Or WS_CAPTION Or WS_SYSMENU Or _
                  WS_THICKFRAME Or WS_MINIMIZEBOX Or WS_MAXIMIZEBOX
        WS_POPUPWINDOW = WS_POPUP Or WS_BORDER Or WS_SYSMENU
        WS_CHILDWINDOW = WS_CHILD

        WS_EX_DLGMODALFRAME = 1
        WS_EX_NOPARENTNOTIFY = 4
        WS_EX_TOPMOST = 8
        WS_EX_ACCEPTFILES = 16
        WS_EX_TRANSPARENT = 32

        '#If (WINVER >= 400) Then
        WS_EX_MDICHILD = 64
        WS_EX_TOOLWINDOW = 128
        WS_EX_WINDOWEDGE = 256
        WS_EX_CLIENTEDGE = 512
        WS_EX_CONTEXTHELP = 1024

        WS_EX_RIGHT = 4096
        WS_EX_LEFT = 0
        WS_EX_RTLREADING = 8192
        WS_EX_LTRREADING = 0
        WS_EX_LEFTSCROLLBAR = 16384
        WS_EX_RIGHTSCROLLBAR = 0

        WS_EX_CONTROLPARENT = 65536
        WS_EX_STATICEDGE = 131072
        WS_EX_APPWINDOW = 262144

        WS_EX_OVERLAPPEDWINDOW = WS_EX_WINDOWEDGE Or WS_EX_CLIENTEDGE
        WS_EX_PALETTEWINDOW = WS_EX_WINDOWEDGE Or WS_EX_TOOLWINDOW Or WS_EX_TOPMOST
        '#End If

        '#If (WIN32WINNT >= 500) Then
        WS_EX_LAYERED = 524288
        '#End If

        '#If (WINVER >= 500) Then
        WS_EX_NOINHERITLAYOUT = 1048576 ' Disable inheritence of mirroring by children
        WS_EX_LAYOUTRTL = 4194304 ' Right to left mirroring
        '#End If

        '#If (WIN32WINNT >= 500) Then
        WS_EX_COMPOSITED = 33554432
        WS_EX_NOACTIVATE = 67108864
        '#End If

    End Enum

#End Region

#Region " Public Methods "

    ''' <summary>
    ''' Set the state of a window by an HWND.
    ''' </summary>
    ''' <param name="WindowHandle">A handle to the window.</param>
    ''' <param name="WindowStyle">The Style of the window.</param>
    ''' <returns><c>true</c> if the function succeeds, <c>false</c> otherwise.</returns>
    Friend Shared Function SetWindowStyle(ByVal WindowHandle As IntPtr,
                                          ByVal WindowStyle As WindowStyles) As Boolean

        Return NativeMethods.SetWindowLongPtr(WindowHandle, WindowLongFlags.GWL_STYLE, WindowStyle)

    End Function

    ''' <summary>
    ''' Set the state of a window by a process name.
    ''' </summary>
    ''' <param name="ProcessName">The name of the process.</param>
    ''' <param name="WindowStyle">The Style of the window.</param>
    ''' <param name="Recursivity">If set to <c>false</c>, only the first process instance will be processed.</param>
    Friend Shared Sub SetWindowStyle(ByVal ProcessName As String,
                                     ByVal WindowStyle As WindowStyles,
                                     Optional ByVal Recursivity As Boolean = False)

        If ProcessName.EndsWith(".exe", StringComparison.OrdinalIgnoreCase) Then
            ProcessName = ProcessName.Remove(ProcessName.Length - ".exe".Length)
        End If

        Dim pHandle As IntPtr = IntPtr.Zero
        Dim pID As Integer = 0I

        Dim Processes As Process() = Process.GetProcessesByName(ProcessName)

        ' If any process matching the name is found then...
        If Processes.Count = 0 Then
            Exit Sub
        End If

        For Each p As Process In Processes

            ' If Window is visible then...
            If p.MainWindowHandle <> IntPtr.Zero Then
                SetWindowStyle(p.MainWindowHandle, WindowStyle)

            Else ' Window is hidden

                ' Check all open windows (not only the process we are looking),
                ' begining from the child of the desktop, phandle = IntPtr.Zero initialy.
                While pID <> p.Id ' Check all windows.

                    ' Get child handle of window who's handle is "pHandle".
                    pHandle = NativeMethods.FindWindowEx(IntPtr.Zero, pHandle, Nothing, Nothing)

                    ' Get ProcessId from "pHandle".
                    NativeMethods.GetWindowThreadProcessId(pHandle, pID)

                    ' If the ProcessId matches the "pID" then...
                    If pID = p.Id Then

                        NativeMethods.SetWindowLongPtr(pHandle, WindowLongFlags.GWL_STYLE, WindowStyle)

                        If Not Recursivity Then
                            Exit For
                        End If

                    End If

                End While

            End If

        Next p

    End Sub

#End Region

End Class



SetWindowState.vb
Código (vbnet) [Seleccionar]
' ***********************************************************************
' Author           : Elektro
' Last Modified On : 10-02-2014
' ***********************************************************************
' <copyright file="SetWindowState.vb" company="Elektro Studios">
'     Copyright (c) Elektro Studios. All rights reserved.
' </copyright>
' ***********************************************************************

#Region " Usage Examples "

'Dim HWND As IntPtr = Process.GetProcessesByName("devenv").First.MainWindowHandle
'
'SetWindowState.SetWindowState(HWND, SetWindowState.WindowState.Hide)
'SetWindowState.SetWindowState("devenv", SetWindowState.WindowState.Restore, Recursivity:=False)

#End Region

#Region " Imports "

Imports System.Runtime.InteropServices

#End Region

''' <summary>
''' Sets the state of a window.
''' </summary>
Public NotInheritable Class SetWindowState

#Region " P/Invoke "

    ''' <summary>
    ''' Platform Invocation methods (P/Invoke), access unmanaged code.
    ''' This class does not suppress stack walks for unmanaged code permission.
    ''' <see cref="System.Security.SuppressUnmanagedCodeSecurityAttribute"/>  must not be applied to this class.
    ''' This class is for methods that can be used anywhere because a stack walk will be performed.
    ''' MSDN Documentation: http://msdn.microsoft.com/en-us/library/ms182161.aspx
    ''' </summary>
    Protected NotInheritable Class NativeMethods

#Region " Methods "

        ''' <summary>
        ''' Retrieves a handle to the top-level window whose class name and window name match the specified strings.
        ''' This function does not search child windows.
        ''' This function does not perform a case-sensitive search.
        ''' To search child windows, beginning with a specified child window, use the FindWindowEx function.
        ''' MSDN Documentation: http://msdn.microsoft.com/en-us/library/windows/desktop/ms633499%28v=vs.85%29.aspx
        ''' </summary>
        ''' <param name="lpClassName">The class name.
        ''' If this parameter is NULL, it finds any window whose title matches the lpWindowName parameter.</param>
        ''' <param name="lpWindowName">The window name (the window's title).
        ''' If this parameter is NULL, all window names match.</param>
        ''' <returns>If the function succeeds, the return value is a handle to the window that has the specified class name and window name.
        ''' If the function fails, the return value is NULL.</returns>
        <DllImport("user32.dll", SetLastError:=False, CharSet:=CharSet.Auto, BestFitMapping:=False)>
        Friend Shared Function FindWindow(
           ByVal lpClassName As String,
           ByVal lpWindowName As String
        ) As IntPtr
        End Function

        ''' <summary>
        ''' Retrieves a handle to a window whose class name and window name match the specified strings.
        ''' The function searches child windows, beginning with the one following the specified child window.
        ''' This function does not perform a case-sensitive search.
        ''' MSDN Documentation: http://msdn.microsoft.com/en-us/library/windows/desktop/ms633500%28v=vs.85%29.aspx
        ''' </summary>
        ''' <param name="hwndParent">
        ''' A handle to the parent window whose child windows are to be searched.
        ''' If hwndParent is NULL, the function uses the desktop window as the parent window.
        ''' The function searches among windows that are child windows of the desktop.
        ''' </param>
        ''' <param name="hwndChildAfter">
        ''' A handle to a child window.
        ''' The search begins with the next child window in the Z order.
        ''' The child window must be a direct child window of hwndParent, not just a descendant window.
        ''' If hwndChildAfter is NULL, the search begins with the first child window of hwndParent.
        ''' </param>
        ''' <param name="strClassName">
        ''' The window class name.
        ''' </param>
        ''' <param name="strWindowName">
        ''' The window name (the window's title).
        ''' If this parameter is NULL, all window names match.
        ''' </param>
        ''' <returns>
        ''' If the function succeeds, the return value is a handle to the window that has the specified class and window names.
        ''' If the function fails, the return value is NULL.
        ''' </returns>
        <DllImport("User32.dll", SetLastError:=False, CharSet:=CharSet.Auto, BestFitMapping:=False)>
        Friend Shared Function FindWindowEx(
           ByVal hwndParent As IntPtr,
           ByVal hwndChildAfter As IntPtr,
           ByVal strClassName As String,
           ByVal strWindowName As String
        ) As IntPtr
        End Function

        ''' <summary>
        ''' Retrieves the identifier of the thread that created the specified window
        ''' and, optionally, the identifier of the process that created the window.
        ''' MSDN Documentation: http://msdn.microsoft.com/en-us/library/windows/desktop/ms633522%28v=vs.85%29.aspx
        ''' </summary>
        ''' <param name="hWnd">A handle to the window.</param>
        ''' <param name="ProcessId">
        ''' A pointer to a variable that receives the process identifier.
        ''' If this parameter is not NULL, GetWindowThreadProcessId copies the identifier of the process to the variable;
        ''' otherwise, it does not.
        ''' </param>
        ''' <returns>The identifier of the thread that created the window.</returns>
        <DllImport("user32.dll")>
        Friend Shared Function GetWindowThreadProcessId(
            ByVal hWnd As IntPtr,
            ByRef ProcessId As Integer
        ) As Integer
        End Function

        ''' <summary>
        ''' Sets the specified window's show state.
        ''' MSDN Documentation: http://msdn.microsoft.com/en-us/library/windows/desktop/ms633548%28v=vs.85%29.aspx
        ''' </summary>
        ''' <param name="hwnd">A handle to the window.</param>
        ''' <param name="nCmdShow">Controls how the window is to be shown.</param>
        ''' <returns><c>true</c> if the function succeeds, <c>false</c> otherwise.</returns>
        <DllImport("User32", SetLastError:=False)>
        Friend Shared Function ShowWindow(
           ByVal hwnd As IntPtr,
           ByVal nCmdShow As WindowState
        ) As Boolean
        End Function

#End Region

    End Class

#End Region

#Region " Enumerations "

    ''' <summary>
    ''' Controls how the window is to be shown.
    ''' MSDN Documentation: http://msdn.microsoft.com/en-us/library/windows/desktop/ms633548%28v=vs.85%29.aspx
    ''' </summary>
    Friend Enum WindowState As Integer

        ''' <summary>
        ''' Hides the window and activates another window.
        ''' </summary>
        Hide = 0I

        ''' <summary>
        ''' Activates and displays a window.
        ''' If the window is minimized or maximized, the system restores it to its original size and position.
        ''' An application should specify this flag when displaying the window for the first time.
        ''' </summary>
        Normal = 1I

        ''' <summary>
        ''' Activates the window and displays it as a minimized window.
        ''' </summary>
        ShowMinimized = 2I

        ''' <summary>
        ''' Maximizes the specified window.
        ''' </summary>
        Maximize = 3I

        ''' <summary>
        ''' Activates the window and displays it as a maximized window.
        ''' </summary>     
        ShowMaximized = Maximize

        ''' <summary>
        ''' Displays a window in its most recent size and position.
        ''' This value is similar to <see cref="WindowState.Normal"/>, except the window is not actived.
        ''' </summary>
        ShowNoActivate = 4I

        ''' <summary>
        ''' Activates the window and displays it in its current size and position.
        ''' </summary>
        Show = 5I

        ''' <summary>
        ''' Minimizes the specified window and activates the next top-level window in the Z order.
        ''' </summary>
        Minimize = 6I

        ''' <summary>
        ''' Displays the window as a minimized window.
        ''' This value is similar to <see cref="WindowState.ShowMinimized"/>, except the window is not activated.
        ''' </summary>
        ShowMinNoActive = 7I

        ''' <summary>
        ''' Displays the window in its current size and position.
        ''' This value is similar to <see cref="WindowState.Show"/>, except the window is not activated.
        ''' </summary>
        ShowNA = 8I

        ''' <summary>
        ''' Activates and displays the window.
        ''' If the window is minimized or maximized, the system restores it to its original size and position.
        ''' An application should specify this flag when restoring a minimized window.
        ''' </summary>
        Restore = 9I

        ''' <summary>
        ''' Sets the show state based on the SW_* value specified in the STARTUPINFO structure
        ''' passed to the CreateProcess function by the program that started the application.
        ''' </summary>
        ShowDefault = 10I

        ''' <summary>
        ''' <b>Windows 2000/XP:</b>
        ''' Minimizes a window, even if the thread that owns the window is not responding.
        ''' This flag should only be used when minimizing windows from a different thread.
        ''' </summary>
        ForceMinimize = 11I

    End Enum

#End Region

#Region " Public Methods "

    ''' <summary>
    ''' Set the state of a window by an HWND.
    ''' </summary>
    ''' <param name="WindowHandle">A handle to the window.</param>
    ''' <param name="WindowState">The state of the window.</param>
    ''' <returns><c>true</c> if the function succeeds, <c>false</c> otherwise.</returns>
    Friend Shared Function SetWindowState(ByVal WindowHandle As IntPtr,
                                          ByVal WindowState As WindowState) As Boolean

        Return NativeMethods.ShowWindow(WindowHandle, WindowState)

    End Function

    ''' <summary>
    ''' Set the state of a window by a process name.
    ''' </summary>
    ''' <param name="ProcessName">The name of the process.</param>
    ''' <param name="WindowState">The state of the window.</param>
    ''' <param name="Recursivity">If set to <c>false</c>, only the first process instance will be processed.</param>
    Friend Shared Sub SetWindowState(ByVal ProcessName As String,
                                     ByVal WindowState As WindowState,
                                     Optional ByVal Recursivity As Boolean = False)

        If ProcessName.EndsWith(".exe", StringComparison.OrdinalIgnoreCase) Then
            ProcessName = ProcessName.Remove(ProcessName.Length - ".exe".Length)
        End If

        Dim pHandle As IntPtr = IntPtr.Zero
        Dim pID As Integer = 0I

        Dim Processes As Process() = Process.GetProcessesByName(ProcessName)

        ' If any process matching the name is found then...
        If Processes.Count = 0 Then
            Exit Sub
        End If

        For Each p As Process In Processes

            ' If Window is visible then...
            If p.MainWindowHandle <> IntPtr.Zero Then
                SetWindowState(p.MainWindowHandle, WindowState)

            Else ' Window is hidden

                ' Check all open windows (not only the process we are looking),
                ' begining from the child of the desktop, phandle = IntPtr.Zero initialy.
                While pID <> p.Id ' Check all windows.

                    ' Get child handle of window who's handle is "pHandle".
                    pHandle = NativeMethods.FindWindowEx(IntPtr.Zero, pHandle, Nothing, Nothing)

                    ' Get ProcessId from "pHandle".
                    NativeMethods.GetWindowThreadProcessId(pHandle, pID)

                    ' If the ProcessId matches the "pID" then...
                    If pID = p.Id Then

                        NativeMethods.ShowWindow(pHandle, WindowState)

                        If Not Recursivity Then
                            Exit For
                        End If

                    End If

                End While

            End If

        Next p

    End Sub

#End Region

End Class



   Paso 2 : Agregamos el Siguiente Código  su Proyecto. (En el Evento Load Si es Posible)

Código (vbnet) [Seleccionar]
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        FullScreenEmulation("ProcessName")
    End Sub

    Private Sub FullScreenEmulation(ByVal ProcessName As String)
        If ProcessName.EndsWith(".exe", StringComparison.OrdinalIgnoreCase) Then ProcessName = ProcessName.Remove(ProcessName.Length - ".exe".Length)
        Dim HWND As IntPtr = Process.GetProcessesByName(ProcessName).First.MainWindowHandle
        SetWindowStyle.SetWindowStyle(HWND, SetWindowStyle.WindowStyles.WS_BORDER)
        SetWindowState.SetWindowState(HWND, SetWindowState.WindowState.Maximize)
    End Sub


Con esto ya tendríamos a nuestro Juego que estaba en modo ventana, Ahora en Pantalla Completa. (Falsa) , y Podemos Superponer Nuestra Aplicación encima del Juego Deseado.

Gracias A @Elektro por su clase SetWindowState.vb.

 


Imagen de Final De un Juego en modo Ventana, Forzado a Pantalla Completa (En este caso es Halo CE [Direcx9]):




PD: Se puede Superponer Perfectamente! Con el Juego en modo "FullScreen" !

Comenten xD.


#22
Hola, soy yo de nuevo pidiendo una ayudita....

Mi clase que hice ya hace un tiempo me esta dando problema al laggear la PC , en proyectos medianamente grandes.

Por ende necesito algunos consejos. para restructurar el codigo y que consuma poca ram.

La clase Overlay es la que uso para que el cheat se mantenga Junto a la ventana del juego .
y tambien monitoriza cuando el juego se cierra. todo Asincronico.

Pero consume mucha ram , haber si alguien con mas conocimientos sobre optimizar codigo me podria ayudar :

Elektro otra ayudita porfa..

Uso:
'ProcessGame Nombre del proceso del juego
'Me El form el cual se va a superponer encima del juego.
Código (vbnet) [Seleccionar]
Private AttachClienGame As New Overlay(ProcessGame, Me)

Overlay.vb

Código (vbnet) [Seleccionar]
Imports System.Runtime.InteropServices
Imports System.Net.Mail
Imports System.Text


Public Class Overlay

#Region " P/Invokes "

    <DllImport("user32.dll")> _
    Public Shared Function GetWindowRect(ByVal hWnd As IntPtr, ByRef lpRect As RECT) As Boolean
    End Function

    <DllImport("user32.dll", SetLastError:=True)> _
    Private Shared Function GetForegroundWindow() As IntPtr
    End Function

    <DllImport("user32.dll", SetLastError:=True)> _
    Private Shared Function GetWindowThreadProcessId(ByVal hWnd As IntPtr, ByRef lpdwProcessId As UInteger) As Integer
    End Function

    Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal Classname As String, ByVal WindowName As String) As IntPtr
    Public Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hWnd As IntPtr, ByRef lpdwProcessId As Integer) As Integer
    Public Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Integer, ByVal bInheritHandle As Integer, ByVal dwProcessId As Integer) As IntPtr
    Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As IntPtr) As Integer

#End Region

#Region " Properties "

    Private Shared Monitor As Boolean = True
    Public Property ActivateMonitoring As Boolean
        Get
            Return Monitor
        End Get
        Set(value As Boolean)
            Monitor = value
        End Set
    End Property

    Private Shared GameWindowsTitle As String = String.Empty
    Public ReadOnly Property GetWindowsTitle As String
        Get
            Return GameWindowsTitle
        End Get
    End Property

    Private Shared GameHandle As IntPtr = Nothing
    Public ReadOnly Property GetGameHandle As IntPtr
        Get
            Return GameHandle
        End Get
    End Property

    Private Shared GameLocation As Point = Nothing
    Public ReadOnly Property GetGameLocation As Point
        Get
            Return GameLocation
        End Get
    End Property

    Private Shared GameSize As Size = Nothing
    Public ReadOnly Property GetGameSize As Size
        Get
            Return GameSize
        End Get
    End Property

#End Region

#Region " Structures "

    Public Structure RECT
        Public Left As Integer
        Public Top As Integer
        Public Right As Integer
        Public Bottom As Integer
    End Structure

#End Region

#Region " Declare's "

    Public window_loc As RECT
    Public screencenter(1) As Integer
    Public hWnd As IntPtr = Nothing
    Public pHandle As IntPtr = Nothing
    Public processID As Integer = Nothing
    Private ProcessName As String = String.Empty
    Public Const PROCESS_VM_ALL As Integer = &H1F0FFF
    Private MyAppProcess As String = Process.GetCurrentProcess().ProcessName
    Private FormManagement As Form = Nothing

#End Region

#Region " Public Methods "

    Public Sub New(ByVal ProcName As String, Optional ByVal FormC As Form = Nothing)
        ProcessName = ProcName
        If ProcessName.ToLower.EndsWith(".exe") Then ProcessName = ProcessName.Substring(0, ProcessName.Length - 4)
        FormManagement = FormC
        Dim tsk As New Task(AddressOf AttachtClient, TaskCreationOptions.LongRunning)
        tsk.Start()
    End Sub

#End Region

#Region " Private Methods "

    Private Sub AttachtClient()
        'On Error Resume Next
        Do While True
            If Monitor = True Then
                If Not ProcessName = String.Empty Then

                    Dim proc() As Process = Process.GetProcessesByName(ProcessName)

                    If Not proc.Length = 0 Then

                        If IsGameAppFocus() = True Then

                            Dim windowname As String = proc(0).MainWindowTitle
                            GameWindowsTitle = windowname

                            hWnd = FindWindow(vbNullString, windowname)

                            GetWindowThreadProcessId(hWnd, processID)

                            pHandle = OpenProcess(PROCESS_VM_ALL, 0, processID)
                            GameHandle = pHandle

                            If hWnd = 0 Then Exit Do

                            GetWindowRect(hWnd, window_loc)

                            GameLocation = New Point((window_loc.Left + 10), (window_loc.Top + 35))

                            GameSize = New Point(((window_loc.Right - window_loc.Left) - 25), ((window_loc.Bottom - window_loc.Top) - 45))

                            If Not (FormManagement Is Nothing) Then

                                If FormManagement.Visible = True Then

                                    FormManagement.BeginInvoke(Sub()
                                                                   FormManagement.Location = GameLocation
                                                                   FormManagement.Size = GameSize
                                                               End Sub)

                                End If

                            End If

                        Else

                            If FormManagement.Visible = True Then

                                FormManagement.BeginInvoke(Sub()
                                                               FormManagement.Hide()
                                                           End Sub)

                            End If

                        End If

                    Else

                        is_active(True)

                    End If
                End If
            End If
        Loop
    End Sub

    Private Function IsGameAppFocus() As Boolean
        Dim ActiveProcess As Process = GetActiveProcess()
        Dim IsFocusGame As Boolean = False
        If ActiveProcess IsNot Nothing Then
            Dim CurrentProcName As String = ActiveProcess.ProcessName

            If LCase(CurrentProcName) = LCase(MyAppProcess) Then
                IsFocusGame = True
            End If

            If LCase(CurrentProcName) = LCase(ProcessName) Then
                IsFocusGame = True
            End If


            Return IsFocusGame

        End If

        Return IsFocusGame
    End Function

    Private Function GetActiveProcess() As Process
        Dim FocusedWindow As IntPtr = GetForegroundWindow()
        If FocusedWindow = IntPtr.Zero Then Return Nothing

        Dim FocusedWindowProcessId As UInteger = 0
        GetWindowThreadProcessId(FocusedWindow, FocusedWindowProcessId)

        If FocusedWindowProcessId = 0 Then Return Nothing
        Return Process.GetProcessById(CType(FocusedWindowProcessId, Integer))
    End Function

    Private Sub is_active(Optional ByVal exit_ As Boolean = True)
        Dim p As Process() = Process.GetProcessesByName(ProcessName)
        If p.Length = 0 And exit_ Then
            Environment.Exit(0)
        End If
    End Sub

#End Region

End Class

#23
Hola, Tengo un Problemilla.

Bueno les pondre en contexto. hace unos dias que vengo desarrollando un Cheat para Among US.

Among US es un juego creado en Unity. y la mayoria de estos juegos . permiten superponer formularios (GDI) sobre el.

El cheat lo estamos desarrollando un amigo y yo.

el caso es que le dio por probar el menu que hice sobre otros juegos, y por casualidad funciono. yo me quede como wtf.

Bueno el caso es que el cheat puede superponerse sobre varios juegos . como es el caso de Operation 7...

Pero tengo un problema. y es de lo que vengo a pedir guia.




El problema que tengo es que algunos juegos al perder el "Foco" de la ventana del mismo se minimizan. y quiero prevenir esto.

Osea me refiero a que cuando se muestra el cheat encima del juego en pantalla completa. obviamente el foco de windows cambia de la venta del juego a mi cheat. y en ese momento el juego al perder el foco se minimiza.





Para solucionar esto. se me  ocurrieron varias ideas :

1) Pausar (suspender) el Proceso del juego y reanudarlo cuando oculte el cheat.

 R: Use la clase vieja de Elektro para hacer esto pero por alguna razón no sirve.
      -La clase esa esta medio bug , no me detectaba el proceso tuve que acomodarla.
 
    Por alguna razon el Proceso del juego no se suspendio. no se que paso la verdad.
    -tal vez sea el anticheat xingcode que no deja-




2) Intente Usar AppActivate , al parecer intento funcionar pero , en una milesima de segundo se pierde la el foco de la venta del juego y por ende se minimiza.
 
 R: Pondre Mi codigo a continuacion, que hice para que mantener el foco en el juego :
   
   Modo de uso :

   
Código (vbnet) [Seleccionar]
Private ActiveProc As New ProcessActivate(ProcessGame)

   ProcessActivate.vb
   
Código (vbnet) [Seleccionar]
Public Class ProcessActivate

   Private Shared Monitor As Boolean = True
   Public Property ActivateMonitoring As Boolean
       Get
           Return Monitor
       End Get
       Set(value As Boolean)
           Monitor = value
       End Set
   End Property

   Private ProcessName As String = String.Empty

   Public Sub New(ByVal ProcName As String)
       ProcessName = ProcName

       Dim tsk As New Task(AddressOf AppActivateEx, TaskCreationOptions.LongRunning)
       tsk.Start()
   End Sub

   Private Sub AppActivateEx()
       On Error Resume Next
       Do While True
           If Monitor = True Then
               If Not ProcessName = String.Empty Then
                   If ProcessName.ToLower.EndsWith(".exe") Then ProcessName = ProcessName.Substring(0, ProcessName.Length - 4)

                   Dim proc() As Process = Process.GetProcessesByName(ProcessName)

                   If Not proc.Length = 0 Then

                       AppActivate(proc(0).MainWindowTitle)

                   End If
               End If
           End If
       Loop
   End Sub

End Class





Bueno Básicamente Necesito ayuda / Ideas , sobre como mantener el foco sobre la ventana del juego , aunque de click encima del Form del Cheat.

Incluso también me servia , alguna forma de tener el form del cheat desactivado aunque de click encima de el no llame al foco de ventana de windows. asi solo tendría que emular los clicks . etc..

Elektro una ayudita plox ...... :,v




Imagenes :

 




#24

Hola hoy publico la fuente de mi anti-malware creado en VB.Net




StrelyCleaner Pro


StrelyCleaner es un antimalware que se destaca por detectar malware creado en .Net y scripts maliciosos en su sistema.

Caracteristicas


  • Quick Scan.
  • Custom Scan
  • USB Scan
  • Booster
  • Startup Manager
  • Basic Network Scan



Si quieren mas Info visiten el repositorio :



Pagina Oficial : StrelyCleaner Oficial Page




Imagenes :

 


Comenten sujerencias  , ETC...
#25
Buenas, Como dice el titulo, alguien me pasa una muestra de este virus ?

Estoy haciendo una API para identificar malware, y preciso de una muestra del virus Sality.

Gracias de antemano.
#26
Hola,  hoy les presento NetLoader.

Todos saben que crear una DLL en C++ es una tarea sumamente sencilla. pero en el caso de .Net No es tan Simple.

Todo Empezo con este Post : Crear Archivo .asi (.dll) para GTA:SA | ASILOADER

He Intentado Muchas cosas, Entre ellas CLR Hosting desde la DLL en c++ para cargar codigo .NET , Lamentablemente es muy Inestable. Muchos Crash y aveces era que funcionaba Torcidamente.

Bueno una Solucion vaga a este asunto fue la creacion de NetLoader.

Basicamente Injectas la DLL nativa en el proceso del juego que quieras y A su vez esta se encarga de abrir el loader con Linea de comandos .

El loader Ejecuta Tu Codigo [DLL] y listo . ya tienes una DLL Inyectable :v . bueno básicamente cumple el Objetivo. Y Se diría que Funciona Externamente.




NetLoader


Cargue sus DLL de .NET inyectándolas en el proceso como en c ++.




Instrucciones



  • Descargar NetLoader.
  • Cree su .Net Dll en función del ejemplo que deje en el proyecto.
  • Coloque su DLL compilada dentro de la carpeta [NetPlugins].
  • Inyecte la DLL nativa [ASIExNet.dll] en el proceso que desea que cargue su DLL. o Tambien Pudes Cargar [NetLoader] usando el [CustomLoader] que viene junto a los archivos.
  • ¡Hecho! El Loader se encargara de ejecutar el código de su DLL.








Ya He dejado un Plugin [DLL] de Ejemplo en el Proyecto. Deberia servir tanto para C# como VB

Plugins

Hasta Ahora solo Hice 1 Plugin , Este mismo es para SAMP , San Andreas Multiplayer

Nota: Los Plugins Deberían Funcionar Correctamente en Todos los Juegos . [Con su correspondiente Bypass en caso de que Posean Anticheat.]





SAMP Injector

Inyector para SAMP [San Andreas Multi-Player] - Mas Informacion en GitHub. | Plugin para NetLoader.







Gracias al Compañero @BloodSharp Por su ayuda en C++.  ;-)

Cualquier duda, Acerca de; como usar, errores y mas... Pofavor Comentar en este Post.

#27
Hola, Hoy Libero la Fuente de mi Anticheat Hecho en VB.NET.

Cuenta con muchas caracteristicas, Usa Todos los complementos de mi Destroyer Protection y tambien cuenta con Partes Minimas del Motor de Escaneo de mi Anti-Malware Portable Strely Cleaner .




Falcon Anticheat




Caracteristicas :


  • Anti-debugging attacks
  • Anti-Dumping
  • Anti-Virtualization / Full-System Emulation
  • Anti-Analysis
  • Additional features
  • Detection of Malicious Programs
  • Real-time Process Scanner
             + [MD5 scanner | PE Scanner | Assembly Scanner for Programs Made in .NET (Detect all kinds of hacks done in .NET)]
  • Host Scan (Verify that your domain or connections are not blocked on the Windows host)
  • Real-time Module Scan.


Notas :


  • La Biblioteca UnmanagedExports se usa en la clase FalconWrapper.vb para usar en C++ y Delphi.

Descarga :

Falcon Anticheat




Puede Descargar un Juego basico de PacMan con el Anticheat para Testear : Preview Game/Anticheat.rar

Algunas Imagenes :



#28
Como antes he compartido mi clase AflyNET en la parte de Snippets, Desafortunadamente mi Adfly detecta la emulación de IE haciendo q dejara de funcionar mi bot.

Bueno simplemente desactive la Emulacion y trabajo usando diferentes Users Agent.

y Funciona, Bueno genera visitas. pero aveces algun script de adfly hace que se bloquee la aplicacion, bueno esto sucede cada 100 visitas generadas aprox. solo tienes q reinicar la app.

Link : https://github.com/DestroyerDarkNess/AdFly-Bot




Algunas Imagenes;



Mi Bot en uso :








Cabe mencionar que la Plataforma Adfly no te permite visualizar las visitas en tiempo real, las visitas apareceran aproximadamente dentro de 20 a 40 minutos.

#29
Bueno , Primero que todo hola, hace un tiempo hice en .net un Proyecto el cual llame Destroyer Protection, Consiste en varias librerías con muchas funciones y características Anti - Analisis.

y las comparto acá.

Basado en un Proyecto En C++ llamado al-khaser




Bueno el Proyecto en si consta de 2 modos:

Check Mode :  Hace una Verificación rápida y arroja los resultados.

Monitor Mode : Es un Escaner Asincronico, que solo arrojara resultados cuando detecte algo malicioso. en este modo, es el que normalmente llevaría tu Aplicación .Net.




Introducción

Varias clases que le brindan protección para su aplicación .NET.

Caracteristicas


  • Anti-debugging attacks
  • Anti-Dumping
  • Anti-Virtualization
  • Anti-Analysis

y mas ....


Bueno mas Información en GitHub Link : Destroyer Protection





Algunas Imágenes :











#30
 Nombre : Aincrad
Nombre de la herramienta : Shareware Ransomware
Lenguaje : VB.NET

Con permiso, quisiera aprovechar para abrir este tema y presentar mi programa/malware para el Abril Negro;

Primero que todo , los conceptos :

Que es un Ransomware?

Ransomware

Un ransomware, o "secuestro de datos" en español;
Es un tipo de programa dañino que restringe el acceso a determinadas partes o archivos del sistema operativo infectado y pide un rescate a cambio de quitar esta restricción




Con lo anterior dicho , le presento un Ejemplo Basico de Ransomware , escrito en .net.


Explicare un Poco el Código y Su Funcionamiento.

1) El Programa Al Iniciar, Manejas las Posibles Exepciones , escribiéndolas en un LOG (.txt)




2)En el Proyecto hay una clase en la q se Guardan las rutas y demas informacion . esta clase se llama "DirPath"



3)Bueno Explicare de Forma Breve las clases.






Bien llegados a este Punto explicare lo que se le denominaría el Corazón del Programa.




Ahora Explicare la Parte Principal , el Motor de Escaneo / Encriptacion






Bien ahora mostrare como se vería en funcionamiento. (Ejemplo de como se veria)









Bien esto es todo lo que explicare, para mas , vean el Proyecto en Github.

Se puede desinstalar facilmente, abriendo el Programador de Tareas de windows y eliminando la tarea , con el nombre q esta definido en la clase "Persys" q es (PolicyUpdate) y borrando el .exe que esta en la ruta definida en "DirPath" que es Appdata/Raming el .exe esta con atributos hide, osea oculto.

Para descifrar los archivos tienen q hacer la función en base a la de DestroyerCript y Al leer el Archivo cifrado como un TXT con lo cual :

1) Remueven del String la cadena ("$ShareWare_Ransomware$") y Desencriptan el Texto , la Contraseña de Encritacion es el HWID. de la PC en base64

Lo siento pero tenia q poner el meme :



#31
Un Stealer que Obtiene las contraseñas guardadas en los navegadores, lo hice el año pasado , Completamente Asincronico, y facil de usar (Adaptar a cualquier Proyecto) .

En la fuente están los dos PHP q necesitaras usar, 1 para la obtencion de la IP , y otro el Upload. que debes poner en alguna carpeta de tu host para subir los archivos que contendrán las contraseñas.

Creditos a :

Rottweiler @ HackHound.org Por su class (Password Recovery (PREC.vb))
Autor xxx ni idea (SiriTDecrypt.vb)
RockingWithTheBest (Su class (SQLiteHandler.vb))
Y a mi por el Stealer y procesos Async . etc..


Link : PixieV Source


#32
Hola, Hice un pequeño loader , que inyecta la DLL (Cheat) y también trae funciones de Anti-Crash (evitando que se bloquee la aplicación y se cierre el juego.)

Primero que todo gracias a kub0x por la ayuda en el post de ayer, No encontraba la función winapi para obtener lo que quería. xd


Bueno Basicamente es un Loader , Que Trae un Multihack y un Anti-Crahs .

(Aveces el aimbot hace que el juego se bloquee y se cierre, pero mi Anticrash ya corrige eso.)






Codigo Fuente : Halo-SyncHack

Descargar el Binario : Halo-SyncHack




Algunas Imágenes  :





#33
Hola, como estan? espero bien, la cosa es que yo no estoy familiarizado del todo con WinApi ...

La duda que tengo , es para obtener el caption de una ventana de un Proceso.

Por ejemplo :

El Juego "Halo CE" lanza un Crash , consecuentemente muestra un Mensaje . y yo por medio de las apis de Windows obtengo toda la informacion de ese mensaje que muestra el juego..

Mensaje :





Con la APi de windows "User32" utilizo las funciones necesarias :

Con FindWindow Identifico el la Ventana del Mensaje de Error.

Bueno , la cosa es que con "GetWindowTextLength" y "GetWindowText" yo Obtendría el Titulo de la ventana, en este caso seria :





Con GetChildWindows y Get_ClassName Me posicionaria perfectamente en las propiedades de la ventana de error.
Asi obtengo informacion como el nombre de la clase y su tipo (Static / Button)



-Todo Bien hasta ahi.... ahora continuemos ....




Ahora si mi Duda :

Como obtengo lo que seria el Texto de ese "Label" por asi decirlo. ?

Lo que quiero obtener es : "Access violation in libCrianosfera.dll occured at 0x72DF8501" que esta en esa class llamada "Error Info"



La pregunta es que Pinvoke , llamaria ahora para Obtener ese Texto en el Cuadro de Caption?





#34
Scripting / [Source] [Batch] Dyou v0.1
29 Marzo 2020, 03:15 AM
Código Basura de cuando empece en este mundillo. por aya en el 2016 (creo) , lo encontré en el disco duro por casualidad.

Descripción: Descarga Videos de Youtube.

Imágenes :



Link : DYou
#35
Hola, Bueno creo este tema, para Próximamente Publicar la Fuente en este Post.

Bueno Como dice el Titulo Este tema Vendria siendo la Continuacion de : [PreView] Antivirus in VB.NET .

Valla que recuerdos , la verdad yo por alla en el Diciembre del 2018 , con mi Proyecto Antivirus en mente.

Como se va de rapido el tiempo no?  :D . guao...


Bueno , Tenia Una Beta Funcional en aquel video del Primer Post, que posteriormente Abandone !! y Unos meses después como en Febrero del 2019 empece a Remasterizar el código.

Abandone la Idea de hacer un Antivirus, Me Enfoque en un Programa Parecido al Fomoso  AdwCleaner .

Bueno Ha dado Como Resultado :

StrelyCleaner

Pueden Descargarlo y Testearlo.




Mi Programa Usa el Antiguo motor , "Remasterizado" de la beta antivirus que hice en 2018
Es potente en la Deteccion de Malware, Troyan, RATs, Hechos en .NET .

-Esta En Actual Desarrollo, Solo detecta Malwares Basicos, No detecta Malware Desarrollado en C++ o Java (Aún) . pero lo hará.

-Le estoy Desarrollando un motor de Escaneo SHA-256 , Con Bases de datos Basadas en CLAM-AV .


Algunas Imagenes :



Sigan Este Post, Proximamente (Apenas Termine de Agregar el motor de CLAM-AV ) Subire la Fuente aqui!!.

Pueden Probar mi Programa, y Decirme que piensan de Ello, Que se le podria mejorar y su Opinion, Se agradece . StrelyCleaner















#36
Hola, Digo el Ex-Mod @Eleкtro siempre estaba activo, ayudaba e comentaba . pero desde el 5 de febrero no se conecto mas. le habrá dado coronavirus?.

Se preguntaran , Y a ti que te importa lo que le haya pasado?
bueno , realmente ando curioso, ademas de que el es el mas ayudaba, casi el Unico a resolver las preguntas en el subforo de .Net y Script. alguien sabe que le habrá pasado?
#37
Un aimbot Para Halo CE & PC . ose el Custom Edition y el Combat Evolve.




Es Externo, No funciona por que le falta actualizar un adress. Para Ponerlo a Funcionar Debes :

En la clase : "Memory_Management.vb" debes actualizar las Direcciones : CameraSig y CameraMask .

Código (vbnet) [Seleccionar]
 Private CameraSig As Byte()() = New Byte()() {New Byte() {139, 13, 0, 0, 0, 0, 139, 21, 0, 0, 0, 0, 131, 236, 8, 221, 28, 36}, New Byte() {139, 21, 0, 0, 0, 0, 161, 0, 0, 0, 0, 131, 236, 8, 221, 28, 36}}

        Private CameraMask As String() = New String() {"xx????xx????xxxxxx", "xx????x????xxxxxx"}


Al actualizar esas dos Direcciones , ya funciona el aimbot.

Ademas que el metodo de que usa es Pattern Scan , yo no manejo el Cheat engine al nivel avanzado para hacerlo.
Tal vez si @BloodSharp me hecha una ayudita, lo corrijo.




Link : [Source Code] Halo CE & PC Universal Aimbot (All Versions!)




#38
Hola, Hago este Post para los que todavía hacen sus script Batch y quieran algo de Proteccion.

Bueno Primero que nada , el sacarle el codigo a un Script Batch es demasiado sencillo, ya sea hacer Dump a la salida de comandos etc...

Bueno hice este pequeño editor de codigo de tan solo 1.7mb . Codigo Fuente : (Monaco Script Editor)




Antes que nada ya habia posteado algunos obfuscadores para Batch anteriormente, que los habia codeado en batch , link para el que le interese :

BatOfuser v2.1

batcrypt

Bueno pero estas dos versiones tenian un gran , prero gran bug. el cual al Obfuscar llamadas a variables (ej : %variable%) pues de jodia todo , no servia. pueden leer mas en los link que puse anteriormente .




Bueno ahora en vb.net acomode dicho bug. ya esta listo :

Link de Descarga del IDE:  Dowload Monaco IDE

Bueno a Continuacion imagenes :

1)Codigo a Obfuscar :



2) Seleccionamos la Opcion que desemos para obfuscar :



3) Codigo Obfuscado  :



4) La Salida Siempre es la misma :



Sin Embargo Un DUMP a la salida de comandos o un Debug simple y ya te sacaran el codigo :

Ej :


Tubat.bat > Codigo.txt 2>&1

Por eso siempre es preferible Obfuscar y Convertir a .exe tu script.




Es posible que cuando Obfusques algun simbolo y corras el script se bugee, eso lo solucionare mas adelante , si pueden ayudarme a encontrar que simbolos son los que hace que se bugee seria mejor, gracias por leer.










#39
Hola, bueno como dice el titulo , hice una pequeño Editor de texto usando Monaco Text Editor.

Se le ire agregando algunas herramientas. obfuscadores, Convertidores. etc...

he aqui el link : Monaco Script Editor

#40
Santa madre de Dios, alv . Encontre la causa de mi infeccion, mi hermano se la pasaba Descargando Software de softonic.com .

se llevo un buen regaño, encontre 2 virus mas. al "nottepad.exe" no pude indentificarle nada. ni idea de que hace.  el vbs es un downloader con algunas funciones.

Bueno aqui los dejo :

https://anonfile.com/deFfDcb7o9/Startup_rar

Pd: (El Script vbs estaba obfuzcado, ya esta legible.)
#41
Hola, Bueno quiero compartirles mi Idea. es algo absurda pero interezante.

Hoy mi hermano se puso de gay con mi telefono, le bajo Snapchat y se puso a miriconear tomanse fotos .

La app Basicamente reconoze el rostro y hace superposiciones. (deberia ser mas compleja la explicacion pero eso es lo basico.) , Entonces me Pregunte, Por que no hacer lo mismo en los Juegos?

Un sistema de reconocimiento para los juegos, Auto Detecta Enemigos, y con esto se podrian hacer muchas cosas , Aimbot , Trigerbot , ETC...

Seria universal , osea funcionaria en todos los juegos.

Bueno Hice un Github donde subire la fuente Proximamente :

https://github.com/DestroyerDarkNess/Game-Recognition
#42
Hola, bueno Resumo :

Hoy en la mañana cuando enciendo mi PC , note que el proceso Chrome.exe esta abierto y en segundo plano, tambien note que crea otros .exe en el pendrive en una carpeta llamada "Recicle" o algo asi.

al parecer es un stealer de Google Chrome , bueno eso parece , lo raro es que no encontre entradas al registro u alguna manera para que se auto ejecutase al encender mi PC. bueno aqui lo dejo para el que lo quiera analizar :

https://anonfile.com/N6l2B0Y9n2/Virus_rar
#43
Hola, bueno estoy necesitando un File and Folder Dialog.
Entre los controles disponibles que tenemos por defecto tenemos separado "FolderBrowserDialog" y "OpenFileDialog" .

Pero estoy buscando un OpenFileDialog pero que me soporte elegir Carpeta también.  
y tenga la opción Multi-Select . osea que selección un archivo y una carpeta al mismo tiempo.

Después yo verifico si es un archivo o una carpeta con :


Código (vbnet) [Seleccionar]
Public Function IsFolder(ByVal path As String) As Boolean
       Return ((File.GetAttributes(path) And FileAttributes.Directory) = FileAttributes.Directory)
   End Function



Gracias de antemano.
#44
No tenia nada que hacer y bueno lei el siguiente Post : No Recoil para juegos shooter !!

Asi que manos a la Obra. Lo empece a Hacer anoche , terminado hoy.

No Manipula/ Edita la Memoria del Juego.
Solo Trabaja con el mause, esto lo hace INDETECTABLE y Universal a cualquier Juego FPS, Hasta ahora solo lo he Probado en :
Operation7 Sofnix y Counter Striker 1.6 .


Se Destaca en OPERATION7 ya que las armas tienen demasiado Retroceso.

Descripción de como usar , esta todo en Github :

External No Recoil

Imagenes ( Con el Programa / Sin el Programa) :





Creditos a Mi.



#45
Hola , Bueno tengo 2 Problemas .


1) Asi es como estoy Leyendo El archivo .dat , pero no me lee los datos completos=

Archivo .DAT = https://anonfile.com/Q7NcveB3nc/USERDATA_DAT

Código (vbnet) [Seleccionar]
Using stream As System.IO.FileStream = File.Open("C:\Users\S4lsalsoft\Documents\GTA San Andreas User Files\SAMP\USERDA.DAT", FileMode.Open, FileAccess.Read)

             Using reader = New BinaryReader(stream)

                 If stream.Length >= 16 Then
                     Dim samp = New String(reader.ReadChars(4))

                     If samp = "SAMP" Then

                         If reader.ReadUInt32 = 1UI Then
                             Dim sc = reader.ReadInt32
                             For i = 0 To sc - 1
                                 Dim ip As String = Encoding.[Default].GetString(reader.ReadBytes(reader.ReadInt32))
                                 Dim port As UShort = (reader.ReadUInt32)
                                 ' Dim cn As String = Utils.GuessedStringEncoding(reader.ReadBytes(reader.ReadInt32))
                                 Dim cn As String = Encoding.[Default].GetString(reader.ReadBytes(reader.ReadInt32))
                                 Dim sp As String = Encoding.[Default].GetString(reader.ReadBytes(reader.ReadInt32))
                                 Dim rp As String = Encoding.[Default].GetString(reader.ReadBytes(reader.ReadInt32))
                                  MsgBox(cn & ip & port & sp)
                              Next
                         End If
                     End If
                 End If
             End Using
         End Using


Esto Me lee algunos Valores, Pero no me lee todos incluso aveces causo error. asi que necesito ayuda de como leer el archivo.




Mi Segundo Problema es Que no se Como enviar un Query para obtener información. tengo una api que encontré en internet , Funciona. pero el metodo de uso es este :

Esta es la Api : https://github.com/BenBout/SampQueryService

Los Métodos de uso Son :

Código (vbnet) [Seleccionar]
Private Shared Async Function SimpleQuery() As Task
       Dim serverIP = IPAddress.Parse("151.80.94.179")
       Dim port As Integer = 7777
       Dim sampQuery = New SampQueryClient()
       Dim playerList = Await sampQuery.SendQueryAsync(Of PlayerList)(serverIP, port)

       If playerList.IsCompleted Then
           Dim filteredPlayerList = playerList.Players.Where(Function(p) p.Level > 5).OrderByDescending(Function(p) p.Level)

           For Each player In filteredPlayerList
               Console.WriteLine($"ID: {player.ID} Username: {player.UserName} Ping: {player.ping}")
           Next
       End If
   End Function

   Private Shared Async Function MultipleQueriesWithSameQueryResultType() As Task
       Dim ipEndList = New List(Of IPEndPoint)()
       Dim serverInfoList = Await New SampQueryClient().SendQueryAsync(Of ServerInfo)(ipEndList)

       For Each server In serverInfoList
           If server.IsCompleted Then Console.WriteLine($"Server name: {server.HostName}")
       Next
   End Function


Como pueden ver son asincronicos y no me deja agregar la informacion obtenida a un ListView , como Podria hacer eso?


Gracias de antemano!