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


 


Tema destacado: [Aporte] Mejores practicas en Java


  Mostrar Mensajes
Páginas: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ... 50
1  Programación / .NET (C#, VB.NET, ASP) / Re: [Ayuda] Mi Class Overlay para Cheats genera un Alto Consumo de Ram. en: 16 Septiembre 2020, 21:54
Perfecto. reduje en mas del 50% de lo que consumía.  gracias de nuevo bro.
También actualice los Pinvokes.

 ;-)
2  Programación / .NET (C#, VB.NET, ASP) / [Ayuda] Mi Class Overlay para Cheats genera un Alto Consumo de Ram. en: 16 Septiembre 2020, 16:20
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
  1. Private AttachClienGame As New Overlay(ProcessGame, Me)

Overlay.vb

Código
  1. Imports System.Runtime.InteropServices
  2. Imports System.Net.Mail
  3. Imports System.Text
  4.  
  5.  
  6. Public Class Overlay
  7.  
  8. #Region " P/Invokes "
  9.  
  10.    <DllImport("user32.dll")> _
  11.    Public Shared Function GetWindowRect(ByVal hWnd As IntPtr, ByRef lpRect As RECT) As Boolean
  12.    End Function
  13.  
  14.    <DllImport("user32.dll", SetLastError:=True)> _
  15.    Private Shared Function GetForegroundWindow() As IntPtr
  16.    End Function
  17.  
  18.    <DllImport("user32.dll", SetLastError:=True)> _
  19.    Private Shared Function GetWindowThreadProcessId(ByVal hWnd As IntPtr, ByRef lpdwProcessId As UInteger) As Integer
  20.    End Function
  21.  
  22.    Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal Classname As String, ByVal WindowName As String) As IntPtr
  23.    Public Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hWnd As IntPtr, ByRef lpdwProcessId As Integer) As Integer
  24.    Public Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Integer, ByVal bInheritHandle As Integer, ByVal dwProcessId As Integer) As IntPtr
  25.    Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As IntPtr) As Integer
  26.  
  27. #End Region
  28.  
  29. #Region " Properties "
  30.  
  31.    Private Shared Monitor As Boolean = True
  32.    Public Property ActivateMonitoring As Boolean
  33.        Get
  34.            Return Monitor
  35.        End Get
  36.        Set(value As Boolean)
  37.            Monitor = value
  38.        End Set
  39.    End Property
  40.  
  41.    Private Shared GameWindowsTitle As String = String.Empty
  42.    Public ReadOnly Property GetWindowsTitle As String
  43.        Get
  44.            Return GameWindowsTitle
  45.        End Get
  46.    End Property
  47.  
  48.    Private Shared GameHandle As IntPtr = Nothing
  49.    Public ReadOnly Property GetGameHandle As IntPtr
  50.        Get
  51.            Return GameHandle
  52.        End Get
  53.    End Property
  54.  
  55.    Private Shared GameLocation As Point = Nothing
  56.    Public ReadOnly Property GetGameLocation As Point
  57.        Get
  58.            Return GameLocation
  59.        End Get
  60.    End Property
  61.  
  62.    Private Shared GameSize As Size = Nothing
  63.    Public ReadOnly Property GetGameSize As Size
  64.        Get
  65.            Return GameSize
  66.        End Get
  67.    End Property
  68.  
  69. #End Region
  70.  
  71. #Region " Structures "
  72.  
  73.    Public Structure RECT
  74.        Public Left As Integer
  75.        Public Top As Integer
  76.        Public Right As Integer
  77.        Public Bottom As Integer
  78.    End Structure
  79.  
  80. #End Region
  81.  
  82. #Region " Declare's "
  83.  
  84.    Public window_loc As RECT
  85.    Public screencenter(1) As Integer
  86.    Public hWnd As IntPtr = Nothing
  87.    Public pHandle As IntPtr = Nothing
  88.    Public processID As Integer = Nothing
  89.    Private ProcessName As String = String.Empty
  90.    Public Const PROCESS_VM_ALL As Integer = &H1F0FFF
  91.    Private MyAppProcess As String = Process.GetCurrentProcess().ProcessName
  92.    Private FormManagement As Form = Nothing
  93.  
  94. #End Region
  95.  
  96. #Region " Public Methods "
  97.  
  98.    Public Sub New(ByVal ProcName As String, Optional ByVal FormC As Form = Nothing)
  99.        ProcessName = ProcName
  100.        If ProcessName.ToLower.EndsWith(".exe") Then ProcessName = ProcessName.Substring(0, ProcessName.Length - 4)
  101.        FormManagement = FormC
  102.        Dim tsk As New Task(AddressOf AttachtClient, TaskCreationOptions.LongRunning)
  103.        tsk.Start()
  104.    End Sub
  105.  
  106. #End Region
  107.  
  108. #Region " Private Methods "
  109.  
  110.    Private Sub AttachtClient()
  111.        'On Error Resume Next
  112.        Do While True
  113.            If Monitor = True Then
  114.                If Not ProcessName = String.Empty Then
  115.  
  116.                    Dim proc() As Process = Process.GetProcessesByName(ProcessName)
  117.  
  118.                    If Not proc.Length = 0 Then
  119.  
  120.                        If IsGameAppFocus() = True Then
  121.  
  122.                            Dim windowname As String = proc(0).MainWindowTitle
  123.                            GameWindowsTitle = windowname
  124.  
  125.                            hWnd = FindWindow(vbNullString, windowname)
  126.  
  127.                            GetWindowThreadProcessId(hWnd, processID)
  128.  
  129.                            pHandle = OpenProcess(PROCESS_VM_ALL, 0, processID)
  130.                            GameHandle = pHandle
  131.  
  132.                            If hWnd = 0 Then Exit Do
  133.  
  134.                            GetWindowRect(hWnd, window_loc)
  135.  
  136.                            GameLocation = New Point((window_loc.Left + 10), (window_loc.Top + 35))
  137.  
  138.                            GameSize = New Point(((window_loc.Right - window_loc.Left) - 25), ((window_loc.Bottom - window_loc.Top) - 45))
  139.  
  140.                            If Not (FormManagement Is Nothing) Then
  141.  
  142.                                If FormManagement.Visible = True Then
  143.  
  144.                                    FormManagement.BeginInvoke(Sub()
  145.                                                                   FormManagement.Location = GameLocation
  146.                                                                   FormManagement.Size = GameSize
  147.                                                               End Sub)
  148.  
  149.                                End If
  150.  
  151.                            End If
  152.  
  153.                        Else
  154.  
  155.                            If FormManagement.Visible = True Then
  156.  
  157.                                FormManagement.BeginInvoke(Sub()
  158.                                                               FormManagement.Hide()
  159.                                                           End Sub)
  160.  
  161.                            End If
  162.  
  163.                        End If
  164.  
  165.                    Else
  166.  
  167.                        is_active(True)
  168.  
  169.                    End If
  170.                End If
  171.            End If
  172.        Loop
  173.    End Sub
  174.  
  175.    Private Function IsGameAppFocus() As Boolean
  176.        Dim ActiveProcess As Process = GetActiveProcess()
  177.        Dim IsFocusGame As Boolean = False
  178.        If ActiveProcess IsNot Nothing Then
  179.            Dim CurrentProcName As String = ActiveProcess.ProcessName
  180.  
  181.            If LCase(CurrentProcName) = LCase(MyAppProcess) Then
  182.                IsFocusGame = True
  183.            End If
  184.  
  185.            If LCase(CurrentProcName) = LCase(ProcessName) Then
  186.                IsFocusGame = True
  187.            End If
  188.  
  189.  
  190.            Return IsFocusGame
  191.  
  192.        End If
  193.  
  194.        Return IsFocusGame
  195.    End Function
  196.  
  197.    Private Function GetActiveProcess() As Process
  198.        Dim FocusedWindow As IntPtr = GetForegroundWindow()
  199.        If FocusedWindow = IntPtr.Zero Then Return Nothing
  200.  
  201.        Dim FocusedWindowProcessId As UInteger = 0
  202.        GetWindowThreadProcessId(FocusedWindow, FocusedWindowProcessId)
  203.  
  204.        If FocusedWindowProcessId = 0 Then Return Nothing
  205.        Return Process.GetProcessById(CType(FocusedWindowProcessId, Integer))
  206.    End Function
  207.  
  208.    Private Sub is_active(Optional ByVal exit_ As Boolean = True)
  209.        Dim p As Process() = Process.GetProcessesByName(ProcessName)
  210.        If p.Length = 0 And exit_ Then
  211.            Environment.Exit(0)
  212.        End If
  213.    End Sub
  214.  
  215. #End Region
  216.  
  217. End Class
  218.  
