Nuevo Ejemplo programacion Hack ~ Adjuntarse a un proceso ~

Tema en 'Knight Online' iniciado por ZeusAFK, 15 Mar 2012.

Estado del tema:
Cerrado para nuevas respuestas
  1. Zeu

    ZeusAFK
    Expand Collapse
    Hack Developer Moderador

    Mensajes:
    338
    Me Gusta recibidos:
    44
    Hola, en este ejemplo les mostrare como adjuntarse al proceso de un juego o cualquier proceso, este es el primer paso para hacer sus hacks.

    Usare el lenguaje VB, y VB6 para programar

    Primeramente creamos un nuevo formulario
    Luego crearemos un Modulo

    Primeramente declarademos estas funciones en nuestro modulo que hemos creado:
    Código:
    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hWnd As Long, lpdwProcessId As Long) As Long
    Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
    Public Declare Function ReadProcessMem Lib "kernel32" Alias "ReadProcessMemory" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, ByRef lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
    Public Declare Function WriteProcessMem Lib "kernel32" Alias "WriteProcessMemory" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, ByRef lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
     
    Public Const PROCESS_ALL_ACCESS = &H1F0FFF
    Public P_HANDLE As Long
    Public P_PID As Long
    Dim P_PTR As Long
    Dim MainPointer As Long
    Ahora en nuestro modulo haremos la funcion para adjuntarnos a un proceso, la llamare Attach
    Código:
    Public Function Attach() As Boolean
    Dim Inject As Boolean
    If FindWindow(vbNullString, "Plants vs. Zombies") Then
    GetWindowThreadProcessId FindWindow(vbNullString, "Plants vs. Zombies"), P_PID
    P_HANDLE = OpenProcess(PROCESS_ALL_ACCESS, False, P_PID)
    If P_HANDLE = 0 Then
    Form1.Caption = "Plantas vs Zombies Hack - Esperando juego...."
    Attach = False
    End If
    If P_PID = 0 Then End
    Attach = True
    Form1.Caption = "Plantas vs Zombies Hack"
    Else
    Form1.Caption = "Plantas vs Zombies Hack - Esperando juego...."
    End If
    End Function
    noten que en esta funcion intentare adjuntarme al proceso del juego Plantas vs. Zombies, si quiero otro proceso solo cambio donde dice Plantas vs. Zombies por el nombre de la ventana del proceso que quieran.

    Luego en esta funcion LoadOffsets cargare todos los pointers y offsets que necesite
    Código:
    Function LoadOffsets()
    P_PTR = &H54
    P_HANDLE = &H0
    P_PID = &H0
    End Function
    Note que hasta ahora todo lo hemos estado haciendo en el Modulo

    Ahora pasare a programar el formulario.

    Creare un Timer con Intervalo de 1000ms

    Codigo del Timer
    Código:
    Private Sub Timer1_Timer()
    LoadOffsets
    If Attach = False Then
    Exit Sub
    End If
    End Sub
    y listo, el timer me adjuntara al proceso cada 1 seg, tambien pueden cambiarlo de timer a un commandbutton, o como ustedes quieran, hay una cantidad tan ilimitada de opciones como ideas hay en el mundo.

    ahora para ver como funciona intentare leer un valor de la memoria del juego
    para eso agregaremos esta funcion a nuestro Modulo:
    Código:
    Public Function ReadLong(addr As Long) As Long
        Dim Value As Long
        ReadProcessMem P_HANDLE, addr, Value, 4, 0&
        ReadLong = Value
    End Function
    La usaremos lara leer un valor del tipo long de la memoria, enviandole el address en que se encuentra ese dato.

    ahora como les dije que yo usaria el juego plantas vs zombies intentare leer el valor de cuanto sol tengo
    En mi Formulario creare un Label o Etiqueta para mostrar el valor obtenido y otro Timer que es el que leera el valor cada cierto tiempo
    pondre esto en el Formulario:
    Codigo del nuevo Timer:
    Código:
    Label1.Caption = ReadLong(ReadLong(&H1324D4) + &H5560)
    si miran veran que al label en la propiedad caption le asigno el valor que lei de la memoria llamando a la funcion que puse en mi Modulo llamada ReadLong a la cual le envie el Address donde se encontraba el dato que yo queria.

    de esa manera pueden leer cualquier valor long de un address

    Suerte.
     
    A sicar15 y Stiffler1 les gusta esto.
  2. Iam

    IamFabian
    Expand Collapse
    Comandante
    Usuario destacado

    Mensajes:
    2.216
    Me Gusta recibidos:
    225
    hasta que alfin te animaste a enseñar un paso de hacer un propio koxp :wink: :rolleyes:
     
  3. cor

    corix
    Expand Collapse
    Soldado Raso

    Mensajes:
    54
    Me Gusta recibidos:
    0
    esa fernando por fin un poco de tu sabiduria para la gente

    lo que me hubiera gustado que el ej: sea con knight online

    o sea como crear uno koxp simple como ( auto-atak = que aprete el numero 2 y z )
    auto-loot
     
  4. llx

    llxLoVesToSpooGexll
    Expand Collapse
    Sargento

    Mensajes:
    387
    Me Gusta recibidos:
    29
    bien bien vamos bien bro :arriba::aplauso:
     
  5. Ant

    AntraXTrojaN
    Expand Collapse
    Sargento

    Mensajes:
    385
    Me Gusta recibidos:
    17
    Why?..

    Pensara que todo el mundo empezara a sacar hacks propios cuando sepan hacerlo...

    pues yo creo que cada quien lo que aprendan usara para su propio beneficio sin necesidad de publicarlo al publico (valga la redundancia) ...ya que si tdos empiesan a publicar, en pocos dias apareceran muchas cuentas empty jaja

    AntraX
     
  6. tor

    torylane
    Expand Collapse
    Recluta

    Mensajes:
    22
    Me Gusta recibidos:
    1
    no entiendo me prodia ayudar para yo hacerlo yo misma
     
  7. Zeu

    ZeusAFK
    Expand Collapse
    Hack Developer Moderador

    Mensajes:
    338
    Me Gusta recibidos:
    44
    sep, era para ver si habia interes en el desarrollo hack en el foro pero parece q no :)
     
  8. Iam

    IamFabian
    Expand Collapse
    Comandante
    Usuario destacado

    Mensajes:
    2.216
    Me Gusta recibidos:
    225
    -.- , pues crea un video tutorial de como adjuntar todo los procesos i eso ps -.- :cool: , todos keremos un koxp en casa xD :rolleyes:
     
  9. Iam

    IamFabian
    Expand Collapse
    Comandante
    Usuario destacado

    Mensajes:
    2.216
    Me Gusta recibidos:
    225
    otro que no kiere que aprendamos a krear propios koxp -.- , que envidia de la gente.. :facepalm:
     
  10. LAC

    LACUCA
    Expand Collapse
    Teniente Coronel

    Mensajes:
    1.870
    Me Gusta recibidos:
    101
    Si quieres aprender busca guias , vb programación y después lo demas sera cosa facil.
     
  11. Ant

    AntraXTrojaN
    Expand Collapse
    Sargento

    Mensajes:
    385
    Me Gusta recibidos:
    17
    Usted comenta muchos temas pero la mayoria de sus comentarios son pura basura.. ;) calle mejor

    AntraX
     
  12. Zeu

    ZeusAFK
    Expand Collapse
    Hack Developer Moderador

    Mensajes:
    338
    Me Gusta recibidos:
    44
    Video tutorial no es lo que se necesita pues esta en cada uno el aprender lo basico de programacion, vb6 en este caso, en internet hay miles de guias basicas y avanzadas de programacion en general, ya sabiendo programar se puede pasar a programar cualquier cosa como un hack.
    por ejemplo:
    Código:
    Label1.Caption = ReadLong(ReadLong(&H1324D4) + &H5560)

    se entiende que Label1 es un componente Etiqueta?
    se entiende que Caption es una propiedad de Label1 que establece el texto a mostrar al usuario?
    se entiende que ReadLong es una funcion que recibe un argumento de tipo long y retorna un valor del mismo tipo?
    se entiende que &H se usa para un numero hexadecimal?
    se entiende lo que son los tipos de datos?

    todo esto es basico en programacion.
    :)
     
  13. Chu

    Chuo1997
    Expand Collapse
    Sargento

    Mensajes:
    384
    Me Gusta recibidos:
    25
    Disculpa, que idioma es este?
     
  14. llx

    llxLoVesToSpooGexll
    Expand Collapse
    Sargento

    Mensajes:
    387
    Me Gusta recibidos:
    29
    :eek:ooh::eek:ooh::eek:ooh::eek:ooh::eek:ooh::eek:ooh::eek:ooh::eek:ooh::eek:ooh:
    es mandarin :eek:ooh: :facepalm:
     
  15. Ant

    AntraXTrojaN
    Expand Collapse
    Sargento

    Mensajes:
    385
    Me Gusta recibidos:
    17
    A eso es lo q me refiero bro, desglosar cada parte del codigo y explicarlo.. y el ejemplo que das lo podrias dar con el mismo ko, no otros juegos, por ejemplo dar un pekeño codigo completo con solo usar archeri o una pot, etc .. Chevr que te decias a enseñarnos

    AntraX
     
  16. Zeu

    ZeusAFK
    Expand Collapse
    Hack Developer Moderador

    Mensajes:
    338
    Me Gusta recibidos:
    44
    "usar archery o una pot" eso ya es la parte avanzada, ahi entran conceptos que son una locura y queria ir avanzando de a poco, es necesario tener una base por eso este ejemplo basico como para que entiendan que es un address, entender que una aplicacion almacena sus valores en la memoria ram en address(direcciones de memoria), como poder leerlos, que es un process handle pero bueno actualizare el codigo para adaptarlo al ko.
    aunq esto queria q sea mas adelante por q entra un nuevo concepto q es pointer + offset = address por el sistema DMA(Dynamic Memory Allocation) que utiliza knight online :p
     
  17. Ant

    AntraXTrojaN
    Expand Collapse
    Sargento

    Mensajes:
    385
    Me Gusta recibidos:
    17
    lol. se oye simple al decirlo "por y skill" jaja .. yo se que es dificil.. pero creeme bro.. yo cuando estaba "aprendiendo programacion" preferia ver codigos.. e intentaba hacer algo en base a ellos.. en el caso que no entendiera x lineas las buscaba..

    pero pues como te digo.. coloca para que se inyecte de una al proceso del ko y no a otros.. osea.. enseñas con el mismo usko (para hacerlo mas facil).. y luego seguir.. enseñar mas cosas para asi cada uno (de los que queramos aprender) creemos nuevas funciones e ir implementando todo a un solo koxp..

    Ej: acabo de usar una en un koxp que tiene un bucle recorriendo las coordenadas que uno indique.. ta bacana

    PD: Quiero aprender u.u


    AntraX
     
  18. Zeu

    ZeusAFK
    Expand Collapse
    Hack Developer Moderador

    Mensajes:
    338
    Me Gusta recibidos:
    44
    Si miras el codigo:
    Código:
    GetWindowThreadProcessId FindWindow(vbNullString, "Plants vs. Zombies"), P_PID
    verias q usa funciones de la libreria "user32" para adjuntarse al proceso como FindWindow q recibe el "nombre" de la ventana a buscar y devuelve un "handle" para la misma, luego este handle se pasa a GetWindowThreadProcessid el cual recibe un handle de una ventana y devuelve el id del proceso q es duenio de ella.
    entonces si para el ejemplo se usaba la ventana Plants vs. Zombies para aplicar el codigo a knight online solo es reemplazar el nombre de la ventana, asi mismo se puede obtener un process handle para cualquier aplicacion
    Código:
    GetWindowThreadProcessId FindWindow(vbNullString, "Knight OnLine Client"), P_PID
    Código:
    GetWindowThreadProcessId FindWindow(vbNullString, "cliente111111"), P_PID
    Código:
    GetWindowThreadProcessId FindWindow(vbNullString, "Windows Live Messenger"), P_PID
    Buen dia.
     
  19. Nig

    NighT HunTer
    Expand Collapse
    Sargento

    Mensajes:
    307
    Me Gusta recibidos:
    25
    Después de indagar un poco, me he dado cuenta que todo esto también podría ser factible en Java e igual de eficiente. Voy a tratar de adaptar estas lineas aunque no entiendo mucho del vb ni su lógica.
    En fin, aunque me parece un buen tema, el hecho de querer enseñar a progamar un "hack" o "koxp" es algo mas que tan sólo ir poniendo los códigos de linea, ya que tendrías que entender la estructura en sí y si algo fallase saber ubicar y resolver el problema.
    Una recomendación para todos los que quieran aprender, primero entiendan bien este lenguaje de programación y después verán como todo resulta algo menos tedioso.:)
     
  20. fer

    ferchoman09
    Expand Collapse
    Cabo

    Mensajes:
    195
    Me Gusta recibidos:
    0
    Hola, yo ya me puse a indagar como hacerlo en java. Es bastante incomodo manejar las dll's de windows. Además los temas como variables nativas pasadas por referencia se hacen imposibles de manejar. No es que sea imposible, sino mas tedioso. No lo recomiendo para estos proyectos, aún cuando soy amante de java.

    Suerte.
     
Estado del tema:
Cerrado para nuevas respuestas

Compartir esta página