[SOURCE-CODE] Point Blank MultiHack . Incluye Bypass al X-trap XD

Iniciado por **Aincrad**, 27 Febrero 2018, 03:16 AM

0 Miembros y 1 Visitante están viendo este tema.

**Aincrad**

Hola a todos ... . .  bueno como dice el titulo los que les prometí en el pos anterior . Wallhack & Aimbot totalmente en VB.NET siii VB.NET  ;-) .

Bueno , estaba intentando subirlo a github pero se me agoto la paciencia al intentando crear la put* carpeta en el repositorio de github.

entonces como les decía :




El MultiHack contiene :


* Point Blank Loader
* Bypass al ANTICHEAT X-TRAP . XD . Próximamente buscare otras formas de Burlarlo , (tal-vez pausando el Proceso y editando la memoria XD )
* WALLHACK CT
* WALLHACK TR
* AIMBOT


Bueno He Aquí una foto del Multihack :



Análisis de Virus-total :

Point Blank MultiHack Virustotal Análisis

Genial nunca vi un Hack Tan limpio  :P

Link del Archivo Ejecutable:

Point Blank MultiHack

Link del SOURCE-CODE:

Point Blank MultiHack [SOURCE-CODE]




PD: Para la Próxima Les Traeré  un ESP-BOX wallhack un 2d o tal vez 3d.     :laugh:

PD2: También Corregiré el Bug de Cuando el juego se encuentra en Pantalla Completa.  :laugh:

Bueno hare esa 2 Cosas Cuando Cuando apreda bien a usar Direcx en VB.NET .(eso me recuerda a que tengo que desargar el Direcx SDK )  :P

PD: En la creación de este Hack me he ayudado de información y Ejemplos de Otros foros. /(También tuve que traducir code de C a VB.NET  :-\ )




Eleкtro

#1
CitarBueno , estaba intentando subirlo a github pero se me agoto la paciencia al intentando crear la put* carpeta en el repositorio de github.

Yo te sugiero que para cualquier cosa (crear un repo, actualizar / hacer pull, fetch, merge etc) no te andes con la web de github ni con la consola de Git, eso es una herramienta para gente a la que le gusta complicarse la vida sin razón, ya que en su lugar puedes utilizar una interfaz gráfica como GitHub Desktop y así te olvidarás por completo de cualquier dificultad de uso...


( o en su defecto la extensión de Github para Visual Studio, la que te instala Visual Studio. )

Una imagen del programa:






Cita de: **Aincrad** en 27 Febrero 2018, 03:16 AMtuve que traducir code de C a VB.NET

Para facilitar la tediosa tarea de convertir código C/C++ a VB.NET te recomiendo sin lugar a dudas la aplicación Tangible C++ to VB.NET converter:

( ojo, a día de hoy existen versiones mucho más actuales del programa, las cuales puedes encontrar Googleando en foros especializados en "medicinas"... )

Evidentemente el programa no hará mágia, pero será capaz de convertir gran parte del código fuente y en lo que no sea capaz te proporcionará pistas útiles para ayudarte en la conversión.




Vamos con la parte más importante...

Para las operaciones de lectura y escritura que realizas, en tu código fuente deberías declarar y usar las funciones Win32 según las especificaciones de Platform Invoking de .NET Framework para sacarle un beneficio óptimo. No deberías seguir programando al estilo de VB6 ya que esto no es VB6, te lo comento por que al analizar el código fuente se puede apreciar que hiciste mucho copy&paste en ese sentido al declarar todas las funciones nativas de Windows que utilizas. Además, debes portabilizar los parámetros de las funciones.

Si no te manejas con P/Invoke no hay problema, no debes preocuparte ya que por suerte existe una librería llamada GreyMagic muy, muy, MUY optimizada precisamente para facilitar este tipo de tareas orientadas a la manipulación de memoria, detours (API hooking), parches e inyección, para la creación de bots y etc, de hecho, precisamente esa librería es el "core" o el corazón del mejor y más sofisticado bot que fue creado para los juegos Diablo III y Hearthstone, si, me estoy refiriendo a Demonbuddy y Hearthbuddy.

Aquí puedes descargar el código fuente de la librería GreyMagic en C# (tiene todo lo que necesitas y así puedes eliminar todas esas declaraciones VB6-estilizadas), solo tienes que compilarla (para ello necesitarás tener instalado el SDK de Windows 8.1 o Windows 10):


Y aquí te dejo un thread del autor en la comunidad de OwnedCore que nos brinda algo más de información sobre esta librería:

Creo que es un buen consejo ya que si reemplazas todas esas declaraciones de VB6 por el uso de esta librería, tus bots/programas se volverán más estables, tendrás más versatilidad gracias el resto de características que te ofrece la librería (y la manera de utilizarlos), por no mencionar que estarías utilizando una librería que se usa de forma comercial para bots muy buenos y populares (y para otros bots de la familia "Buddy Bots"). En resumen: sería una mejora lo mires por donde lo mires, la única pega por así llamarlo es que tendrías que aprender a usar los miembros de la librería y adaptar los cambios el código fuente actual de tus "hacks".

Por último: ¡Gracias por compartir en el foro!.

Saludos!








**Aincrad**

#2
1) Gracias por avisarme , cuando esta haciendo la limpieza a mi cuenta mega parece que lo borre cuando llege a mi casa lo re-subire , puse 1 mientras pero parece que esta dañado , ahora mas tarde busco en mi pc y lo subo a google drive.




2) voy a probar la app de desktop github después , espero que sea compatible con windows vista .  :P




3) todavía programo en base a vb6 , no se tanto de vb.net por ejemplo en el DLL Inyector de hace tiempo:


yo utilice :

Código (vbnet) [Seleccionar]
Public Declare Function ReadProcessMemory Lib "kernel32" ( _
ByVal hProcess As Integer, _
ByVal lpBaseAddress As Integer, _
ByVal lpBuffer As String, _
ByVal nSize As Integer, _
ByRef lpNumberOfBytesWritten As Integer) As Integer


en cambio tu :

Código (vbnet) [Seleccionar]
<DllImport("Kernel32.dll", SetLastError:=True)>
   Friend Shared Function ReadProcessMemory(ByVal hProcess As IntPtr,
                                            ByVal baseAddress As IntPtr,
                                            ByVal buffer As IntPtr,
                                            ByVal size As UInteger,
                                            ByRef refNumberOfBytesRead As Integer
   ) As <MarshalAs(UnmanagedType.Bool)> Boolean
   End Function


ya con esa parte me dejaste realmente confundido , primero :

no entiendo esto :


Código (vbnet) [Seleccionar]
<MarshalAs(UnmanagedType.Bool)> Boolean

Por eso , tendrías alguna guía  PDF que explique y enseñe bien vb.net




Eleкtro

#3
Cita de: **Aincrad** en  6 Marzo 2018, 16:46 PMPor eso , tendrías alguna guía  PDF que explique y enseñe bien vb.net

No me verás nunca recomendar un libro de programación .NET, ya que siempre he considerado que la "guía" que mejor explica y enseña bien programación .NET (C#/VB.NET) y Windows desde los detalles fundamentales hasta el detalle más pequeño e insignificante, esa es la página de msdn.microsoft.com y docs.microsoft.com. No hay guía más completa, eso si, hay que leer sus artículos ya teniendo aprendidos algunos conceptos básicos de la POO (aunque de todas formas en la MSDN también te enseñan los conceptos de la POO de forma profundizada y enfocada a .NET, pero para aprender POO ya si que sería mejor leer un libro que lo "centralice" todo en un buen sumario de contenidos).

Para iniciarse en VB.NET viniendo previamente de VB6, tienes al menos estos recursos de ayuda que encontré:

Sobre la migración:


Guías de iniciación:

+

Y aquí tienes mucho más, incluyendo videotutoriales y de todo un poco variado:




Cita de: **Aincrad** en  6 Marzo 2018, 16:46 PMyo utilice :

Código (vbnet) [Seleccionar]
Public Declare Function ReadProcessMemory Lib "kernel32" ( _
ByVal hProcess As Integer, _
ByVal lpBaseAddress As Integer, _
ByVal lpBuffer As String, _
ByVal nSize As Integer, _
ByRef lpNumberOfBytesWritten As Integer) As Integer


en cambio tu :

Código (vbnet) [Seleccionar]
<DllImport("Kernel32.dll", SetLastError:=True)>
   Friend Shared Function ReadProcessMemory(ByVal hProcess As IntPtr,
                                            ByVal baseAddress As IntPtr,
                                            ByVal buffer As IntPtr,
                                            ByVal size As UInteger,
                                            ByRef refNumberOfBytesRead As Integer
   ) As <MarshalAs(UnmanagedType.Bool)> Boolean
   End Function

La diferencia más notable (aparte de estar utilizando el keyword Declare) es que la firma de esa función (los parámetros) no son portables. Si iniciamos la herramienta de análisis de código incluida en Visual Studio, esto son los avisos que nos lanza:



Bien, ¿pero esto que quiere decir exactamente?, pues en pocas palabras significa que esa función solo es compatible con procesos de 32 Bit, NO es compatible con 64 Bits. En este contexto nos referimos al término 'Portabilizar' para compatibilizar la firma de una función nativa para que pueda ejecutarse correctamente en arquitecturas x86 y x64, y para ello debes utilizar el tipo de tamaño dinámico IntPtr (en otros casos utilizarías UIntPtr), que son 4 bytes en 32 Bits, y 8 bytes en 64 Bits. En tu declaración, el datatype que asignas es Integer, que son 4 bytes en ambas arquitecturas.

...así que ten mucho cuidado cuando copies de Internet declaraciones de funciones nativas al estilo de VB6, por que probablemente sea código extraido directamente de VB6 de la época en que Jesucristo aprendió a programar, y por aquél entonces no se programaba con compatibilidad para X64, y cambiar el datatype Integer por Long no es una solución ya que en realidad seguirás teniendo el mismo problema solo que al revés, es decir, una función compatible con 64 Bits y no compatible con 32 Bits.




Cita de: **Aincrad** en  6 Marzo 2018, 16:46 PM
no entiendo esto :[/b]
Código (vbnet) [Seleccionar]
<MarshalAs(UnmanagedType.Bool)> Boolean

'MarshalAs' es un atributo de clase expuesto en el espacio de nombres System.Runtime.InteropServices, todos los miembros de ese namespace sirven para interoperar con código no administrado.


Lo que hace 'MarShalAs' es una serialización (o marshalling) de tipos entre el código administrado (.NET) y el no administrado (C/C++ de la librería Kernel32.dll en este caso):


Dicho de otra forma para que lo entiendas: se puede decir más o menos que lo que hace es un casteo o conversión de tipos, en este caso de Integer a Boolean.

¿Y por qué lo convierto a Boolean?, pues por una sencilla y evidente razón...

Si revisamos la documentación oficial de la función ReadProcessMemory en la MSDN, nos dice lo siguiente:
Cita de: https://msdn.microsoft.com/es-es/library/windows/desktop/ms680553(v=vs.85).aspxReturn value
If the function succeeds, the return value is nonzero.
If the function fails, the return value is 0 (zero).

Y si revisamos la documentación del datatype Boolean (o bool en C#), nos dice esto otro:
Cita de: https://docs.microsoft.com/en-us/dotnet/visual-basic/language-reference/data-types/boolean-data-typeWhen Visual Basic converts numeric data type values to Boolean, 0 becomes False and all other values become True

¿Pillas por donde voy?. El valor de retorno de la función ReadProcessMemory es traducible en equivalencia a un valor Boolean, donde cero es False, y todo lo demás es True (-1), por ende, devolver un valor Integer no sería lo más eficiente ya que nos es mucho más favorable y productivo evaluar si el resultado es True o False, en lugar de andarse con números.




Por último, con respecto al servicio de invocación de plataforma de .NET más conocido en Inglés como Platform Invoke (o P/invoke a secas), mira si tienes información de todo tipo con la que puedes aprender su significado, propósito, implementación, y utilización:

+
+
+
+



+

Saludos!








**Aincrad**

Gracias @Elektro ahora tengo material que leer .  ;-)

pero me ah surgido un problema, mientras respondías en este post , yo estaba actualizando mi windows vista pero ahora ocurrió lo siguiente :

Link




Eleкtro

Cita de: **Aincrad** en  6 Marzo 2018, 21:06 PMGracias @Elektro ahora tengo material que leer .  ;-)

Puedes decir tranquilamente que he escrito LA FUCKING BIBLIA :xD. Se que mi comentario podrá ser dificil de digerir por que es bastante extenso, pero mejor eso a quedarse corto de detalles y explicaciones. Creo que si lo consigues leer al completo aprenderás cosas útiles.

Cita de: **Aincrad** en  6 Marzo 2018, 21:06 PMyo estaba actualizando mi windows vista pero ahora ocurrió lo siguiente :

Esa partición de 0 tamaño tiene mala pinta...

Espero que lo consigas arreglar.

Saludos!