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 :
(http://i63.tinypic.com/xoo5xc.jpg)
Análisis de Virus-total :
Point Blank MultiHack Virustotal Análisis (https://www.virustotal.com/#/file/f5cf70c14afeb5893d0c7c2aa3bba50d7e53896c22252815eef564209bb296aa/detection)
Genial nunca vi un Hack Tan limpio :P
Link del Archivo Ejecutable:
Point Blank MultiHack (https://mega.nz/#!p1diUJiK!sb_NYrqTwNqtqLc_UYVUgdS48GeVNw7DBJBzqbD6s10)
Link del SOURCE-CODE:
Point Blank MultiHack [SOURCE-CODE] (https://mega.nz/#!tgNXmbhQ!3tbmB8aNNT8rr7-V7qOliWWw3FW_RwYSx4Nm5OFXm-M)
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 :-\ )
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...
- https://desktop.github.com/
( o en su defecto la extensión de Github para Visual Studio, la que te instala Visual Studio. )
Una imagen del programa:
(https://desktop.github.com/images/github-desktop-screenshot-windows.png)
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:
- Tangible Source Code Converters 17.4.12 (Los mejores convertidores de códigos!) (https://foro.elhacker.net/series_peliculas_musica_juegos_programas/tangible_source_code_converters_17412_los_mejores_convertidores_de_codigos-t468720.0.html;msg2120677#msg2120677)
( 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):
- https://github.com/Konctantin/GreyMagic (https://github.com/Konctantin/GreyMagic)
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:
- https://www.ownedcore.com/forums/world-of-warcraft/world-of-warcraft-bots-programs/wow-memory-editing/379821-greymagic-best-of-both-worlds-then-some.html
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!
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 :
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 :
<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 :
<MarshalAs(UnmanagedType.Bool)> Boolean
Por eso , tendrías alguna guía PDF que explique y enseñe bien vb.net
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:
- Visual Basic 6.0 Resource Center (https://msdn.microsoft.com/library/windows/desktop/ms788229)
- Support Statement for Visual Basic 6.0 on Windows | docs.microsoft.com (https://docs.microsoft.com/en-US/visualstudio/vb6/vb6-support)
- Preparing Your Visual Basic 6.0 Applications for the Upgrade to Visual Basic .NET | msdn.microsoft.com (https://msdn.microsoft.com/en-us/library/aa260644(v=vs.60).aspx)
Guías de iniciación:
- Get started with Visual Basic| docs.microsoft.com (https://docs.microsoft.com/en-us/dotnet/visual-basic/getting-started/)
- Visual Basic Guide | docs.microsoft.com (https://docs.microsoft.com/en-us/dotnet/visual-basic/)
- Visual Basic Programming Guide| docs.microsoft.com (https://docs.microsoft.com/en-us/dotnet/visual-basic/programming-guide/)
- Visual Basic Language Reference | docs.microsoft.com (https://docs.microsoft.com/en-us/dotnet/visual-basic/language-reference/)
- Visual Basic Language Walkthroughs | docs.microsoft.com (https://docs.microsoft.com/en-us/dotnet/visual-basic/walkthroughs)
+
- Get started with the .NET Framework | docs.microsoft.com (https://docs.microsoft.com/en-us/dotnet/framework/get-started/)
- Tour of .NET | docs.microsoft.com (https://docs.microsoft.com/en-us/dotnet/standard/tour)
- .NET Framework Development Guide | docs.microsoft.com (https://docs.microsoft.com/en-us/dotnet/framework/development-guide)
Y aquí tienes mucho más, incluyendo videotutoriales y de todo un poco variado:
- Manuales de .NET (https://foro.elhacker.net/net/manuales_de_net-t122607.0.html;msg1960666#msg1960666)
Cita de: **Aincrad** en 6 Marzo 2018, 16:46 PMyo utilice :
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 :
<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:
(https://i.imgur.com/jLQKSMY.png)
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]
<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.
- MarshalAsAttribute Class | msdn.microsoft.com (http://marshalasattribute%20class%20|%20msdn.microsoft.com)
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):
- Default Marshaling Behavior | docs.microsoft.com (https://msdn.microsoft.com/es-es/library/windows/desktop/ms680553(v=vs.85).aspx)
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:
- Consuming Unmanaged DLL Functions | docs.microsoft.com (https://docs.microsoft.com/en-us/dotnet/framework/interop/consuming-unmanaged-dll-functions)
- Marshaling Data with Platform Invoke #1 | docs.microsoft.com (https://docs.microsoft.com/en-us/dotnet/framework/interop/marshaling-data-with-platform-invoke)
- Marshaling Data with Platform Invoke #2 | msdn.microsoft.com (https://msdn.microsoft.com/en-us/library/fzhhdwae(v=vs.100).aspx)
- Platform Invoke Data Types | msdn.microsoft.com (https://msdn.microsoft.com/en-us/library/ac7ay120(v=vs.100).aspx)
- A Closer Look at Platform Invoke | msdn.microsoft.com (https://msdn.microsoft.com/en-us/library/0h9e9t7d(v=vs.100).aspx)
- Platform Invoke and COM Interop Models | docs.microsoft.com (https://docs.microsoft.com/en-us/dotnet/framework/interop/interop-marshaling#platform_invoke_and_com_interop_models)
- Interoperating with unmanaged code | docs.microsoft.com (https://docs.microsoft.com/en-us/dotnet/framework/interop/)
+
- Interop with Native Libraries | mono-project.com/ (http://www.mono-project.com/docs/advanced/pinvoke/)
+
- DllImportAttribute Class | docs.microsoft.com (https://docs.microsoft.com/en-us/dotnet/api/system.runtime.interopservices.dllimportattribute?view=netframework-4.7.1)
- DllImportAttribute.SetLastError Field | docs.microsoft.com (https://docs.microsoft.com/en-us/dotnet/api/system.runtime.interopservices.dllimportattribute.setlasterror?view=netframework-4.7.1)
- Marshal.GetLastWin32Error Function | docs.microsoft.com (https://docs.microsoft.com/en-us/dotnet/api/system.runtime.interopservices.marshal.getlastwin32error?view=netframework-4.7.1#System_Runtime_InteropServices_Marshal_GetLastWin32Error)
- Specifying a Character Set | docs.microsoft.com (https://docs.microsoft.com/en-us/dotnet/framework/interop/specifying-a-character-set)
- CallingConvention Enumeration | msdn.microsoft.com (https://msdn.microsoft.com/en-us/library/system.runtime.interopservices.callingconvention(v=vs.110).aspx)
- Passing Structures | docs.microsoft.com (https://docs.microsoft.com/en-us/dotnet/framework/interop/passing-structures)
+
- CA1060: Move P/Invokes to NativeMethods class | msdn.microsoft.com (https://msdn.microsoft.com/en-us/library/ms182161.aspxl)
+
- ReadProcessMemory function | msdn.microsoft.com/ (https://msdn.microsoft.com/es-es/library/windows/desktop/ms680553(v=vs.85).aspx)
- pinvoke.net: the interop wiki | pinvoke.net! (http://www.pinvoke.net/)
- PInvoke Interop Assistant | blogs.msdn.microsoft.com (https://blogs.msdn.microsoft.com/vbteam/tag/pinvoke/)
(https://i.imgur.com/2H5t28z.png)
+
- Platform Invoke Examples (https://docs.microsoft.com/en-us/dotnet/framework/interop/platform-invoke-examples)
- P/Invoke Tutorial: Basics (Part 1) | codeproject.com (https://www.codeproject.com/Articles/403285/P-Invoke-Tutorial-Basics-Part)
- code.msdn.microsoft.com | This code sample demonstrates P/Invoking a native DLL in a C# project (https://code.msdn.microsoft.com/windowsdesktop/CSPInvokeDll-b05779d0)
- code.msdn.microsoft.com | This code sample demonstrates P/Invoking a native DLL in a VB.NET project (https://code.msdn.microsoft.com/windowsdesktop/VBPInvokeDll-e220099a)
Saludos!
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 (https://foro.elhacker.net/windows/ayuda_no_puedo_entrar_a_mi_disco_de_respaldo-t481214.0.html;msg2156230;topicseen#msg2156230)
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!