3  Programación / .NET (C#, VB.NET, ASP) / Re: [Ayuda] Prevenir que un Programa se Minimize o se cambie el foco de Windows. en: 15 Septiembre 2020, 18:19
Coño, lo mio también es trabajo honesto, literalmente todo el código que te he mostrado lo hice hoy para ayudarte xD (vale que aparte intento comercializar la libreria, pero eso es otro tema)

Siempre ayudas de verdad. y aquellos testamentos que me ponías me ayudaron bastante.  deberían regresarte el Moderador.... como mínimo.



Citar
Leyendo el Readme.md del repositorio se nota que es un trabajo bastante amplio, lleno de características. Me ha parecido curiosa la detección de DnSpy

La deteccion es realmente sencilla. el Dnspy y el D4dot crean carpetas en Appdata-local. para guardar su configuracion , solo reviso si la carpeta existe. y listo. sin contar la deteccion de los procesos que hago ...



Citar
pero te olvidas de un par más de decompiladores bastante populares que quizás quieras añadirlos a las detecciones: ILSpy, SAE (Simple Assembly Explorer) y .NET Reflector.
¿Y que hay de otras máquinas virtuales diferentes a VMWare y VirtualPC?, QEMU se utiliza mucho también. Adicionálmente a esto veo que faltaría protección anti-debug remota para bloquear el acceso de paquetes de red a programas como Fiddler, Wireshark o WPE Pro.


Intentare agregarlos, aunque siempre la mejor protección para .Net, en mi experiencia es Obfuzcar bien el código . de manera de dejarlo completamente Irreconocible.

Ya lo otro seria pasarle un buen Packer. como por ejemplo Enigma o VMProtect.

básicamente la mayor parte del proyecto es gracias a esta guia :

An Anti-Reverse Engineering Guide

4  Programación / .NET (C#, VB.NET, ASP) / Re: [Ayuda] Prevenir que un Programa se Minimize o se cambie el foco de Windows. en: 15 Septiembre 2020, 16:33
¿Pero lo estás jugando a pantalla completa dedicada, o ventana sin bordes?...

De todas formas si ese problema es tal y como dices, entonces lo más simple para prevenirlo sería desarrollar un cheat sin interfaz gráfica y así evitar el problema. Si no puedes vencer a tu enemigo, acomódate a él. xD

También puedes probar a utilizar la función de Windows 'SetWindowLongPtr' sobre la ventana de tu aplicación:
https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-setwindowlongptra

con la combinación de estilos extendidos de ventana: WS_EX_TOPMOST + WS_EX_NOACTIVATE:
https://docs.microsoft.com/en-us/windows/win32/winmsg/extended-window-styles

Teoricamente con esa combinación de estilos puedes superponer una ventana sobre las demás (top most) sin activar el foco de entrada de dicha ventana.


Gracias bro, como siempre este es el único lugar donde siempre logro resolver completamente mis dudas gracias ti.

Como siempre tu conocimiento en .Net me dejaron boca abierta.... he quedado como que wtf.

Has dado justo en el clavo. justo lo que necesitaba.  Así lo resolví :

Funciona Perfectamente. Se puede interactuar con el cheat encima del juego y no perder el foco de la ventana del juego.

Código
  1. #Region " No Windows Focus "
  2.  
  3.    Protected Overrides ReadOnly Property ShowWithoutActivation As Boolean
  4.        Get
  5.            Return True
  6.        End Get
  7.    End Property
  8.  
  9.    Private Const WS_EX_TOPMOST As Integer = &H8
  10.  
  11.    Private Const WS_THICKFRAME As Integer = &H40000
  12.    Private Const WS_CHILD As Integer = &H40000000
  13.    Private Const WS_EX_NOACTIVATE As Integer = &H8000000
  14.    Private Const WS_EX_TOOLWINDOW As Integer = &H80
  15.  
  16.    Protected Overrides ReadOnly Property CreateParams As CreateParams
  17.        Get
  18.            Dim createParamsA As CreateParams = MyBase.CreateParams
  19.            createParamsA.ExStyle = createParamsA.ExStyle Or WS_EX_TOPMOST Or WS_EX_NOACTIVATE Or WS_EX_TOOLWINDOW
  20.            Return createParamsA
  21.        End Get
  22.    End Property
  23.  
  24. #End Region



Citar
No se a que clase te refieres, pero esto te debería servir para suspender y reanudar el proceso:

https://foro.elhacker.net/net_c_vbnet_asp/libreria_de_snippets_para_vbnet_compartan_aqui_sus_snippets-t378770.0.html;msg1859297#msg1859297

Aquí te dejo una actualización del código:


Por alguna razon tu clase no me funcionaba, pero esta actualizacion de codigo fuciona perfectamente. lo malo es q el juego se desconecta del servidor. y pos pausar el proceso tampoco funciona.

Este era mi actual codigo para pausar y reanudar procesos :

ProcessPausator.vb

Código
  1. Public Class ProcessPausator
  2.  
  3. #Region " Pinvoke "
  4.  
  5.    Public Declare Function OpenThread Lib "kernel32.dll" (ByVal dwDesiredAccess As ThreadAccess, ByVal bInheritHandle As Boolean, ByVal dwThreadId As UInteger) As IntPtr
  6.    Public Declare Function SuspendThread Lib "kernel32.dll" (ByVal hThread As IntPtr) As UInteger
  7.    Public Declare Function ResumeThread Lib "kernel32.dll" (ByVal hThread As IntPtr) As UInteger
  8.    Public Declare Function CloseHandle Lib "kernel32.dll" (ByVal hHandle As IntPtr) As Boolean
  9.  
  10. #End Region
  11.  
  12. #Region " Enum "
  13.  
  14.    Public Enum ThreadAccess As Integer
  15.        TERMINATE = (&H1)
  16.        SUSPEND_RESUME = (&H2)
  17.        GET_CONTEXT = (&H8)
  18.        SET_CONTEXT = (&H10)
  19.        SET_INFORMATION = (&H20)
  20.        QUERY_INFORMATION = (&H40)
  21.        SET_THREAD_TOKEN = (&H80)
  22.        IMPERSONATE = (&H100)
  23.        DIRECT_IMPERSONATION = (&H200)
  24.    End Enum
  25.  
  26. #End Region
  27.  
  28.    Public Shared Function PauseThread(ByRef Process_Name As String) As Boolean
  29.  
  30.        If Process_Name.ToLower.EndsWith(".exe") Then Process_Name = Process_Name.Substring(0, Process_Name.Length - 4)
  31.  
  32.        Dim proc() As Process = Process.GetProcessesByName(Process_Name)
  33.  
  34.        If Not proc.Length = 0 Then
  35.            SuspendProcess(proc(0))
  36.            Return True
  37.        End If
  38.        Return False
  39.    End Function
  40.  
  41.    Public Shared Function ResumeThread(ByRef Process_Name As String) As Boolean
  42.  
  43.        If Process_Name.ToLower.EndsWith(".exe") Then Process_Name = Process_Name.Substring(0, Process_Name.Length - 4)
  44.  
  45.        Dim proc() As Process = Process.GetProcessesByName(Process_Name)
  46.  
  47.        If Not proc.Length = 0 Then
  48.            ResumeProcess(proc(0))
  49.            Return True
  50.        End If
  51.        Return False
  52.    End Function
  53.  
  54.    Private Shared Sub SuspendProcess(ByVal process As System.Diagnostics.Process)
  55.        For Each t As ProcessThread In process.Threads
  56.            Dim th As IntPtr = OpenThread(ThreadAccess.SUSPEND_RESUME, False, t.Id)
  57.            If Not th = IntPtr.Zero Then
  58.                SuspendThread(th)
  59.                CloseHandle(th)
  60.            End If
  61.        Next
  62.    End Sub
  63.  
  64.    Private Shared Sub ResumeProcess(ByVal process As System.Diagnostics.Process)
  65.        For Each t As ProcessThread In process.Threads
  66.            Dim th As IntPtr = OpenThread(ThreadAccess.SUSPEND_RESUME, False, t.Id)
  67.            If Not th = IntPtr.Zero Then
  68.                ResumeThread(th)
  69.                CloseHandle(th)
  70.            End If
  71.        Next
  72.    End Sub
  73.  
  74. End Class
  75.  

No es mucho pero es trabajo honesto .... pero si lo comparo a tu code.....

PD: Que opinas de mi mejor proyecto , que he hecho hasta ahora? .

es mi obra maestra : https://github.com/DestroyerDarkNess/DestroyerProtection



5  Programación / .NET (C#, VB.NET, ASP) / Re: [Ayuda] Prevenir que un Programa se Minimize o se cambie el foco de Windows. en: 15 Septiembre 2020, 00:07
Hola:
         no he intentado lo que planteas, ya me voya aponer a ver que pasa, pero... ¿por qué no usar el cheat directamente con combinación de teclas?

En efecto eso es lo que estoy haciendo actualmente. uso Up, Down , Left , Righ . para navegar por las opciones, un menu simple de cheat ON - OFF.



Pero deberia haber algun modo. de que al llamar a la venta del cheat. no se cambie el foco de windows. y ya con esto podria hacer un cheat con botones, textbox. etc..
6  Programación / .NET (C#, VB.NET, ASP) / [Ayuda] Prevenir que un Programa se Minimize o se cambie el foco de Windows. en: 14 Septiembre 2020, 23:25
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
  1. Private ActiveProc As New ProcessActivate(ProcessGame)

    ProcessActivate.vb
    
Código
  1. Public Class ProcessActivate
  2.  
  3.    Private Shared Monitor As Boolean = True
  4.    Public Property ActivateMonitoring As Boolean
  5.        Get
  6.            Return Monitor
  7.        End Get
  8.        Set(value As Boolean)
  9.            Monitor = value
  10.        End Set
  11.    End Property
  12.  
  13.    Private ProcessName As String = String.Empty
  14.  
  15.    Public Sub New(ByVal ProcName As String)
  16.        ProcessName = ProcName
  17.  
  18.        Dim tsk As New Task(AddressOf AppActivateEx, TaskCreationOptions.LongRunning)
  19.        tsk.Start()
  20.    End Sub
  21.  
  22.    Private Sub AppActivateEx()
  23.        On Error Resume Next
  24.        Do While True
  25.            If Monitor = True Then
  26.                If Not ProcessName = String.Empty Then
  27.                    If ProcessName.ToLower.EndsWith(".exe") Then ProcessName = ProcessName.Substring(0, ProcessName.Length - 4)
  28.  
  29.                    Dim proc() As Process = Process.GetProcessesByName(ProcessName)
  30.  
  31.                    If Not proc.Length = 0 Then
  32.  
  33.                        AppActivate(proc(0).MainWindowTitle)
  34.  
  35.                    End If
  36.                End If
  37.            End If
  38.        Loop
  39.    End Sub
  40.  
  41. End Class
  42.  



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 :
 

 



7  Programación / .NET (C#, VB.NET, ASP) / [Source-Code] StrelyCleaner Pro en: 21 Agosto 2020, 18:51

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...
8  Seguridad Informática / Análisis y Diseño de Malware / Re: Muestra de virus Polimorfico Sality. en: 15 Agosto 2020, 23:39
Me Sirvió perfectamente , gracias.
9  Seguridad Informática / Análisis y Diseño de Malware / Muestra de virus Polimorfico Sality. en: 15 Agosto 2020, 19:55
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.
10  Foros Generales / Foro Libre / Re: Tengo un problema informatico a ver si alguien me tira una idea en: 6 Agosto 2020, 02:46
Esta muy raro eso. basicamente los word te los abre Worpad en ves de Word - Microsoft Office.

Posiblemente, tus archivos esten dañados, o algun adware te abra Jodido la asociacion de la extensión al programa Word.



Intenta Descargar e Instalar :

Link : WPS Office

Lo descargas e Instalas, y veras como ya vuelves a abrir tus archivos Word.

Código:
WPS Office, es una suite ofimática para Microsoft Windows, Linux, Android OS, iOS.​ Creada por el desarrollador de software Kingsoft Office en Zhuhai, China. Incluye los siguientes componentes: Writer, Presentation y Spreadsheet.​



Siempre lo uso, es mas ligero . y a mi parecer mejor que la Suite de Microsoft Office. y Muchisimo mejor que OpenOffice
Páginas: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ... 50
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines